Skip to content

Latest commit

 

History

History
84 lines (56 loc) · 1.79 KB

original_instructions.md

File metadata and controls

84 lines (56 loc) · 1.79 KB

Welcome to the compiler project 2020 starter kit!

=== Structure ===

build.xml (directives for compiling the project using 'ant')

build/ (temp directory created when you build)

examples/ ast/ (examples of AST XMLs representing Java programs)

(more examples to come for each exercise)

schema/ ast.xsd (XML schema for ASTs)

src/ (where all your stuff is going to go)

ast/*
	(Java representation of AST, including XML marshaling & unmarshaling, Visitor interface, and printing to Java. Some files to note:)

	AstXMLSerializer.java
		(for converting ASTs between XML <-> Java classes)

	AstPrintVisitor.java
		(printing AST as a Java program)

	Visitor.java
		(visitor interface)

	Program.java
		(the root of the AST)

cup/
	Parser.cup
	(directives for CUP - to be used in ex4)

jflex/
	Scanner.jfled
	(directives for JFlex - to be used in ex4)

Main.java
	(main file, including a skeleton for the command line arguments we will use in the exercises. already does XML marshaling and unarmshaling and printing to Java)

Lexer.java
	(generated when you build - to be used in ex4)

Parser.java
	(generated when you build - to be used in ex4)

sym.java
	(generated when you build - to be used in ex4)	

tools/* (third party JARs for lexing & parsing (ex4) and XML manipulation)

mjava.jar (the build)

README.md (<-- you are here)

=== All those things with ex4?? === Ignore them (for now; you know, Chekhov's gun and the like).

=== Compiling the project === ant

=== Cleaning === ant clean

=== From AST XML to Java program === java -jar mjavac.jar unmarshal print examples/BinaryTree.xml res.java

=== From AST XML to... AST XML === java -jar mjavac.jar unmarshal marshal examples/BinaryTree.xml res.xml

(you will use the code for this "marhsal" option when generating ASTs in ex1,ex4)