Skip to content

Latest commit

 

History

History
18 lines (14 loc) · 1.58 KB

README.md

File metadata and controls

18 lines (14 loc) · 1.58 KB

stella-implementation-in-java

Template for an implementation of Stella in Java.

Screenshot from Intellij IDEA

The template contains:

  1. Stella.cf — LBNF for Stella (can be used by BNF Converter tool);
  2. stellaLexer.g4 and stellaParser.g4 — grammar files for ANTLRv4 tool (generated by BNF Converter);
  3. org.syntax.stella.Absyn.* — classes for the abstract syntax of Stella (generated by BNF Converter);
  4. org.syntax.stella.VisitSkel — skeleton for a Visitor walking through an abstract syntax tree;
  5. org.stella.eval.Eval — placeholder for the evaluator for Stella;
  6. org.stella.typecheck.TypeCheck — the typechecker for Stella;
  7. org.stella.typecheck.VisitTypeCheck — the typechecking visitor for Stella's AST;
  8. org.stella.Main — entry point for the Stella typechecker/interpreter;
  9. org.stella.MainTest — some tests for the typechecker.

When implementing a typechecker, you should write your code primarily in org.stella.typecheck.VisitTypeCheck.