ggujjula / blaise-avr Goto Github PK
View Code? Open in Web Editor NEWAn Unextended Pascal compiler for the Atmel AVR ISA.
License: GNU General Public License v3.0
An Unextended Pascal compiler for the Atmel AVR ISA.
License: GNU General Public License v3.0
Complete the symbol table data structure so that it can be used while parsing.
Write lexer tests
Change grammar rules to use left recursion, so that less stack space is used.
Write up a document outlining the design of the compiler. Include at least the following:
Component separation
Interface between components
Testing
Considerations for expansion
Potential issues and mitigating actions
Create a folder structure that is easy to navigate and find pertinent files.
Implement actions for programs (ISO 7185 Section 6.10).
Replaces #15
Implement actions for handling input and output function calls (ISO 7185 Section 6.9).
Replaces #15
Implement actions involving variable declarations (ISO 7185 Section 6.5).
Replaces #15
Write all #defines, static lookup tables, headers, etc. for the lexer.
Copy the grammar described in the standard to parser.y.
Ignore shift/reduce and reduce/reduce errors for this issue. (see #13 )
Implement actions involving expressions (ISO 7185 Section 6.7).
Replaces #15
Implement actions involving statements (ISO 7185 Section 6.8).
Replaces #15
Running debugtokentree() on blocks only show certain declaration/statement parts, and of those, not all the declarations are present. Fix how tokens are passed through parser reductions to show the complete declaration/statement parts.
Write code to take each lexeme and wrap it into a token.
Find the Pascal language spec and AVR ISA spec, place them in the repo.
Implement actions involving constants (ISO 7185 Section 6.3).
Replaces #15
Implement actions involving types (ISO 7185 Section 6.4).
Replaces #15
Write a regular language for Pascal in the flex format.
Change tests to use shell script instead of python, since the target check
in the Makefile can only use certain programs as described below:
https://www.gnu.org/prep/standards/html_node/Utilities-in-Makefiles.html#Utilities-in-Makefiles
Create a makefile with targets:
all
check
clean
lexer
parser
codegen
blaise-avr(?)
Implement actions involving blocks and scopes (ISO 7185 Section 6.2). Add code to manipulate symbol table level appropriately.
Replaces #15
Implement actions involving procedure/function declarations (ISO 7185 Section 6.6).
Replaces #15
Fix shift/reduce and reduce/reduce errors in grammar in parser.y.
Depends on #12 to be complete first.
Add code to perform token manipulation during reduction operations.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.