jag
Class Main

java.lang.Object
  extended by jag.Main

public class Main
extends Object

recognizes and serializes a table of code generation rules.


Nested Class Summary
protected static class Main.Jag
          manages information about one jag.
protected static class Main.VArrayList
          flags that more subtrees are permitted in a match.
static class Main.yyException
          thrown for irrecoverable syntax errors and stack overflow.
static interface Main.yyInput
          must be implemented by a scanner object to supply input to the parser.
 
Field Summary
static int EPILOG
           
static int Id
           
static int Item
           
protected  Main.Jag jag
          describes current jag.
static int Null
           
static int PROLOG
           
static int Ref
           
static int Ref0
           
static int Result
           
protected  HashMap rules
          maps class name to Jag.
protected static short[] yyCheck
          parser tables.
protected static short[] yyDefRed
          parser tables.
protected static short[] yyDgoto
          parser tables.
static int yyErrorCode
           
protected static int yyFinal
          number of final state.
protected static short[] yyGindex
          parser tables.
protected static short[] yyLen
          parser tables.
protected static short[] yyLhs
          parser tables.
protected  int yyMax
          initial size and increment of the state/value stack [default 256].
protected static String[] yyNames
          maps symbol value to printable name.
protected static short[] yyRindex
          parser tables.
protected static short[] yySindex
          parser tables.
protected static short[] yyTable
          parser tables.
 
Constructor Summary
Main()
           
 
Method Summary
static void main(String[] args)
          recognizes code generation rules.
protected  Object yyDefault(Object first)
          executed at the beginning of a reduce action.
 void yyerror(String message)
          simplified error message.
 void yyerror(String message, String[] expected)
          (syntax) error message.
protected  String[] yyExpecting(int state)
          computes list of expected tokens on error by tracing the tables.
 Object yyparse(Main.yyInput yyLex)
          the generated parser.
 Object yyparse(Main.yyInput yyLex, Object yydebug)
          the generated parser, with debugging messages.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rules

protected HashMap rules
maps class name to Jag.


jag

protected Main.Jag jag
describes current jag.


PROLOG

public static final int PROLOG
See Also:
Constant Field Values

EPILOG

public static final int EPILOG
See Also:
Constant Field Values

Null

public static final int Null
See Also:
Constant Field Values

Id

public static final int Id
See Also:
Constant Field Values

Ref

public static final int Ref
See Also:
Constant Field Values

Ref0

public static final int Ref0
See Also:
Constant Field Values

Result

public static final int Result
See Also:
Constant Field Values

Item

public static final int Item
See Also:
Constant Field Values

yyErrorCode

public static final int yyErrorCode
See Also:
Constant Field Values

yyFinal

protected static final int yyFinal
number of final state.

See Also:
Constant Field Values

yyLhs

protected static final short[] yyLhs
parser tables. Order is mandated by jay.


yyLen

protected static final short[] yyLen
parser tables. Order is mandated by jay.


yyDefRed

protected static final short[] yyDefRed
parser tables. Order is mandated by jay.


yyDgoto

protected static final short[] yyDgoto
parser tables. Order is mandated by jay.


yySindex

protected static final short[] yySindex
parser tables. Order is mandated by jay.


yyRindex

protected static final short[] yyRindex
parser tables. Order is mandated by jay.


yyGindex

protected static final short[] yyGindex
parser tables. Order is mandated by jay.


yyTable

protected static final short[] yyTable
parser tables. Order is mandated by jay.


yyCheck

protected static final short[] yyCheck
parser tables. Order is mandated by jay.


yyNames

protected static final String[] yyNames
maps symbol value to printable name.

See Also:
yyExpecting(int)

yyMax

protected int yyMax
initial size and increment of the state/value stack [default 256]. This is not final so that it can be overwritten outside of invocations of yyparse(jag.Main.yyInput, java.lang.Object).

Constructor Detail

Main

public Main()
Method Detail

main

public static void main(String[] args)
recognizes code generation rules.
java jag.Main < rules.jag > rules.java


yyerror

public void yyerror(String message)
simplified error message.

See Also:
yyerror(java.lang.String, java.lang.String[])

yyerror

public void yyerror(String message,
                    String[] expected)
(syntax) error message. Can be overwritten to control message format.

Parameters:
message - text to be displayed.
expected - list of acceptable tokens, if available.

yyExpecting

protected String[] yyExpecting(int state)
computes list of expected tokens on error by tracing the tables.

Parameters:
state - for which to compute the list.
Returns:
list of token names.

yyparse

public Object yyparse(Main.yyInput yyLex,
                      Object yydebug)
               throws IOException,
                      Main.yyException
the generated parser, with debugging messages. Maintains a dynamic state and value stack.

Parameters:
yyLex - scanner.
yydebug - debug message writer implementing yyDebug, or null.
Returns:
result of the last reduction, if any.
Throws:
Main.yyException - on irrecoverable parse error.
IOException

yyDefault

protected Object yyDefault(Object first)
executed at the beginning of a reduce action. Used as $$ = yyDefault($1), prior to the user-specified action, if any. Can be overwritten to provide deep copy, etc.

Parameters:
first - value for $1, or null.
Returns:
first.

yyparse

public Object yyparse(Main.yyInput yyLex)
               throws IOException,
                      Main.yyException
the generated parser. Maintains a dynamic state and value stack.

Parameters:
yyLex - scanner.
Returns:
result of the last reduction, if any.
Throws:
Main.yyException - on irrecoverable parse error.
IOException