ryanlararr / compiler_platypus-2.0 Goto Github PK
View Code? Open in Web Editor NEWAnalysis phase compiler for the PLATYPUS 2.0 programming language.
Analysis phase compiler for the PLATYPUS 2.0 programming language.
To build a Recursive Descent Predictive Parser (RDPP) the syntactical part of the PLATYPUS 2.0 Grammar needs to be modified from LR grammar to LL grammar suitable for RDPP.
Left recursion must be eliminated and left factoring applied when necessary.
After grammar transformation, the FIRST set for each of the grammar productions must be built.
The final FIRST set must contain only terminals (tokens).
The elements of the set must be unique.
Do not remove the original productions. Write transformed productions below the original productions and indicate the type of transformation applied.
Include only the grammar productions.
Entire syntactic grammar and corresponding FIRST sets written.
Demonstrate the completed development of the Parser.
All non-terminal functions should be implemented with solved left-recursion and left-factoring.
The PLATYPUS language specification stipulates that by default, the type of a variable is defined by the first and last symbol of the variable identifier.
Implementation of semantic analysis is through the definition of values for some specific tokens.
For example:
AVID = integer or float
SVID = string
With this, it will be required to modify scanner.c
and determine the type of variable during the scanning process.
The flags
variable in AdditionalVidTokenAttributes
stores the new variable types.
Demonstrate that the input of a3e.pls matches a3e.sout.
Not all the non-terminal functions need to be created for the minimal test implementation - only the basic functions for an empty Platypus program.
Steps 01 to 13 in the A3 specification will be used for the minimal test implementation.
a3e.pls test only
a3e.pls matches a3e.sout
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.