d0c-s4vage / d0c-s4vage/py010parser

Parsing of the EXE template fails

Open
#26 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
54
Forks
10
PR merge metrics
No merged PRs in 30d

Description

Parsing of the EXE template (https://www.sweetscape.com/010editor/repository/files/EXE.bt) fails with

```text
In [2]: dom = pfp.parse(data_file="/home/user/samples/d22563d7b913f3c64176301f3de41a16f604bde5e4d335405574485d1817
...: 3844", template_file="/home/user/Documents/SweetScape/010 Templates/Repository/EXE.bt")
---------------------------------------------------------------------------
ParseError Traceback (most recent call last)
in
----> 1 dom = pfp.parse(data_file="/home/user/samples/d22563d7b913f3c64176301f3de41a16f604bde5e4d335405574485d18173844", template_file="/home/user/Documents/SweetScape/010 Templates/Repository/EXE.bt")

~/.venv/pfp/lib/python3.7/site-packages/pfp/__init__.py in parse(data, template, data_file, template_file, interp, debug, predefines, int3, keep_successful, printf)
89 orig_filename=orig_filename,
90 keep_successful=keep_successful,
---> 91 printf=printf,
92 )
93

~/.venv/pfp/lib/python3.7/site-packages/pfp/interp.py in parse(self, stream, template, predefines, orig_filename, keep_successful, printf)
731 self._template = template
732 self._template_lines = self._template.split("\n")
--> 733 self._ast = self._parse_string(template, predefines)
734 self._dlog("parsed template into ast")
735

~/.venv/pfp/lib/python3.7/site-packages/pfp/interp.py in _parse_string(self, string, predefines)
876 parser=self._parser,
877 # only keep the scopes if we ran the predefines
--> 878 keep_scopes=predefines,
879 )
880 res.ext = exts + res.ext

~/.venv/pfp/lib/python3.7/site-packages/py010parser/__init__.py in parse_string(text, parser, filename, optimize, predefine_types, use_cpp, cpp_path, cpp_args, keep_scopes)
135 filename,
136 predefine_types = predefine_types,
--> 137 keep_scopes = keep_scopes
138 )

~/.venv/pfp/lib/python3.7/site-packages/py010parser/c_parser.py in parse(self, text, filename, debuglevel, predefine_types, keep_scopes)
176 input=text,
177 lexer=self.clex,
--> 178 debug=debuglevel)
179
180 res.ext = predefined_ext + res.ext

~/.venv/pfp/lib/python3.7/site-packages/py010parser/ply/yacc.py in parse(self, input, lexer, debug, tracking, tokenfunc)
263 return self.parseopt(input,lexer,debug,tracking,tokenfunc)
264 else:
--> 265 return self.parseopt_notrack(input,lexer,debug,tracking,tokenfunc)
266
267

~/.venv/pfp/lib/python3.7/site-packages/py010parser/ply/yacc.py in parseopt_notrack(self, input, lexer, debug, tracking, tokenfunc)
1045 if errtoken and not hasattr(errtoken,'lexer'):
1046 errtoken.lexer = lexer
-> 1047 tok = self.errorfunc(errtoken)
1048 del errok, token, restart # Delete special functions
1049

~/.venv/pfp/lib/python3.7/site-packages/py010parser/c_parser.py in p_error(self, p)
1950 'before: %s' % p.value,
1951 self._coord(lineno=p.lineno,
-> 1952 column=self.clex.find_tok_column(p)))
1953 else:
1954 self._parse_error('At end of input', '')

~/.venv/pfp/lib/python3.7/site-packages/py010parser/plyparser.py in _parse_error(self, msg, coord)
52
53 def _parse_error(self, msg, coord):
---> 54 raise ParseError("%s: %s" % (coord, msg))
55

ParseError: /tmp/tmp3ckztvn9:163:77: before: 2

```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the provided pfp.parse invocation with the EXE.bt template and sample data. Inspect the parser error at EXE.bt line 163, column 77 and the corresponding py010parser grammar or lexer handling. Done means the EXE template parses without the reported ParseError.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
compilers
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.