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");
}
}
}