import java.io.*;

class LL1Parser{
	static Token cur_token;
	static int tok;
	static Lexer lex;

	public static void main(String args[]){
		try{
			FileInputStream fis = new FileInputStream(args[0]);
			lex = new Lexer(fis);
			cur_token = lex.next_token();
		} catch (Exception e) {}
		tok = cur_token.sym;
		block();
		System.out.println("Parsed OK!");
	}

	static void advance(){
		try{
			cur_token = lex.next_token();
		} catch (Exception e) {}
		tok = cur_token.sym;
	}

	static void read(int t){
		if (tok==t){
			advance(); 
		} else {
			error();
		}
	}

	static void block(){ 
		switch(tok) {
			case sym.LBRACE: read(sym.LBRACE); statements(); break;
			default: error();
		}
	}

	static void statements(){ 
	}

	static void statement_follow(){
		switch(tok){
		}
	}

	static void statement(){
	}

	static void boolean_expr(){
	}

	static void identifier_or_literal(){
	}
	
	static void error() {
		System.out.println("Syntax Error at line "+cur_token.line);
		System.exit(-1);
	}

}

