Skip to content

Commit

Permalink
Add all POJOs and implement small subset of the grammar
Browse files Browse the repository at this point in the history
  • Loading branch information
ShutoAraki committed Oct 18, 2018
1 parent 0127e5b commit bcf7b7c
Show file tree
Hide file tree
Showing 40 changed files with 374 additions and 13 deletions.
23 changes: 14 additions & 9 deletions Project3Java/src/csc426/Project3.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,25 @@
import java.io.InputStreamReader;
import java.io.FileReader;

import csc426.ast.Program;
import csc426.syntax.*;

/**
* Main class for Project 1 -- Scanner for a Subset of YASL (Fall 2015). Scans
* tokens from standard input and prints the token stream to standard output.
* Main class for Project 3
* The main method displays the abstract syntax tree (AST)
* of the input with proper indentations.
*
* @author bhoward
* @author ShutoAraki
*/
public class Project3 {

public static void main(String[] args) throws IOException {

Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
Token token;
do {
token = scanner.next();
System.out.println(token);
} while (token.type != TokenType.EOF);
scanner.close();
Parser parser = new Parser(scanner);
// This Program object is the root of the AST
Program program = parser.parseProgram();
program.display("");

}
}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/AddOp.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class AddOp {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/ArgList.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class ArgList {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/Args.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class Args {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/ArgsRest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class ArgsRest {

}
25 changes: 25 additions & 0 deletions Project3Java/src/csc426/ast/Block.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package csc426.ast;

public class Block {

private ValDecls valDecls;
// private VarDecls varDecls;
// private FunDecls funDecls;
// private Stmt stmt;

// public Block(ValDecls valDecls, VarDecls varDecls, FunDecls funDecls, Stmt stmt) {
public Block(ValDecls valDecls) {
this.valDecls = valDecls;
// this.varDecls = varDecls;
// this.funDecls = funDecls;
// this.stmt = stmt;
}

public void display(String indentation) {
System.out.println(indentation + "Block");
valDecls.display(indentation + " ");
// varDecls.display(indentation + " ");
// funDecls.display(indentation + " ");
// stmt.display(indentation + " ");
}
}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/Expr.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class Expr {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/ExprRest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class ExprRest {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/Factor.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class Factor {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/FactorRest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class FactorRest {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/FunDecl.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class FunDecl {

}
9 changes: 9 additions & 0 deletions Project3Java/src/csc426/ast/FunDecls.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package csc426.ast;

public class FunDecls {

public void display(String indentation) {
// TODO Auto-generated method stub
}

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/Item.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class Item {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/Items.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class Items {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/ItemsRest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class ItemsRest {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/MulOp.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class MulOp {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/Param.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class Param {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/ParamList.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class ParamList {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/Params.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class Params {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/ParamsRest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class ParamsRest {

}
19 changes: 19 additions & 0 deletions Project3Java/src/csc426/ast/Program.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package csc426.ast;

public class Program {

private String name;
private Block block;

public Program(String name, Block block) {
this.name = name;
this.block = block;
}

public String getName() { return name; }
public Block getBlock() { return block; }
public void display(String indentation) {
System.out.println(indentation + "Program " + name);
block.display(indentation + " ");
}
}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/RelOp.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class RelOp {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/SERest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class SERest {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/SimpleExpr.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class SimpleExpr {

}
10 changes: 10 additions & 0 deletions Project3Java/src/csc426/ast/Stmt.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package csc426.ast;

public class Stmt {

public void display(String indentation) {
// TODO Auto-generated method stub

}

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/StmtList.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class StmtList {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/Stmts.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class Stmts {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/Term.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class Term {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/TermRest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class TermRest {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/Type.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class Type {

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/UnOp.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class UnOp {

}
16 changes: 16 additions & 0 deletions Project3Java/src/csc426/ast/ValDecl.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package csc426.ast;

public class ValDecl {

private String id;
private int num;

public ValDecl(String id, int num) {
this.id = id;
this.num = num;
}

public void display(String indentation) {
System.out.println(indentation + "Val " + id + " = " + num);
}
}
19 changes: 19 additions & 0 deletions Project3Java/src/csc426/ast/ValDecls.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package csc426.ast;

import java.util.List;

public class ValDecls {

private List<ValDecl> vals;

public ValDecls(List<ValDecl> vals) {
this.vals = vals;
}

public void display(String indentation) {
for (ValDecl val : vals) {
val.display(indentation + " ");
}
}

}
5 changes: 5 additions & 0 deletions Project3Java/src/csc426/ast/VarDecl.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package csc426.ast;

public class VarDecl {

}
10 changes: 10 additions & 0 deletions Project3Java/src/csc426/ast/VarDecls.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package csc426.ast;

public class VarDecls {

public void display(String indentation) {
// TODO Auto-generated method stub

}

}
Loading

0 comments on commit bcf7b7c

Please sign in to comment.