// -*- Java -*- This Cup file was machine-generated by BNFC package se.chalmers.cs.gf.SyntaxTree; parser code {: public se.chalmers.cs.gf.SyntaxTree.Absyn.Tr pTr() throws Exception { java_cup.runtime.Symbol res = parse(); return (se.chalmers.cs.gf.SyntaxTree.Absyn.Tr) res.value; } public void syntax_error(java_cup.runtime.Symbol cur_token) { report_error("Syntax Error, trying to recover and continue parse...", cur_token); } public void unrecovered_syntax_error(java_cup.runtime.Symbol cur_token) throws java.lang.Exception { throw new Exception("Unrecoverable Syntax Error"); } :} nonterminal se.chalmers.cs.gf.SyntaxTree.Absyn.Tr Tr; nonterminal se.chalmers.cs.gf.SyntaxTree.Absyn.Tr Tr2; nonterminal se.chalmers.cs.gf.SyntaxTree.Absyn.ListTr ListTr2; terminal _SYMB_0; // ( terminal _SYMB_1; // ) terminal String _STRING_; terminal Integer _INTEGER_; terminal String _IDENT_; start with Tr; Tr ::= _IDENT_:p_1 ListTr2:p_2 {: RESULT = new se.chalmers.cs.gf.SyntaxTree.Absyn.TNode(p_1,p_2); :} ; Tr2 ::= _IDENT_:p_1 {: RESULT = new se.chalmers.cs.gf.SyntaxTree.Absyn.TAtom(p_1); :} | _STRING_:p_1 {: RESULT = new se.chalmers.cs.gf.SyntaxTree.Absyn.TStr(p_1); :} | _INTEGER_:p_1 {: RESULT = new se.chalmers.cs.gf.SyntaxTree.Absyn.TInt(p_1); :} | _SYMB_0 Tr:p_2 _SYMB_1 {: RESULT = p_2; :} ; ListTr2 ::= /* empty */ {: RESULT = new se.chalmers.cs.gf.SyntaxTree.Absyn.ListTr(); :} | ListTr2:p_1 Tr2:p_2 {: RESULT = p_1; p_1.addLast(p_2); :} ;