package kernel; //---------------------------------------------------- // The following code was generated by CUP v0.11a beta 20060608 // Fri Dec 05 00:54:11 CET 2008 //---------------------------------------------------- import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; /** CUP v0.11a beta 20060608 generated parser. * @version Fri Dec 05 00:54:11 CET 2008 */ public class Parser extends java_cup.runtime.lr_parser { /** Default constructor. */ public Parser() {super();} /** Constructor which sets the default scanner. */ public Parser(java_cup.runtime.Scanner s) {super(s);} /** Constructor which sets the default scanner. */ public Parser(java_cup.runtime.Scanner s, java_cup.runtime.SymbolFactory sf) {super(s,sf);} /** Production table. */ protected static final short _production_table[][] = unpackFromStrings(new String[] { "\000\014\000\002\002\002\000\002\002\004\000\002\002" + "\005\000\002\002\003\000\002\003\004\000\002\004\005" + "\000\002\004\005\000\002\004\005\000\002\004\002\000" + "\002\005\004\000\002\006\004\000\002\006\002" }); /** Access to production table. */ public short[][] production_table() {return _production_table;} /** Parse-action table. */ protected static final short[][] _action_table = unpackFromStrings(new String[] { "\000\024\000\010\002\001\004\001\010\006\001\002\000" + "\006\002\ufffe\004\ufffe\001\002\000\014\002\ufff9\004\ufff9" + "\005\015\006\017\007\020\001\002\000\016\002\ufff6\004" + "\ufff6\005\ufff6\006\ufff6\007\ufff6\010\ufff6\001\002\000\006" + "\002\010\004\011\001\002\000\004\002\000\001\002\000" + "\004\010\006\001\002\000\006\002\uffff\004\uffff\001\002" + "\000\016\002\ufff8\004\ufff8\005\ufff8\006\ufff8\007\ufff8\010" + "\014\001\002\000\016\002\ufff7\004\ufff7\005\ufff7\006\ufff7" + "\007\ufff7\010\ufff7\001\002\000\004\010\025\001\002\000" + "\006\002\ufffd\004\ufffd\001\002\000\004\010\023\001\002" + "\000\004\010\021\001\002\000\014\002\ufff9\004\ufff9\005" + "\015\006\017\007\020\001\002\000\006\002\ufffc\004\ufffc" + "\001\002\000\014\002\ufff9\004\ufff9\005\015\006\017\007" + "\020\001\002\000\006\002\ufffa\004\ufffa\001\002\000\014" + "\002\ufff9\004\ufff9\005\015\006\017\007\020\001\002\000" + "\006\002\ufffb\004\ufffb\001\002" }); /** Access to parse-action table. */ public short[][] action_table() {return _action_table;} /** reduce_goto table. */ protected static final short[][] _reduce_table = unpackFromStrings(new String[] { "\000\024\000\010\002\006\003\003\005\004\001\001\000" + "\002\001\001\000\004\004\015\001\001\000\004\006\012" + "\001\001\000\002\001\001\000\002\001\001\000\006\003" + "\011\005\004\001\001\000\002\001\001\000\002\001\001" + "\000\002\001\001\000\002\001\001\000\002\001\001\000" + "\002\001\001\000\002\001\001\000\004\004\021\001\001" + "\000\002\001\001\000\004\004\023\001\001\000\002\001" + "\001\000\004\004\025\001\001\000\002\001\001" }); /** Access to reduce_goto table. */ public short[][] reduce_table() {return _reduce_table;} /** Instance of action encapsulation class. */ protected CUP$Parser$actions action_obj; /** Action encapsulation object initializer. */ protected void init_actions() { action_obj = new CUP$Parser$actions(this); } /** Invoke a user supplied parse action. */ public java_cup.runtime.Symbol do_action( int act_num, java_cup.runtime.lr_parser parser, java.util.Stack stack, int top) throws java.lang.Exception { /* call code in generated class */ return action_obj.CUP$Parser$do_action(act_num, parser, stack, top); } /** Indicates start state. */ public int start_state() {return 0;} /** Indicates start production. */ public int start_production() {return 1;} /** EOF Symbol index. */ public int EOF_sym() {return 0;} /** error Symbol index. */ public int error_sym() {return 1;} public void report_error(String message, Object info) { StringBuffer m = new StringBuffer("Error "); if (info instanceof java_cup.runtime.Symbol) m.append( "("+info.toString()+")" ); m.append(" : "+message); System.out.println(m); } public void report_fatal_error(String message, Object info) { report_error(message, info); throw new RuntimeException("Fatal Syntax Error"); } } /** Cup generated class to encapsulate user supplied action code.*/ class CUP$Parser$actions { private ArrayList arguments = new ArrayList(); private CommandList cl = new CommandList(); private String inRedirect; private StringBuffer outRedirect = new StringBuffer(); private StringBuffer outAppend = new StringBuffer(); private boolean isAppend = false; private final Parser parser; /** Constructor */ CUP$Parser$actions(Parser parser) { this.parser = parser; } /** Method with the actual generated action code. */ public final java_cup.runtime.Symbol CUP$Parser$do_action( int CUP$Parser$act_num, java_cup.runtime.lr_parser CUP$Parser$parser, java.util.Stack CUP$Parser$stack, int CUP$Parser$top) throws java.lang.Exception { /* Symbol object for return from actions */ java_cup.runtime.Symbol CUP$Parser$result; /* select the action based on the action number */ switch (CUP$Parser$act_num) { /*. . . . . . . . . . . . . . . . . . . .*/ case 11: // argumenty ::= { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("argumenty",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 10: // argumenty ::= argumenty NAME { Object RESULT =null; int nleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; int nright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; String n = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; arguments.add(n); CUP$Parser$result = parser.getSymbolFactory().newSymbol("argumenty",4, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 9: // prikaz_arg ::= NAME argumenty { Object RESULT =null; int nleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; int nright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; String n = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; RESULT = new Command(n,arguments); arguments.clear(); CUP$Parser$result = parser.getSymbolFactory().newSymbol("prikaz_arg",3, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 8: // presmerovani ::= { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("presmerovani",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 7: // presmerovani ::= APPEND_REDIRECT NAME presmerovani { Object RESULT =null; int nleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; int nright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; String n = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; if (outRedirect.length() == 0) { outRedirect.append(n); isAppend = true; } CUP$Parser$result = parser.getSymbolFactory().newSymbol("presmerovani",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 6: // presmerovani ::= OUT_REDIRECT NAME presmerovani { Object RESULT =null; int nleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; int nright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; String n = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; if (outRedirect.length() == 0) { outRedirect.append(n); isAppend = true; } CUP$Parser$result = parser.getSymbolFactory().newSymbol("presmerovani",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 5: // presmerovani ::= IN_REDIRECT NAME presmerovani { Object RESULT =null; int nleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; int nright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; String n = (String)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; inRedirect = n; CUP$Parser$result = parser.getSymbolFactory().newSymbol("presmerovani",2, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 4: // prikaz ::= prikaz_arg presmerovani { Object RESULT =null; int paleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; int paright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; Object pa = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; RESULT = pa; CUP$Parser$result = parser.getSymbolFactory().newSymbol("prikaz",1, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 3: // mnozina_prikazu ::= prikaz { Object RESULT =null; int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; Object p = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; cl.getCommands().add((Command) p); cl.setInput(inRedirect); cl.setOutput(outRedirect.toString()); cl.setAppend(isAppend); RESULT = cl; CUP$Parser$result = parser.getSymbolFactory().newSymbol("mnozina_prikazu",0, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 2: // mnozina_prikazu ::= mnozina_prikazu PIPE prikaz { Object RESULT =null; int pleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).left; int pright = ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()).right; Object p = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.peek()).value; cl.getCommands().add((Command) p); if (inRedirect == null) inRedirect =""; cl.setInput(inRedirect); cl.setOutput(outRedirect.toString()); cl.setAppend(isAppend); RESULT = cl; CUP$Parser$result = parser.getSymbolFactory().newSymbol("mnozina_prikazu",0, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-2)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 1: // $START ::= mnozina_prikazu EOF { Object RESULT =null; int start_valleft = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).left; int start_valright = ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)).right; Object start_val = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value; RESULT = start_val; CUP$Parser$result = parser.getSymbolFactory().newSymbol("$START",0, ((java_cup.runtime.Symbol)CUP$Parser$stack.elementAt(CUP$Parser$top-1)), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } /* ACCEPT */ CUP$Parser$parser.done_parsing(); return CUP$Parser$result; /*. . . . . . . . . . . . . . . . . . . .*/ case 0: // mnozina_prikazu ::= { Object RESULT =null; CUP$Parser$result = parser.getSymbolFactory().newSymbol("mnozina_prikazu",0, ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), ((java_cup.runtime.Symbol)CUP$Parser$stack.peek()), RESULT); } return CUP$Parser$result; /* . . . . . .*/ default: throw new Exception( "Invalid action number found in internal parse table"); } } }