s'more documantation
This commit is contained in:
parent
7b14d7ccb3
commit
066fee44ac
2 changed files with 14 additions and 1 deletions
14
README.md
14
README.md
|
@ -16,4 +16,16 @@ The compiler is seperated into multiple files:
|
|||
- items.py: contains data structs for the parser
|
||||
- lexer.py: lexer class
|
||||
- parser.py: parser class
|
||||
- cpq.py: main program and cmd handling logic
|
||||
- cpq.py: main program and cmd handling logic
|
||||
|
||||
## Implementation details
|
||||
|
||||
First i wanted to use rust/c, but it seems sly is very easy to work with and is a lot less cryptic
|
||||
than flex/bison.
|
||||
|
||||
the lexer class contains the token's regular expressions and the token types
|
||||
|
||||
the parser class contains functions for each possible reduction, and using each variable once (with next_temp function)
|
||||
and contains the ouput code in the list lines, which in turn is to be used by
|
||||
the caller (of the parsing routine) as it wished (currently, by cpq.py to write
|
||||
to a text file if no errors occured)
|
|
@ -14,6 +14,7 @@ class Parser(sly.Parser):
|
|||
last_used_temp = 0 # cpl doesnt allow _ in ids, so use t_NUM as variables
|
||||
|
||||
def next_temp(self):
|
||||
# returns the next temp variable name
|
||||
self.last_used_temp += 1
|
||||
return f't_{self.last_used_temp}'
|
||||
|
||||
|
|
Loading…
Reference in a new issue