|
BLOGParser.java
|
//---------------------------------------------------- // The following code was generated by CUP v0.10k // Tue Jun 08 17:35:46 PDT 2010 //---------------------------------------------------- package blog; import java_cup.runtime.*; import java.util.*; import java.io.*; import Jama.*; import common.ScannerWithLocInfo; import common.HashMapDiff; import common.LocationInFile; import common.Util; import fove.Parfactor; import fove.CountingTerm;
CUP v0.10k generated parser.
|
public class BLOGParser extends java_cup.runtime.lr_parser {
| Default constructor. |
public BLOGParser() {super();}
| Constructor which sets the default scanner. |
public BLOGParser(java_cup.runtime.Scanner s) {super(s);}
| Production table. |
protected static final short _production_table[][] =
unpackFromStrings(new String[] {
"\000\253\000\002\021\003\000\002\023\002\000\002\023" +
"\003\000\002\024\005\000\002\024\004\000\002\024\003" +
"\000\002\025\003\000\002\025\003\000\002\025\003\000" +
"\002\026\003\000\002\026\003\000\002\026\003\000\002" +
"\026\003\000\002\026\003\000\002\026\003\000\002\026" +
"\003\000\002\026\003\000\002\026\003\000\002\026\003" +
"\000\002\026\003\000\002\003\004\000\002\004\006\000" +
"\002\005\004\000\002\016\006\000\002\006\010\000\002" +
"\007\005\000\002\007\010\000\002\010\007\000\002\010" +
"\013\000\002\011\004\000\002\015\004\000\002\015\006" +
"\000\002\012\004\000\002\017\005\000\002\013\005\000" +
"\002\014\004\000\002\014\006\000\002\027\010\000\002" +
"\027\006\000\002\030\004\000\002\126\003\000\002\126" +
"\006\000\002\055\002\000\002\055\003\000\002\056\005" +
"\000\002\056\003\000\002\102\002\000\002\102\005\000" +
"\002\070\002\000\002\070\004\000\002\070\005\000\002" +
"\071\002\000\002\071\003\000\002\072\005\000\002\072" +
"\003\000\002\054\003\000\002\065\002\000\002\065\005" +
"\000\002\065\012\000\002\066\002\000\002\066\003\000" +
"\002\067\005\000\002\067\003\000\002\115\005\000\002" +
"\110\002\000\002\110\003\000\002\111\005\000\002\111" +
"\003\000\002\053\003\000\002\106\002\000\002\106\003" +
"\000\002\107\005\000\002\107\003\000\002\022\003\000" +
"\002\031\003\000\002\031\003\000\002\032\003\000\002" +
"\032\003\000\002\032\003\000\002\032\003\000\002\032" +
"\003\000\002\032\003\000\002\032\003\000\002\032\003" +
"\000\002\032\003\000\002\035\003\000\002\036\004\000" +
"\002\037\005\000\002\040\005\000\002\041\005\000\002" +
"\042\005\000\002\043\005\000\002\033\005\000\002\123" +
"\005\000\002\124\005\000\002\122\004\000\002\020\003" +
"\000\002\020\003\000\002\020\003\000\002\020\003\000" +
"\002\020\005\000\002\020\005\000\002\020\005\000\002" +
"\020\005\000\002\020\005\000\002\020\005\000\002\052" +
"\003\000\002\050\006\000\002\051\011\000\002\073\002" +
"\000\002\073\003\000\002\074\005\000\002\074\003\000" +
"\002\063\003\000\002\063\003\000\002\044\003\000\002" +
"\044\003\000\002\046\003\000\002\046\003\000\002\047" +
"\003\000\002\047\003\000\002\047\003\000\002\045\003" +
"\000\002\045\003\000\002\045\003\000\002\114\003\000" +
"\002\114\005\000\002\127\003\000\002\127\004\000\002" +
"\075\003\000\002\075\005\000\002\076\003\000\002\076" +
"\003\000\002\076\005\000\002\077\004\000\002\077\005" +
"\000\002\120\005\000\002\121\003\000\002\116\004\000" +
"\002\116\006\000\002\117\005\000\002\103\002\000\002" +
"\103\005\000\002\104\002\000\002\104\005\000\002\105" +
"\002\000\002\105\005\000\002\100\002\000\002\100\003" +
"\000\002\101\005\000\002\101\003\000\002\057\003\000" +
"\002\057\003\000\002\057\003\000\002\057\003\000\002" +
"\057\003\000\002\057\003\000\002\060\005\000\002\062" +
"\010\000\002\112\002\000\002\112\004\000\002\112\005" +
"\000\002\113\003\000\002\113\005\000\002\061\006\000" +
"\002\034\002\000\002\034\004\000\002\064\004\000\002" +
"\125\003\000\002\125\005\000\002\002\004" });
| Access to production table. |
public short[][] production_table() {return _production_table;}
| Parse-action table. |
protected static final short[][] _action_table =
unpackFromStrings(new String[] {
"\000\u0122\000\034\002\000\003\034\016\025\017\026\020" +
"\043\021\032\022\033\023\031\024\035\025\040\026\023" +
"\040\005\053\022\001\002\000\004\033\ufffb\001\002\000" +
"\004\053\u010b\001\002\000\034\002\uffff\003\u0109\016\025" +
"\017\026\020\043\021\032\022\033\023\031\024\035\025" +
"\040\026\023\040\005\053\022\001\002\000\004\033\ufff8" +
"\001\002\000\004\033\u0107\001\002\000\004\033\ufff6\001" +
"\002\000\004\033\ufff7\001\002\000\012\007\321\014\320" +
"\031\324\043\314\001\002\000\004\033\ufff2\001\002\000" +
"\004\033\ufff3\001\002\000\004\033\ufff4\001\002\000\004" +
"\033\ufff9\001\002\000\004\033\ufff1\001\002\000\012\007" +
"\321\014\320\031\324\043\314\001\002\000\014\007\uff62" +
"\014\uff62\031\uff62\041\375\043\uff62\001\002\000\032\036" +
"\114\037\134\040\137\041\142\043\233\045\067\047\101" +
"\050\113\051\072\052\132\053\107\055\063\001\002\000" +
"\004\033\ufff0\001\002\000\004\053\361\001\002\000\004" +
"\053\044\001\002\000\004\033\uffef\001\002\000\012\007" +
"\321\014\320\031\324\043\314\001\002\000\006\053\056" +
"\054\057\001\002\000\004\053\044\001\002\000\004\053" +
"\044\001\002\000\036\002\ufffc\003\ufffc\016\ufffc\017\ufffc" +
"\020\ufffc\021\ufffc\022\ufffc\023\ufffc\024\ufffc\025\ufffc\026" +
"\ufffc\033\uffee\040\ufffc\053\ufffc\001\002\000\004\053\044" +
"\001\002\000\004\033\ufffa\001\002\000\004\002\001\001" +
"\002\000\040\013\124\036\114\037\134\040\121\041\075" +
"\043\125\045\067\047\101\050\113\051\072\052\132\053" +
"\107\055\063\056\115\057\064\001\002\000\004\033\ufff5" +
"\001\002\000\004\002\257\001\002\000\004\053\044\001" +
"\002\000\010\032\uffca\042\uffca\053\uffca\001\002\000\004" +
"\053\046\001\002\000\010\014\047\033\uffe8\041\050\001" +
"\002\000\030\036\114\037\134\040\137\041\142\045\067" +
"\047\101\050\113\051\072\052\132\053\107\055\063\001" +
"\002\000\006\042\uffce\053\044\001\002\000\006\032\254" +
"\042\uffcd\001\002\000\006\032\uffcb\042\uffcb\001\002\000" +
"\004\042\054\001\002\000\006\014\055\033\uffe7\001\002" +
"\000\006\053\056\054\057\001\002\000\016\005\uff90\006" +
"\uff90\033\uff90\041\uff90\044\uff90\045\uff90\001\002\000\016" +
"\005\uff8f\006\uff8f\033\uff8f\041\uff8f\044\uff8f\045\uff8f\001" +
"\002\000\006\033\uffd3\045\061\001\002\000\042\013\124" +
"\036\114\037\134\040\121\041\075\043\125\045\067\046" +
"\uff6e\047\101\050\113\051\072\052\132\053\107\055\063" +
"\056\115\057\064\001\002\000\004\033\uffe5\001\002\000" +
"\050\005\uff88\006\uff88\010\uff88\011\uff88\012\uff88\014\uff88" +
"\015\uff88\027\uff88\030\uff88\032\uff88\033\uff88\035\uff88\042" +
"\uff88\044\uff88\046\uff88\060\uff88\061\uff88\062\uff88\063\uff88" +
"\001\002\000\004\053\044\001\002\000\050\005\uffa1\006" +
"\uffa1\010\uffa1\011\uffa1\012\uffa1\014\uffa1\015\uffa1\027\uffa1" +
"\030\uffa1\032\uffa1\033\uffa1\035\uffa1\042\uffa1\044\uffa1\046" +
"\uffa1\060\uffa1\061\uffa1\062\uffa1\063\uffa1\001\002\000\032" +
"\005\uffb3\006\uffb3\010\uffb3\012\uffb3\027\uffb3\030\uffb3\032" +
"\uffb3\033\uffb3\035\uffb3\042\uffb3\044\uffb3\046\uffb3\001\002" +
"\000\030\036\114\037\134\040\137\041\142\045\067\047" +
"\101\050\113\051\072\052\132\053\107\055\063\001\002" +
"\000\032\005\uffb0\006\uffb0\010\uffb0\012\uffb0\027\uffb0\030" +
"\uffb0\032\uffb0\033\uffb0\035\uffb0\042\uffb0\044\uffb0\046\uffb0" +
"\001\002\000\032\005\uffad\006\uffad\010\uffad\012\uffad\027" +
"\uffad\030\uffad\032\uffad\033\uffad\035\uffad\042\uffad\044\uffad" +
"\046\uffad\001\002\000\050\005\uff86\006\uff86\010\uff86\011" +
"\uff86\012\uff86\014\uff86\015\uff86\027\uff86\030\uff86\032\uff86" +
"\033\uff86\035\uff86\042\uff86\044\uff86\046\uff86\060\uff86\061" +
"\uff86\062\uff86\063\uff86\001\002\000\010\032\uff6b\042\uff6b" +
"\046\uff6b\001\002\000\010\032\243\042\uff6d\046\uff6d\001" +
"\002\000\036\013\124\036\114\037\134\040\137\041\075" +
"\045\067\047\101\050\113\051\072\052\132\053\107\055" +
"\063\056\115\057\064\001\002\000\050\005\uffa0\006\uffa0" +
"\010\uffa0\011\uffa0\012\uffa0\014\uffa0\015\uffa0\027\uffa0\030" +
"\uffa0\032\uffa0\033\uffa0\035\uffa0\042\uffa0\044\uffa0\046\uffa0" +
"\060\uffa0\061\uffa0\062\uffa0\063\uffa0\001\002\000\032\005" +
"\uffb5\006\uffb5\010\uffb5\012\uffb5\027\uffb5\030\uffb5\032\uffb5" +
"\033\uffb5\035\uffb5\042\uffb5\044\uffb5\046\uffb5\001\002\000" +
"\004\046\237\001\002\000\052\005\uff82\006\uff82\010\uff82" +
"\011\uff82\012\uff82\014\uff82\015\uff82\027\uff82\030\uff82\032" +
"\uff82\033\uff82\035\uff82\042\uff82\044\uff82\046\uff82\047\uff82" +
"\060\uff82\061\uff82\062\uff82\063\uff82\001\002\000\032\005" +
"\uffae\006\uffae\010\uffae\012\uffae\027\uffae\030\uffae\032\uffae" +
"\033\uffae\035\uffae\042\uffae\044\uffae\046\uffae\001\002\000" +
"\010\012\173\027\172\030\174\001\002\000\032\005\uffaf" +
"\006\uffaf\010\uffaf\012\uffaf\027\uffaf\030\uffaf\032\uffaf\033" +
"\uffaf\035\uffaf\042\uffaf\044\uffaf\046\uffaf\001\002\000\032" +
"\005\uffb7\006\uffb7\010\uffb7\012\uffb7\027\uffb7\030\uffb7\032" +
"\uffb7\033\uffb7\035\uffb7\042\uffb7\044\uffb7\046\uffb7\001\002" +
"\000\032\005\uffb2\006\uffb2\010\uffb2\012\uffb2\027\uffb2\030" +
"\uffb2\032\uffb2\033\uffb2\035\uffb2\042\uffb2\044\uffb2\046\uffb2" +
"\001\002\000\052\005\uff97\006\uff97\010\uff97\011\uff97\012" +
"\uff97\014\uff97\015\uff97\027\uff97\030\uff97\032\uff97\033\uff97" +
"\035\uff97\041\200\042\uff97\044\uff97\046\uff97\060\uff97\061" +
"\uff97\062\uff97\063\uff97\001\002\000\020\005\uff66\006\uff66" +
"\032\uff66\033\uff66\042\uff66\044\uff66\046\uff66\001\002\000" +
"\050\005\uff8d\006\uff8d\010\uff8d\011\uff8d\012\uff8d\014\uff8d" +
"\015\uff8d\027\uff8d\030\uff8d\032\uff8d\033\uff8d\035\uff8d\042" +
"\uff8d\044\uff8d\046\uff8d\060\uff8d\061\uff8d\062\uff8d\063\uff8d" +
"\001\002\000\020\005\uff68\006\uff68\032\uff68\033\uff68\042" +
"\uff68\044\uff68\046\uff68\001\002\000\050\005\uff87\006\uff87" +
"\010\uff87\011\uff87\012\uff87\014\uff87\015\uff87\027\uff87\030" +
"\uff87\032\uff87\033\uff87\035\uff87\042\uff87\044\uff87\046\uff87" +
"\060\uff87\061\uff87\062\uff87\063\uff87\001\002\000\050\005" +
"\uff8c\006\uff8c\010\uff8c\011\uff8c\012\uff8c\014\uff8c\015\uff8c" +
"\027\uff8c\030\uff8c\032\uff8c\033\uff8c\035\uff8c\042\uff8c\044" +
"\uff8c\046\uff8c\060\uff8c\061\uff8c\062\uff8c\063\uff8c\001\002" +
"\000\004\053\044\001\002\000\042\005\uff6a\006\uff6a\012" +
"\uffac\014\166\015\167\027\uffac\030\uffac\032\uff6a\033\uff6a" +
"\042\uff6a\044\uff6a\046\uff6a\060\150\061\151\062\153\063" +
"\152\001\002\000\050\005\uff8e\006\uff8e\010\uff8e\011\uff8e" +
"\012\uff8e\014\uff8e\015\uff8e\027\uff8e\030\uff8e\032\uff8e\033" +
"\uff8e\035\uff8e\042\uff8e\044\uff8e\046\uff8e\060\uff8e\061\uff8e" +
"\062\uff8e\063\uff8e\001\002\000\032\005\uffb1\006\uffb1\010" +
"\uffb1\012\uffb1\027\uffb1\030\uffb1\032\uffb1\033\uffb1\035\uffb1" +
"\042\uffb1\044\uffb1\046\uffb1\001\002\000\006\041\221\043" +
"\233\001\002\000\026\005\uff69\006\uff69\012\uffb6\027\uffb6" +
"\030\uffb6\032\uff69\033\uff69\042\uff69\044\uff69\046\uff69\001" +
"\002\000\020\005\uff65\006\uff65\032\uff65\033\uff65\042\uff65" +
"\044\uff65\046\uff65\001\002\000\036\013\124\036\114\037" +
"\134\040\137\041\075\045\067\047\101\050\113\051\072" +
"\052\132\053\107\055\063\056\115\057\064\001\002\000" +
"\032\036\114\037\134\040\137\041\142\044\uff94\045\067" +
"\047\101\050\113\051\072\052\132\053\143\055\063\001" +
"\002\000\032\005\uffb4\006\uffb4\010\uffb4\012\uffb4\027\uffb4" +
"\030\uffb4\032\uffb4\033\uffb4\035\uffb4\042\uffb4\044\uffb4\046" +
"\uffb4\001\002\000\050\005\uff9f\006\uff9f\010\uff9f\011\uff9f" +
"\012\uff9f\014\uff9f\015\uff9f\027\uff9f\030\uff9f\032\uff9f\033" +
"\uff9f\035\uff9f\042\uff9f\044\uff9f\046\uff9f\060\uff9f\061\uff9f" +
"\062\uff9f\063\uff9f\001\002\000\050\005\uff9e\006\uff9e\010" +
"\uff9e\011\uff9e\012\uff9e\014\uff9e\015\uff9e\027\uff9e\030\uff9e" +
"\032\uff9e\033\uff9e\035\uff9e\042\uff9e\044\uff9e\046\uff9e\060" +
"\uff9e\061\uff9e\062\uff9e\063\uff9e\001\002\000\020\005\uff67" +
"\006\uff67\032\uff67\033\uff67\042\uff67\044\uff67\046\uff67\001" +
"\002\000\050\005\uff85\006\uff85\010\uff85\011\uff85\012\uff85" +
"\014\uff85\015\uff85\027\uff85\030\uff85\032\uff85\033\uff85\035" +
"\uff85\042\uff85\044\uff85\046\uff85\060\uff85\061\uff85\062\uff85" +
"\063\uff85\001\002\000\052\005\uff89\006\uff89\010\uff89\011" +
"\uff89\012\uff89\014\uff89\015\uff89\027\uff89\030\uff89\032\uff89" +
"\033\uff89\035\uff89\042\uff89\044\uff89\046\uff89\047\136\060" +
"\uff89\061\uff89\062\uff89\063\uff89\001\002\000\050\005\uff8b" +
"\006\uff8b\010\uff8b\011\uff8b\012\uff8b\014\uff8b\015\uff8b\027" +
"\uff8b\030\uff8b\032\uff8b\033\uff8b\035\uff8b\042\uff8b\044\uff8b" +
"\046\uff8b\060\uff8b\061\uff8b\062\uff8b\063\uff8b\001\002\000" +
"\050\005\uff8a\006\uff8a\010\uff8a\011\uff8a\012\uff8a\014\uff8a" +
"\015\uff8a\027\uff8a\030\uff8a\032\uff8a\033\uff8a\035\uff8a\042" +
"\uff8a\044\uff8a\046\uff8a\060\uff8a\061\uff8a\062\uff8a\063\uff8a" +
"\001\002\000\052\005\uff81\006\uff81\010\uff81\011\uff81\012" +
"\uff81\014\uff81\015\uff81\027\uff81\030\uff81\032\uff81\033\uff81" +
"\035\uff81\042\uff81\044\uff81\046\uff81\047\uff81\060\uff81\061" +
"\uff81\062\uff81\063\uff81\001\002\000\004\041\221\001\002" +
"\000\004\053\217\001\002\000\010\011\210\032\204\044" +
"\uff93\001\002\000\030\036\114\037\134\040\137\041\142" +
"\045\067\047\101\050\113\051\072\052\132\053\107\055" +
"\063\001\002\000\024\011\uff97\032\uff97\041\200\044\uff97" +
"\053\uffca\060\uff97\061\uff97\062\uff97\063\uff97\001\002\000" +
"\006\034\160\044\uff5c\001\002\000\026\011\uff91\032\uff91" +
"\033\uff91\042\uff91\044\uff91\046\uff91\060\150\061\151\062" +
"\153\063\152\001\002\000\004\044\147\001\002\000\020" +
"\005\uff64\006\uff64\032\uff64\033\uff64\042\uff64\044\uff64\046" +
"\uff64\001\002\000\030\036\114\037\134\040\137\041\142" +
"\045\067\047\101\050\113\051\072\052\132\053\107\055" +
"\063\001\002\000\030\036\114\037\134\040\137\041\142" +
"\045\067\047\101\050\113\051\072\052\132\053\107\055" +
"\063\001\002\000\030\036\114\037\134\040\137\041\142" +
"\045\067\047\101\050\113\051\072\052\132\053\107\055" +
"\063\001\002\000\030\036\114\037\134\040\137\041\142" +
"\045\067\047\101\050\113\051\072\052\132\053\107\055" +
"\063\001\002\000\040\005\uff9a\006\uff9a\010\uff9a\011\uff9a" +
"\012\uff9a\014\uff9a\015\uff9a\027\uff9a\030\uff9a\032\uff9a\033" +
"\uff9a\035\uff9a\042\uff9a\044\uff9a\046\uff9a\001\002\000\040" +
"\005\uff99\006\uff99\010\uff99\011\uff99\012\uff99\014\uff99\015" +
"\uff99\027\uff99\030\uff99\032\uff99\033\uff99\035\uff99\042\uff99" +
"\044\uff99\046\uff99\001\002\000\040\005\uff9b\006\uff9b\010" +
"\uff9b\011\uff9b\012\uff9b\014\uff9b\015\uff9b\027\uff9b\030\uff9b" +
"\032\uff9b\033\uff9b\035\uff9b\042\uff9b\044\uff9b\046\uff9b\001" +
"\002\000\040\005\uff9c\006\uff9c\010\uff9c\011\uff9c\012\uff9c" +
"\014\uff9c\015\uff9c\027\uff9c\030\uff9c\032\uff9c\033\uff9c\035" +
"\uff9c\042\uff9c\044\uff9c\046\uff9c\001\002\000\036\013\124" +
"\036\114\037\134\040\137\041\075\045\067\047\101\050" +
"\113\051\072\052\132\053\107\055\063\056\115\057\064" +
"\001\002\000\004\044\162\001\002\000\022\005\uff5d\006" +
"\uff5d\014\uff5d\032\uff5d\033\uff5d\042\uff5d\044\uff5d\046\uff5d" +
"\001\002\000\012\012\173\027\172\030\174\044\uff5b\001" +
"\002\000\032\005\uffb6\006\uffb6\010\uffb6\012\uffb6\027\uffb6" +
"\030\uffb6\032\uffb6\033\uffb6\035\uffb6\042\uffb6\044\uffb6\046" +
"\uffb6\001\002\000\046\005\uffac\006\uffac\010\uffac\012\uffac" +
"\014\166\015\167\027\uffac\030\uffac\032\uffac\033\uffac\035" +
"\uffac\042\uffac\044\uffac\046\uffac\060\150\061\151\062\153" +
"\063\152\001\002\000\030\036\114\037\134\040\137\041" +
"\142\045\067\047\101\050\113\051\072\052\132\053\107" +
"\055\063\001\002\000\030\036\114\037\134\040\137\041" +
"\142\045\067\047\101\050\113\051\072\052\132\053\107" +
"\055\063\001\002\000\042\005\uffa6\006\uffa6\010\uffa6\012" +
"\uffa6\027\uffa6\030\uffa6\032\uffa6\033\uffa6\035\uffa6\042\uffa6" +
"\044\uffa6\046\uffa6\060\150\061\151\062\153\063\152\001" +
"\002\000\042\005\uffa7\006\uffa7\010\uffa7\012\uffa7\027\uffa7" +
"\030\uffa7\032\uffa7\033\uffa7\035\uffa7\042\uffa7\044\uffa7\046" +
"\uffa7\060\150\061\151\062\153\063\152\001\002\000\036" +
"\013\124\036\114\037\134\040\137\041\075\045\067\047" +
"\101\050\113\051\072\052\132\053\107\055\063\056\115" +
"\057\064\001\002\000\036\013\124\036\114\037\134\040" +
"\137\041\075\045\067\047\101\050\113\051\072\052\132" +
"\053\107\055\063\056\115\057\064\001\002\000\036\013" +
"\124\036\114\037\134\040\137\041\075\045\067\047\101" +
"\050\113\051\072\052\132\053\107\055\063\056\115\057" +
"\064\001\002\000\032\005\uffa9\006\uffa9\010\uffa9\012\uffa9" +
"\027\uffa9\030\uffa9\032\uffa9\033\uffa9\035\uffa9\042\uffa9\044" +
"\uffa9\046\uffa9\001\002\000\032\005\uffa8\006\uffa8\010\uffa8" +
"\012\173\027\172\030\174\032\uffa8\033\uffa8\035\uffa8\042" +
"\uffa8\044\uffa8\046\uffa8\001\002\000\032\005\uffaa\006\uffaa" +
"\010\uffaa\012\uffaa\027\uffaa\030\uffaa\032\uffaa\033\uffaa\035" +
"\uffaa\042\uffaa\044\uffaa\046\uffaa\001\002\000\032\036\114" +
"\037\134\040\137\041\142\042\uff94\045\067\047\101\050" +
"\113\051\072\052\132\053\107\055\063\001\002\000\006" +
"\032\204\042\uff93\001\002\000\004\042\203\001\002\000" +
"\050\005\uff96\006\uff96\010\uff96\011\uff96\012\uff96\014\uff96" +
"\015\uff96\027\uff96\030\uff96\032\uff96\033\uff96\035\uff96\042" +
"\uff96\044\uff96\046\uff96\060\uff96\061\uff96\062\uff96\063\uff96" +
"\001\002\000\030\036\114\037\134\040\137\041\142\045" +
"\067\047\101\050\113\051\072\052\132\053\107\055\063" +
"\001\002\000\026\011\uff92\032\uff92\033\uff92\042\uff92\044" +
"\uff92\046\uff92\060\150\061\151\062\153\063\152\001\002" +
"\000\014\042\207\060\150\061\151\062\153\063\152\001" +
"\002\000\050\005\uff9d\006\uff9d\010\uff9d\011\uff9d\012\uff9d" +
"\014\uff9d\015\uff9d\027\uff9d\030\uff9d\032\uff9d\033\uff9d\035" +
"\uff9d\042\uff9d\044\uff9d\046\uff9d\060\uff9d\061\uff9d\062\uff9d" +
"\063\uff9d\001\002\000\004\053\044\001\002\000\010\032" +
"\213\034\160\044\uff5c\001\002\000\014\032\uff5f\034\uff5f" +
"\035\uff5f\042\uff5f\044\uff5f\001\002\000\004\053\044\001" +
"\002\000\004\044\215\001\002\000\020\005\uff63\006\uff63" +
"\032\uff63\033\uff63\042\uff63\044\uff63\046\uff63\001\002\000" +
"\014\032\uff5e\034\uff5e\035\uff5e\042\uff5e\044\uff5e\001\002" +
"\000\050\013\uffb8\032\uffb8\034\uffb8\035\uffb8\036\uffb8\037" +
"\uffb8\040\uffb8\041\uffb8\042\uffb8\044\uffb8\045\uffb8\047\uffb8" +
"\050\uffb8\051\uffb8\052\uffb8\053\uffb8\055\uffb8\056\uffb8\057" +
"\uffb8\001\002\000\050\013\uffa2\032\uffa2\034\uffa2\035\uffa2" +
"\036\uffa2\037\uffa2\040\uffa2\041\uffa2\042\uffa2\044\uffa2\045" +
"\uffa2\047\uffa2\050\uffa2\051\uffa2\052\uffa2\053\uffa2\055\uffa2" +
"\056\uffa2\057\uffa2\001\002\000\004\053\044\001\002\000" +
"\012\032\213\034\230\035\uff59\042\uff59\001\002\000\004" +
"\042\224\001\002\000\004\045\225\001\002\000\030\036" +
"\114\037\134\040\137\041\142\045\067\047\101\050\113" +
"\051\072\052\132\053\107\055\063\001\002\000\006\032" +
"\204\046\227\001\002\000\050\005\uff95\006\uff95\010\uff95" +
"\011\uff95\012\uff95\014\uff95\015\uff95\027\uff95\030\uff95\032" +
"\uff95\033\uff95\035\uff95\042\uff95\044\uff95\046\uff95\060\uff95" +
"\061\uff95\062\uff95\063\uff95\001\002\000\036\013\124\036" +
"\114\037\134\040\137\041\075\045\067\047\101\050\113" +
"\051\072\052\132\053\107\055\063\056\115\057\064\001" +
"\002\000\014\012\173\027\172\030\174\035\uff58\042\uff58" +
"\001\002\000\032\005\uffab\006\uffab\010\uffab\012\uffab\027" +
"\uffab\030\uffab\032\uffab\033\uffab\035\uffab\042\uffab\044\uffab" +
"\046\uffab\001\002\000\004\053\044\001\002\000\020\005" +
"\uff5a\006\uff5a\032\uff5a\033\uff5a\042\uff5a\044\uff5a\046\uff5a" +
"\001\002\000\036\013\124\036\114\037\134\040\137\041" +
"\075\045\067\047\101\050\113\051\072\052\132\053\107" +
"\055\063\056\115\057\064\001\002\000\032\005\uffa4\006" +
"\uffa4\010\uffa4\012\173\027\172\030\174\032\uffa4\033\uffa4" +
"\035\uffa4\042\uffa4\044\uffa4\046\uffa4\001\002\000\004\033" +
"\uffd2\001\002\000\012\012\uffb6\027\uffb6\030\uffb6\042\242" +
"\001\002\000\026\012\uffac\014\166\015\167\027\uffac\030" +
"\uffac\042\207\060\150\061\151\062\153\063\152\001\002" +
"\000\032\005\uffa5\006\uffa5\010\uffa5\012\uffa5\027\uffa5\030" +
"\uffa5\032\uffa5\033\uffa5\035\uffa5\042\uffa5\044\uffa5\046\uffa5" +
"\001\002\000\040\013\124\036\114\037\134\040\121\041" +
"\075\043\125\045\067\047\101\050\113\051\072\052\132" +
"\053\107\055\063\056\115\057\064\001\002\000\010\032" +
"\uff6c\042\uff6c\046\uff6c\001\002\000\006\033\250\046\247" +
"\001\002\000\010\032\204\033\uff84\046\uff84\001\002\000" +
"\050\005\uff98\006\uff98\010\uff98\011\uff98\012\uff98\014\uff98" +
"\015\uff98\027\uff98\030\uff98\032\uff98\033\uff98\035\uff98\042" +
"\uff98\044\uff98\046\uff98\060\uff98\061\uff98\062\uff98\063\uff98" +
"\001\002\000\030\036\114\037\134\040\137\041\142\045" +
"\067\047\101\050\113\051\072\052\132\053\107\055\063" +
"\001\002\000\010\032\204\033\uff83\046\uff83\001\002\000" +
"\036\013\124\036\114\037\134\040\137\041\075\045\067" +
"\047\101\050\113\051\072\052\132\053\107\055\063\056" +
"\115\057\064\001\002\000\032\005\uffa3\006\uffa3\010\uffa3" +
"\012\173\027\172\030\174\032\uffa3\033\uffa3\035\uffa3\042" +
"\uffa3\044\uffa3\046\uffa3\001\002\000\004\053\044\001\002" +
"\000\006\032\uffcc\042\uffcc\001\002\000\014\033\uffe6\060" +
"\150\061\151\062\153\063\152\001\002\000\004\002\uff57" +
"\001\002\000\004\033\uffda\001\002\000\004\035\262\001" +
"\002\000\006\053\056\054\057\001\002\000\004\033\uffdd" +
"\001\002\000\010\033\uff74\041\uff74\045\266\001\002\000" +
"\006\033\uff70\041\271\001\002\000\042\013\124\036\114" +
"\037\134\040\121\041\075\043\125\045\067\046\uff6e\047" +
"\101\050\113\051\072\052\132\053\107\055\063\056\115" +
"\057\064\001\002\000\004\046\270\001\002\000\014\005" +
"\uff73\006\uff73\033\uff73\041\uff73\044\uff73\001\002\000\032" +
"\036\114\037\134\040\137\041\142\042\uff94\045\067\047" +
"\101\050\113\051\072\052\132\053\107\055\063\001\002" +
"\000\004\033\uff75\001\002\000\004\042\274\001\002\000" +
"\004\033\uff6f\001\002\000\004\053\277\001\002\000\004" +
"\033\uffdf\001\002\000\010\032\uffd4\033\uffd4\045\303\001" +
"\002\000\006\032\301\033\uffd9\001\002\000\004\053\302" +
"\001\002\000\010\032\uffd5\033\uffd5\044\uffd5\001\002\000" +
"\004\050\304\001\002\000\004\046\305\001\002\000\004" +
"\033\uffd8\001\002\000\004\053\307\001\002\000\004\041" +
"\310\001\002\000\004\053\044\001\002\000\004\042\312" +
"\001\002\000\004\033\uffe9\001\002\000\004\033\uffde\001" +
"\002\000\010\007\321\014\320\031\324\001\002\000\012" +
"\005\341\006\340\033\uff7d\044\uff7d\001\002\000\006\033" +
"\uff78\044\uff78\001\002\000\004\033\uffeb\001\002\000\040" +
"\013\124\036\114\037\134\040\121\041\075\043\125\045" +
"\067\047\101\050\113\051\072\052\132\053\107\055\063" +
"\056\115\057\064\001\002\000\036\013\124\036\114\037" +
"\134\040\137\041\075\045\067\047\101\050\113\051\072" +
"\052\132\053\107\055\063\056\115\057\064\001\002\000" +
"\004\033\uff80\001\002\000\006\033\uff7e\044\uff7e\001\002" +
"\000\006\053\056\054\057\001\002\000\016\005\uff74\006" +
"\uff74\033\uff74\041\uff74\044\uff74\045\266\001\002\000\014" +
"\005\uff72\006\uff72\033\uff72\041\327\044\uff72\001\002\000" +
"\042\013\124\036\114\037\134\040\121\041\075\042\uff6e" +
"\043\125\045\067\047\101\050\113\051\072\052\132\053" +
"\107\055\063\056\115\057\064\001\002\000\012\005\uff76" +
"\006\uff76\033\uff76\044\uff76\001\002\000\004\042\332\001" +
"\002\000\012\005\uff71\006\uff71\033\uff71\044\uff71\001\002" +
"\000\012\010\335\012\173\027\172\030\174\001\002\000" +
"\012\005\uff7b\006\uff7b\033\uff7b\044\uff7b\001\002\000\006" +
"\014\320\031\324\001\002\000\012\005\uff79\006\uff79\033" +
"\uff79\044\uff79\001\002\000\012\005\uff77\006\uff77\033\uff77" +
"\044\uff77\001\002\000\036\013\124\036\114\037\134\040" +
"\137\041\075\045\067\047\101\050\113\051\072\052\132" +
"\053\107\055\063\056\115\057\064\001\002\000\006\014" +
"\320\031\324\001\002\000\006\033\uff7c\044\uff7c\001\002" +
"\000\012\005\uff7a\006\uff7a\033\uff7a\044\uff7a\001\002\000" +
"\004\044\345\001\002\000\004\033\uff7f\001\002\000\004" +
"\053\347\001\002\000\016\007\uff62\014\uff62\031\uff62\033" +
"\uffd1\041\352\043\uff62\001\002\000\012\007\uffea\014\uffea" +
"\031\uffea\043\uffea\001\002\000\004\033\uffec\001\002\000" +
"\006\042\353\053\044\001\002\000\014\007\uff61\014\uff61" +
"\031\uff61\033\uffd0\043\uff61\001\002\000\006\032\254\042" +
"\360\001\002\000\006\032\213\042\357\001\002\000\010" +
"\032\uffcb\042\uffcb\053\217\001\002\000\012\007\uff60\014" +
"\uff60\031\uff60\043\uff60\001\002\000\004\033\uffcf\001\002" +
"\000\004\033\uffed\001\002\000\004\014\366\001\002\000" +
"\014\014\364\060\150\061\151\062\153\063\152\001\002" +
"\000\030\036\114\037\134\040\137\041\142\045\067\047" +
"\101\050\113\051\072\052\132\053\107\055\063\001\002" +
"\000\014\033\uffdb\060\150\061\151\062\153\063\152\001" +
"\002\000\004\043\367\001\002\000\006\044\uffd7\053\370" +
"\001\002\000\006\032\uffd4\044\uffd4\001\002\000\004\044" +
"\373\001\002\000\006\032\301\044\uffd6\001\002\000\004" +
"\033\uffdc\001\002\000\012\007\uffe3\014\uffe3\031\uffe3\043" +
"\uffe3\001\002\000\006\042\u0100\053\376\001\002\000\010" +
"\032\uffb8\042\uffb8\053\uffca\001\002\000\006\032\u0102\042" +
"\u0103\001\002\000\012\007\uff61\014\uff61\031\uff61\043\uff61" +
"\001\002\000\006\032\uffb9\042\uffb9\001\002\000\004\053" +
"\217\001\002\000\012\007\uffe2\014\uffe2\031\uffe2\043\uffe2" +
"\001\002\000\006\032\uffba\042\uffba\001\002\000\004\033" +
"\uffe4\001\002\000\004\033\uffe1\001\002\000\034\002\ufffd" +
"\003\ufffd\016\ufffd\017\ufffd\020\ufffd\021\ufffd\022\ufffd\023" +
"\ufffd\024\ufffd\025\ufffd\026\ufffd\040\ufffd\053\ufffd\001\002" +
"\000\004\033\u010a\001\002\000\004\033\uffee\001\002\000" +
"\034\002\ufffe\003\ufffe\016\ufffe\017\ufffe\020\ufffe\021\ufffe" +
"\022\ufffe\023\ufffe\024\ufffe\025\ufffe\026\ufffe\040\ufffe\053" +
"\ufffe\001\002\000\016\007\uffc9\014\uffc9\031\uffc9\034\u010d" +
"\041\u010e\043\uffc9\001\002\000\012\007\uffe0\014\uffe0\031" +
"\uffe0\043\uffe0\001\002\000\004\041\u0119\001\002\000\006" +
"\042\uffc6\053\u010f\001\002\000\010\014\uffbd\032\uffbd\042" +
"\uffbd\001\002\000\006\032\uffc3\042\uffc3\001\002\000\006" +
"\032\u0117\042\uffc5\001\002\000\004\014\u0115\001\002\000" +
"\004\042\u0114\001\002\000\012\007\uffc8\014\uffc8\031\uffc8" +
"\043\uffc8\001\002\000\004\053\u0116\001\002\000\006\032" +
"\uffc2\042\uffc2\001\002\000\004\053\u010f\001\002\000\006" +
"\032\uffc4\042\uffc4\001\002\000\006\042\uffc1\053\u010f\001" +
"\002\000\004\042\u011f\001\002\000\006\032\uffbe\042\uffbe" +
"\001\002\000\006\032\u011d\042\uffc0\001\002\000\004\053" +
"\u010f\001\002\000\006\032\uffbf\042\uffbf\001\002\000\004" +
"\012\u0120\001\002\000\004\041\u0121\001\002\000\006\042" +
"\uffbc\053\217\001\002\000\006\032\u0102\042\uffbb\001\002" +
"\000\004\042\u0124\001\002\000\012\007\uffc7\014\uffc7\031" +
"\uffc7\043\uffc7\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\u0122\000\052\003\006\004\011\005\010\006\040\007" +
"\015\010\014\011\013\012\017\013\023\014\026\015\020" +
"\016\027\017\012\021\041\023\036\024\005\025\007\026" +
"\003\027\035\030\016\001\001\000\002\001\001\000\002" +
"\001\001\000\044\003\006\004\011\005\010\006\040\007" +
"\015\010\014\011\013\012\017\013\023\014\026\015\020" +
"\016\027\017\012\025\u0107\026\003\027\035\030\016\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\014\075\u0105\076\321\077\314\116" +
"\315\121\322\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\014\075\u0104\076\321\077\314\116\315\121\322\001\001" +
"\000\004\112\373\001\001\000\026\020\362\044\127\045" +
"\134\046\116\047\110\050\075\051\126\052\064\061\361" +
"\127\132\001\001\000\002\001\001\000\002\001\001\000" +
"\004\054\345\001\001\000\002\001\001\000\014\075\316" +
"\076\321\077\314\116\315\121\322\001\001\000\006\063" +
"\263\117\312\001\001\000\004\054\305\001\001\000\004" +
"\054\274\001\001\000\002\001\001\000\012\054\137\113" +
"\221\122\211\125\260\001\001\000\002\001\001\000\002" +
"\001\001\000\066\020\115\031\102\032\121\033\103\035" +
"\104\036\076\037\125\040\065\041\105\042\117\043\067" +
"\044\127\045\134\046\116\047\110\050\075\051\126\052" +
"\064\057\257\060\111\061\130\062\107\064\122\123\101" +
"\124\070\127\132\001\001\000\002\001\001\000\002\001" +
"\001\000\004\054\044\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\024\020\255\044\127\045" +
"\134\046\116\047\110\050\075\051\126\052\064\127\132" +
"\001\001\000\010\054\051\071\052\072\050\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\004\063\057\001\001\000\002\001\001\000" +
"\002\001\001\000\004\102\061\001\001\000\072\020\115" +
"\031\102\032\121\033\103\035\104\036\076\037\125\040" +
"\065\041\105\042\117\043\067\044\127\045\134\046\116" +
"\047\110\050\075\051\126\052\064\057\072\060\111\061" +
"\130\062\107\064\122\100\077\101\073\123\101\124\070" +
"\127\132\001\001\000\002\001\001\000\002\001\001\000" +
"\006\054\137\122\251\001\001\000\002\001\001\000\002" +
"\001\001\000\030\020\144\044\127\045\134\046\116\047" +
"\110\050\075\051\126\052\064\074\245\114\244\127\132" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\054\020\240" +
"\031\102\032\237\033\103\035\104\036\076\037\125\040" +
"\065\041\105\042\117\043\067\044\127\045\134\046\116" +
"\047\110\050\075\051\126\052\064\123\101\124\070\127" +
"\132\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\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\002\001\001\000\006" +
"\054\137\122\234\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\004\061\233\001\001\000\002" +
"\001\001\000\002\001\001\000\054\020\164\031\231\032" +
"\163\033\103\035\104\036\076\037\125\040\065\041\105" +
"\042\117\043\067\044\127\045\134\046\116\047\110\050" +
"\075\051\126\052\064\123\101\124\070\127\132\001\001" +
"\000\034\020\144\044\127\045\134\046\116\047\110\050" +
"\075\051\126\052\064\054\137\073\145\074\140\122\143" +
"\127\132\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\002\001\001\000\002\001" +
"\001\000\002\001\001\000\004\022\217\001\001\000\002" +
"\001\001\000\024\020\205\044\127\045\134\046\116\047" +
"\110\050\075\051\126\052\064\127\132\001\001\000\002" +
"\001\001\000\004\034\160\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\024\020\156\044\127" +
"\045\134\046\116\047\110\050\075\051\126\052\064\127" +
"\132\001\001\000\024\020\155\044\127\045\134\046\116" +
"\047\110\050\075\051\126\052\064\127\132\001\001\000" +
"\024\020\154\044\127\045\134\046\116\047\110\050\075" +
"\051\126\052\064\127\132\001\001\000\024\020\153\044" +
"\127\045\134\046\116\047\110\050\075\051\126\052\064" +
"\127\132\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\054\020\164\031\162" +
"\032\163\033\103\035\104\036\076\037\125\040\065\041" +
"\105\042\117\043\067\044\127\045\134\046\116\047\110" +
"\050\075\051\126\052\064\123\101\124\070\127\132\001" +
"\001\000\002\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\024\020\170\044" +
"\127\045\134\046\116\047\110\050\075\051\126\052\064" +
"\127\132\001\001\000\024\020\167\044\127\045\134\046" +
"\116\047\110\050\075\051\126\052\064\127\132\001\001" +
"\000\002\001\001\000\002\001\001\000\054\020\164\031" +
"\176\032\163\033\103\035\104\036\076\037\125\040\065" +
"\041\105\042\117\043\067\044\127\045\134\046\116\047" +
"\110\050\075\051\126\052\064\123\101\124\070\127\132" +
"\001\001\000\054\020\164\031\175\032\163\033\103\035" +
"\104\036\076\037\125\040\065\041\105\042\117\043\067" +
"\044\127\045\134\046\116\047\110\050\075\051\126\052" +
"\064\123\101\124\070\127\132\001\001\000\054\020\164" +
"\031\174\032\163\033\103\035\104\036\076\037\125\040" +
"\065\041\105\042\117\043\067\044\127\045\134\046\116" +
"\047\110\050\075\051\126\052\064\123\101\124\070\127" +
"\132\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\030\020\144\044\127\045\134\046\116\047" +
"\110\050\075\051\126\052\064\073\201\074\200\127\132" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\024\020\204\044\127\045\134\046\116\047\110" +
"\050\075\051\126\052\064\127\132\001\001\000\002\001" +
"\001\000\002\001\001\000\002\001\001\000\010\054\137" +
"\113\210\122\211\001\001\000\004\034\213\001\001\000" +
"\002\001\001\000\006\054\137\122\215\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\012\054\137\113\221\122\211" +
"\125\222\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\026\020\144\044\127\045\134\046\116" +
"\047\110\050\075\051\126\052\064\074\225\127\132\001" +
"\001\000\002\001\001\000\002\001\001\000\054\020\164" +
"\031\230\032\163\033\103\035\104\036\076\037\125\040" +
"\065\041\105\042\117\043\067\044\127\045\134\046\116" +
"\047\110\050\075\051\126\052\064\123\101\124\070\127" +
"\132\001\001\000\002\001\001\000\002\001\001\000\006" +
"\054\137\122\143\001\001\000\002\001\001\000\054\020" +
"\164\031\235\032\163\033\103\035\104\036\076\037\125" +
"\040\065\041\105\042\117\043\067\044\127\045\134\046" +
"\116\047\110\050\075\051\126\052\064\123\101\124\070" +
"\127\132\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\066" +
"\020\115\031\102\032\121\033\103\035\104\036\076\037" +
"\125\040\065\041\105\042\117\043\067\044\127\045\134" +
"\046\116\047\110\050\075\051\126\052\064\057\243\060" +
"\111\061\130\062\107\064\122\123\101\124\070\127\132" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\026\020\144\044\127\045\134" +
"\046\116\047\110\050\075\051\126\052\064\074\250\127" +
"\132\001\001\000\002\001\001\000\054\020\164\031\252" +
"\032\163\033\103\035\104\036\076\037\125\040\065\041" +
"\105\042\117\043\067\044\127\045\134\046\116\047\110" +
"\050\075\051\126\052\064\123\101\124\070\127\132\001" +
"\001\000\002\001\001\000\004\054\254\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\006\063\263\117\262\001\001" +
"\000\002\001\001\000\004\103\264\001\001\000\004\105" +
"\271\001\001\000\072\020\115\031\102\032\121\033\103" +
"\035\104\036\076\037\125\040\065\041\105\042\117\043" +
"\067\044\127\045\134\046\116\047\110\050\075\051\126" +
"\052\064\057\072\060\111\061\130\062\107\064\122\100" +
"\266\101\073\123\101\124\070\127\132\001\001\000\002" +
"\001\001\000\002\001\001\000\030\020\144\044\127\045" +
"\134\046\116\047\110\050\075\051\126\052\064\073\272" +
"\074\200\127\132\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\006\056\277\126\275\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\002\001\001\000\002\001\001\000\002\001" +
"\001\000\004\054\310\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\012\076\343\077\314\116" +
"\315\121\322\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\066\020\115\031\102\032\121\033" +
"\103\035\104\036\076\037\125\040\065\041\105\042\117" +
"\043\067\044\127\045\134\046\116\047\110\050\075\051" +
"\126\052\064\057\336\060\111\061\130\062\107\064\122" +
"\123\101\124\070\127\132\001\001\000\056\020\164\031" +
"\332\032\163\033\103\035\104\036\076\037\125\040\065" +
"\041\105\042\117\043\067\044\127\045\134\046\116\047" +
"\110\050\075\051\126\052\064\120\333\123\101\124\070" +
"\127\132\001\001\000\002\001\001\000\002\001\001\000" +
"\004\063\324\001\001\000\004\103\325\001\001\000\004" +
"\104\327\001\001\000\072\020\115\031\102\032\121\033" +
"\103\035\104\036\076\037\125\040\065\041\105\042\117" +
"\043\067\044\127\045\134\046\116\047\110\050\075\051" +
"\126\052\064\057\072\060\111\061\130\062\107\064\122" +
"\100\330\101\073\123\101\124\070\127\132\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\004\116\335\001\001\000" +
"\002\001\001\000\002\001\001\000\056\020\164\031\332" +
"\032\163\033\103\035\104\036\076\037\125\040\065\041" +
"\105\042\117\043\067\044\127\045\134\046\116\047\110" +
"\050\075\051\126\052\064\120\342\123\101\124\070\127" +
"\132\001\001\000\006\116\315\121\341\001\001\000\002" +
"\001\001\000\002\001\001\000\002\001\001\000\002\001" +
"\001\000\002\001\001\000\006\070\350\112\347\001\001" +
"\000\002\001\001\000\002\001\001\000\012\054\355\072" +
"\353\113\354\122\211\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\004\022\217\001\001\000" +
"\002\001\001\000\002\001\001\000\002\001\001\000\002" +
"\001\001\000\002\001\001\000\024\020\364\044\127\045" +
"\134\046\116\047\110\050\075\051\126\052\064\127\132" +
"\001\001\000\002\001\001\000\002\001\001\000\006\055" +
"\370\056\371\001\001\000\002\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\014\022\u0100\054\137\107\376\113\354\122\211\001\001" +
"\000\002\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\004\022\u0103\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\002" +
"\001\001\000\004\065\u010b\001\001\000\002\001\001\000" +
"\002\001\001\000\012\053\u0111\066\u0112\067\u0110\115\u010f" +
"\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\002\001\001\000\006\053\u0111\115" +
"\u0117\001\001\000\002\001\001\000\010\053\u011a\110\u0119" +
"\111\u011b\001\001\000\002\001\001\000\002\001\001\000" +
"\002\001\001\000\004\053\u011d\001\001\000\002\001\001" +
"\000\002\001\001\000\002\001\001\000\010\022\u0100\106" +
"\u0122\107\u0121\001\001\000\002\001\001\000\002\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$BLOGParser$actions action_obj;
| Action encapsulation object initializer. |
protected void init_actions()
{
action_obj = new CUP$BLOGParser$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$BLOGParser$do_action(act_num, parser, stack, top);
}
| Indicates start state. |
public int start_state() {return 0;}
| Indicates start production. |
public int start_production() {return 170;}
EOF Symbol index.
|
public int EOF_sym() {return 0;}
error Symbol index.
|
public int error_sym() {return 1;}
| User initialization code. |
public void user_init() throws java.lang.Exception
{
if (model == null) {
throw new IllegalStateException
("Must specify non-null model with setModel() method "
+ "before using BLOGParser object to parse file.");
}
}
public int omerrs = 0;
private Model model;
private Evidence evidence;
private List queries;
public void syntax_error(Symbol cur_token) {
int lineno = action_obj.curr_lineno();
String filename = action_obj.curr_filename();
System.err.print(filename + ":" + lineno + " Parse error at or near ");
ParserUtilities.printToken(cur_token);
//System.exit(1);
omerrs++;
// if (omerrs > 0) {
// System.err.println("More than 50 errors");
// System.exit(1);
//}
}
public void unrecovered_syntax_error(Symbol cur_token) {
}
Sets the model that this parser will use. If the parser encounters
declarations, then the model will be augmented to reflect these
declarations. Otherwise, the model will be used to look up the types
and functions of the language. You must pass in a non-null model with
this method before calling the parse method.
|
public void setModel(Model model) {
this.model = model;
}
| Returns the model that this parser is using. |
public Model model() {
return model;
}
| Sets the evidence object that this parser will use. When the parser encounters an evidence statement, that evidence is added to this evidence object. Also, the evidence object is used to look up Skolem constants. |
public void setEvidence(Evidence evidence) {
this.evidence = evidence;
}
| Returns the evidence object that this parser is using (which may be null). |
public Evidence evidence() {
return evidence;
}
| Sets the list to which queries (represented as Query objects) will be appended. |
public void setQueries(List queries) {
this.queries = queries;
}
| Returns the query list that this parser is using (which may be null). |
public List queries() {
return queries;
}
Returns the Function object corresponding to the given signature, or
null if no such function has been declared. Uses the function table
in model, as well as the Skolem constant table in
evidence if evidence is not null.
|
public Function getFunction(String name, List argTypeList) {
Function f = model.getFunction(new Function.Sig(name, argTypeList));
if ((f == null) && (evidence != null)) {
f = evidence.getSkolemConstant(name);
}
return f;
}
| Nested class that specifies a CPD with parameters and arguments. |
public static class CPDSpec {
public CPDSpec(Class cls, List params, List args) {
this.cls = cls;
this.params = params;
this.args = args;
}
public Class cls;
public List params; // of ArgSpec
public List args; // of ArgSpec
}
| Nested class that specifies a potential with parameters and arguments. |
public static class PotentialSpec {
public PotentialSpec(Class cls, List params, List args) {
this.cls = cls;
this.params = (List<ArgSpec>) params;
this.args = (List<Term>) args;
}
public Class cls;
public List<ArgSpec> params;
public List<Term> args;
}
| Nested class that specifies a origin function and a variable for the generating object. |
public static class GenObjSpec {
public GenObjSpec(String originFuncName, String genObjVar) {
this.originFuncName = originFuncName;
this.genObjVar = genObjVar;
}
public String originFuncName;
public String genObjVar;
}
| Nested class that specifies a variable name and a type. |
public static class TypedVar {
public TypedVar(String var, Type type) {
this.var = var;
this.type = type;
}
public String var;
public Type type;
}
| Nested class that specifies a list of logical variables and a formula that constrains them. |
public static class VarsWithConstraint {
public VarsWithConstraint() {
logicalVars = Collections.emptyList();
constraint = TrueFormula.TRUE;
}
public VarsWithConstraint(List typedVars) {
for (Iterator iter = typedVars.iterator(); iter.hasNext(); ) {
TypedVar tv = (TypedVar) iter.next();
logicalVars.add(new LogicalVar(tv.var, tv.type));
}
constraint = TrueFormula.TRUE;
}
public VarsWithConstraint(List typedVars, Formula constraint) {
for (Iterator iter = typedVars.iterator(); iter.hasNext(); ) {
TypedVar tv = (TypedVar) iter.next();
logicalVars.add(new LogicalVar(tv.var, tv.type));
}
this.constraint = constraint;
}
public List<LogicalVar> logicalVars = new ArrayList<LogicalVar>();
public Formula constraint;
}
public static class ModelEvidenceQueries {
public ModelEvidenceQueries() {}
public ModelEvidenceQueries(Model model, Evidence evidence,
List queries) {
this.model = model;
this.evidence = evidence;
this.queries = queries;
}
public Model model = new Model();
public Evidence evidence = new Evidence();
public List queries = new LinkedList();
}
Sets the packages that will be searched before the default packages
when looking up class names (for CPDs, etc.). The given packages
are searched in the order they are listed.
|
public static void setPackagesToSearch(List packages) {
extraPackages = new ArrayList(packages);
}
public static void parseReader(Model model, Evidence evidence,
List queries, boolean doDebugParse,
Reader reader, String originName,
boolean parsingFromMessage)
throws Exception {
BLOGLexer lexer = new BLOGLexer(reader);
lexer.setFilename(originName);
if (parsingFromMessage)
System.out.println("Parsing from: " + originName);
BLOGParser parser = new BLOGParser(lexer);
parser.setModel(model);
parser.setEvidence(evidence);
parser.setQueries(queries);
if (doDebugParse)
parser.debug_parse();
else parser.parse();
if (parser.omerrs > 0)
throw new Exception
("File interpretation halted due to lex and parse errors");
}
private static void parseString(ModelEvidenceQueries meq,
String description) throws Exception {
parseReader(meq.model, meq.evidence, meq.queries,
false /* doDebugParse */, new StringReader(description),
Util.abbreviation(description), false);
meq.evidence.checkTypesAndScope(meq.model);
meq.evidence.compile();
for (Iterator it = meq.queries.iterator(); it.hasNext(); ) {
Query query = (Query) it.next();
query.checkTypesAndScope(meq.model);
query.compile();
}
}
public static ModelEvidenceQueries parseString(String description)
throws Exception {
ModelEvidenceQueries meq = new ModelEvidenceQueries();
parseString(meq, description);
return meq;
}
public static ModelEvidenceQueries parseString(Model model,
String description)
throws Exception {
ModelEvidenceQueries meq = new ModelEvidenceQueries();
meq.model = model;
parseString(meq, description);
return meq;
}
static List extraPackages = Collections.EMPTY_LIST; // of String
}
| Cup generated class to encapsulate user supplied action code. |
class CUP$BLOGParser$actions {
LocationInFile getCurLocation() {
return new LocationInFile
(((ScannerWithLocInfo)parser.getScanner()).getCurFilename(),
((ScannerWithLocInfo)parser.getScanner()).getCurLineNum());
}
int curr_lineno() {
return ((ScannerWithLocInfo)parser.getScanner()).getCurLineNum();
}
void semantic_error( String message ){
System.err.println("\n" + curr_filename( ) + ":" + curr_lineno( )
+ " Semantic error: " + message);
parser.omerrs++;
}
void warning( String message ){
System.err.println("\n" + curr_filename( ) + ":" + curr_lineno( )
+ " Warning: " + message);
}
String curr_filename() {
return ((ScannerWithLocInfo)parser.getScanner()).getCurFilename();
}
| Returns the class with the given name, or posts a semantic error if the class cannot be found. Looks first in the packages specified by calls to the parser's addPackageToSearch method (in the order they were added); then in the top-level package; and then in blog.distrib, ve, and fove. |
Class getClassWithName(String classname) {
for (Iterator iter = BLOGParser.extraPackages.iterator();
iter.hasNext(); ) {
try {
String pkg = (String) iter.next();
return Class.forName(pkg + "." + classname);
} catch( ClassNotFoundException e ) {
// continue loop
}
}
String[] builtInPackages = {"", "blog.distrib.", "ve.", "fove."};
for (int i = 0; i < builtInPackages.length; ++i) {
try {
return Class.forName(builtInPackages[i] + classname);
} catch (ClassNotFoundException e) {
// continue loop
}
}
semantic_error("Class not found: " + classname);
return null;
}
| Returns false and prints an error message if there are any functions with the given name that could apply to objects with the given types. |
boolean checkOverlappingFuncs(String name, List argTypeList) {
Type[] argTypes = new Type[argTypeList.size()];
argTypeList.toArray(argTypes);
Collection overlapFuncs
= parser.model().getOverlappingFuncs(name, argTypes);
if (overlapFuncs.isEmpty()) {
return true;
}
semantic_error("Can't declare function " + name
+ " with argument types " + argTypeList
+ " because it could apply to same objects as: ");
for (Iterator iter = overlapFuncs.iterator(); iter.hasNext(); ) {
Function o = (Function) iter.next();
System.err.println("\t" + o.getSig());
}
return false;
}
private final BLOGParser parser;
| Constructor |
CUP$BLOGParser$actions(BLOGParser parser) {
this.parser = parser;
}
| Method with the actual generated action code. |
public final java_cup.runtime.Symbol CUP$BLOGParser$do_action(
int CUP$BLOGParser$act_num,
java_cup.runtime.lr_parser CUP$BLOGParser$parser,
java.util.Stack CUP$BLOGParser$stack,
int CUP$BLOGParser$top)
throws java.lang.Exception
{
/* Symbol object for return from actions */
java_cup.runtime.Symbol CUP$BLOGParser$result;
/* select the action based on the action number */
switch (CUP$BLOGParser$act_num)
{
/*. . . . . . . . . . . . . . . . . . . .*/
case 170: // $START ::= file EOF
{
Object RESULT = null;
int start_valleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int start_valright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
Object start_val = (Object)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = start_val;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(0/*/START*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
/* ACCEPT */
CUP$BLOGParser$parser.done_parsing();
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 169: // vars_opt_constraint ::= var_type_lst COLON formula
{
BLOGParser.VarsWithConstraint RESULT = null;
int vtlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int vtlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
List vtl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int formleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int formright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Formula form = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = null;
if ((!vtl.contains(null)) && (form != null)) {
RESULT = new BLOGParser.VarsWithConstraint(vtl, form);
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(83/*vars_opt_constraint*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 168: // vars_opt_constraint ::= var_type_lst
{
BLOGParser.VarsWithConstraint RESULT = null;
int vtlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int vtlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List vtl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = null;
if (!vtl.contains(null)) {
RESULT = new BLOGParser.VarsWithConstraint(vtl);
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(83/*vars_opt_constraint*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 167: // cardinality_spec ::= NUMSIGN implicit_set
{
CardinalitySpec RESULT = null;
int isleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int isright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
ImplicitSetSpec is = (ImplicitSetSpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if (is == null) {
RESULT = null;
} else {
RESULT = new CardinalitySpec(is);
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(50/*cardinality_spec*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 166: // opt_cond ::= COLON formula
{
Formula RESULT = null;
int fleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int fright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Formula f = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = f;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(26/*opt_cond*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 165: // opt_cond ::=
{
Formula RESULT = null;
RESULT = TrueFormula.TRUE;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(26/*opt_cond*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 164: // implicit_set ::= LBRACE var_decl opt_cond RBRACE
{
ImplicitSetSpec RESULT = null;
int tvleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int tvright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
BLOGParser.TypedVar tv = (BLOGParser.TypedVar)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int ocleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int ocright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
Formula oc = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
if (oc == null) {
RESULT = null;
} else {
RESULT = new ImplicitSetSpec(tv.var, tv.type, oc);
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(47/*implicit_set*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 163: // var_type_lst ::= var_type_lst COMMA var_decl
{
List RESULT = null;
int vtlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int vtlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
List vtl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int tvleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int tvright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
BLOGParser.TypedVar tv = (BLOGParser.TypedVar)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = vtl;
vtl.add(tv);
CUP$BLOGParser$result = new java_cup.runtime.Symbol(73/*var_type_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 162: // var_type_lst ::= var_decl
{
List RESULT = null;
int tvleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int tvright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
BLOGParser.TypedVar tv = (BLOGParser.TypedVar)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = new ArrayList();
RESULT.add(tv);
CUP$BLOGParser$result = new java_cup.runtime.Symbol(73/*var_type_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 161: // opt_parenthesized_var_type_lst ::= LPAREN var_type_lst RPAREN
{
List RESULT = null;
int vtlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int vtlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List vtl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = vtl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(72/*opt_parenthesized_var_type_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 160: // opt_parenthesized_var_type_lst ::= LPAREN RPAREN
{
List RESULT = null;
RESULT = Collections.EMPTY_LIST;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(72/*opt_parenthesized_var_type_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 159: // opt_parenthesized_var_type_lst ::=
{
List RESULT = null;
RESULT = Collections.EMPTY_LIST;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(72/*opt_parenthesized_var_type_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 158: // tuple_set ::= LBRACE term_lst FOR var_type_lst opt_cond RBRACE
{
TupleSetSpec RESULT = null;
int tlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).right;
List tl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).value;
int vlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int vlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
List vl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int condleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int condright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
Formula cond = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
List vars = new ArrayList();
List types = new ArrayList();
for (Iterator iter = vl.iterator(); iter.hasNext(); ) {
BLOGParser.TypedVar tv = (BLOGParser.TypedVar) iter.next();
vars.add(tv.var);
types.add(tv.type);
}
if (tl.contains(null) || (cond == null)) {
RESULT = null;
} else {
RESULT = new TupleSetSpec(tl, types, vars, cond);
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(48/*tuple_set*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 157: // explicit_set ::= LBRACE opt_term_lst RBRACE
{
ExplicitSetSpec RESULT = null;
int otlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int otlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List otl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
if (otl.contains(null)) {
RESULT = null;
} else {
RESULT = new ExplicitSetSpec( otl );
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(46/*explicit_set*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 156: // cpd_arg ::= cardinality_spec
{
ArgSpec RESULT = null;
int csleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int csright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
CardinalitySpec cs = (CardinalitySpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = cs;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(45/*cpd_arg*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 155: // cpd_arg ::= tuple_set
{
ArgSpec RESULT = null;
int tsleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int tsright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
TupleSetSpec ts = (TupleSetSpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = ts;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(45/*cpd_arg*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 154: // cpd_arg ::= implicit_set
{
ArgSpec RESULT = null;
int isleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int isright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
ImplicitSetSpec is = (ImplicitSetSpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = is;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(45/*cpd_arg*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 153: // cpd_arg ::= explicit_set
{
ArgSpec RESULT = null;
int esleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int esright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
ExplicitSetSpec es = (ExplicitSetSpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = es;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(45/*cpd_arg*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 152: // cpd_arg ::= non_atomic_formula
{
ArgSpec RESULT = null;
int fleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int fright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Formula f = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = f;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(45/*cpd_arg*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 151: // cpd_arg ::= term
{
ArgSpec RESULT = null;
int tleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int tright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Term t = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = t;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(45/*cpd_arg*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 150: // cpd_arg_lst ::= cpd_arg
{
List RESULT = null;
int caleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int caright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
ArgSpec ca = (ArgSpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = new ArrayList( );
RESULT.add( ca );
CUP$BLOGParser$result = new java_cup.runtime.Symbol(63/*cpd_arg_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 149: // cpd_arg_lst ::= cpd_arg_lst COMMA cpd_arg
{
List RESULT = null;
int calleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int calright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
List cal = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int caleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int caright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
ArgSpec ca = (ArgSpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
cal.add( ca );
RESULT = cal;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(63/*cpd_arg_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 148: // opt_cpd_arg_lst ::= cpd_arg_lst
{
List RESULT = null;
int calleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int calright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List cal = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = cal;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(62/*opt_cpd_arg_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 147: // opt_cpd_arg_lst ::=
{
List RESULT = null;
RESULT = Collections.EMPTY_LIST;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(62/*opt_cpd_arg_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 146: // opt_factor_args ::= LPAREN opt_term_lst RPAREN
{
List RESULT = null;
int tlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List tl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = tl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(67/*opt_factor_args*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 145: // opt_factor_args ::=
{
List RESULT = null;
RESULT = Collections.EMPTY_LIST;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(67/*opt_factor_args*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 144: // opt_cpd_args ::= LPAREN opt_cpd_arg_lst RPAREN
{
List RESULT = null;
int calleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int calright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List cal = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = cal;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(66/*opt_cpd_args*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 143: // opt_cpd_args ::=
{
List RESULT = null;
RESULT = Collections.EMPTY_LIST;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(66/*opt_cpd_args*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 142: // opt_cpd_params ::= LBRACKET opt_cpd_arg_lst RBRACKET
{
List RESULT = null;
int plleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int plright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List pl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = pl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(65/*opt_cpd_params*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 141: // opt_cpd_params ::=
{
List RESULT = null;
RESULT = Collections.EMPTY_LIST;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(65/*opt_cpd_params*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 140: // potential ::= class_name opt_cpd_params opt_factor_args
{
BLOGParser.PotentialSpec RESULT = null;
int nameleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int nameright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
String name = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int plleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int plright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List pl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int alleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int alright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List al = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = null;
if ((!pl.contains(null)) & (!al.contains(null))) {
Class cls = getClassWithName(name);
if (cls != null) {
RESULT = new BLOGParser.PotentialSpec(cls, pl, al);
}
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(77/*potential*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 139: // cpd ::= DISTRIB class_name opt_cpd_params opt_cpd_args
{
BLOGParser.CPDSpec RESULT = null;
int cpdidleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int cpdidright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
String cpdid = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int plleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int plright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List pl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int alleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int alright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List al = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = null;
if ((!pl.contains(null)) && (!al.contains(null))) {
Class cls = getClassWithName(cpdid);
if (cls != null) {
RESULT = new BLOGParser.CPDSpec(cls, pl, al);
}
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(76/*cpd*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 138: // cpd ::= EQ cpd_arg
{
BLOGParser.CPDSpec RESULT = null;
int caleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int caright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
ArgSpec ca = (ArgSpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = null;
if (ca != null) {
List cpdArgs = Collections.singletonList(ca);
RESULT = new BLOGParser.CPDSpec(EqualsCPD.class,
Collections.EMPTY_LIST,
cpdArgs);
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(76/*cpd*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 137: // clause_without_cond ::= cpd
{
Clause RESULT = null;
int cpd_and_argsleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int cpd_and_argsright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
BLOGParser.CPDSpec cpd_and_args = (BLOGParser.CPDSpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if (cpd_and_args == null) {
RESULT = null;
} else {
RESULT = new Clause(TrueFormula.TRUE, cpd_and_args.cls,
cpd_and_args.params, cpd_and_args.args);
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(79/*clause_without_cond*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 136: // clause_with_cond ::= formula THEN cpd
{
Clause RESULT = null;
int fleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int fright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
Formula f = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int cpd_and_argsleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int cpd_and_argsright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
BLOGParser.CPDSpec cpd_and_args = (BLOGParser.CPDSpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if ((f == null) || (cpd_and_args == null)) {
RESULT = null;
} else {
RESULT = new Clause(f, cpd_and_args.cls,
cpd_and_args.params, cpd_and_args.args);
RESULT.setLocation(f.getLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(78/*clause_with_cond*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 135: // if_elseif_lst ::= if_elseif_lst ELSEIF clause_with_cond
{
List RESULT = null;
int clausesleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int clausesright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
List clauses = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int clauseleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int clauseright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Clause clause = (Clause)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = clauses;
RESULT.add(clause);
CUP$BLOGParser$result = new java_cup.runtime.Symbol(61/*if_elseif_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 134: // if_elseif_lst ::= IF clause_with_cond
{
List RESULT = null;
int clauseleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int clauseright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Clause clause = (Clause)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = new ArrayList();
RESULT.add(clause);
CUP$BLOGParser$result = new java_cup.runtime.Symbol(61/*if_elseif_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 133: // clause_lst ::= if_elseif_lst ELSE clause_without_cond
{
List RESULT = null;
int clausesleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int clausesright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
List clauses = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int last_clauseleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int last_clauseright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Clause last_clause = (Clause)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = clauses;
clauses.add(last_clause);
CUP$BLOGParser$result = new java_cup.runtime.Symbol(60/*clause_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 132: // clause_lst ::= if_elseif_lst
{
List RESULT = null;
int clausesleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int clausesright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List clauses = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = clauses;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(60/*clause_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 131: // clause_lst ::= clause_without_cond
{
List RESULT = null;
int clauseleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int clauseright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Clause clause = (Clause)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = new ArrayList();
RESULT.add(clause);
CUP$BLOGParser$result = new java_cup.runtime.Symbol(60/*clause_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 130: // opt_braces_clause_lst ::= LBRACE clause_lst RBRACE
{
List RESULT = null;
int clleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int clright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List cl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = cl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(59/*opt_braces_clause_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 129: // opt_braces_clause_lst ::= clause_lst
{
List RESULT = null;
int clleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int clright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List cl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = cl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(59/*opt_braces_clause_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 128: // str_const_seq ::= str_const_seq STR_CONST
{
String RESULT = null;
int strSoFarleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int strSoFarright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
String strSoFar = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int nextStrleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int nextStrright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String nextStr = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = strSoFar.concat(nextStr);
CUP$BLOGParser$result = new java_cup.runtime.Symbol(85/*str_const_seq*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 127: // str_const_seq ::= STR_CONST
{
String RESULT = null;
int strleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int strright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String str = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = str;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(85/*str_const_seq*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 126: // term_lst_lst ::= term_lst_lst SEMI term_lst
{
List RESULT = null;
int tllleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int tllright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
List tll = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int tlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List tl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
tll.add(tl);
RESULT = tll;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(74/*term_lst_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 125: // term_lst_lst ::= term_lst
{
List RESULT = null;
int tlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List tl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = new ArrayList();
RESULT.add(tl);
CUP$BLOGParser$result = new java_cup.runtime.Symbol(74/*term_lst_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 124: // number ::= TIME_CONST
{
NonRandomFunction RESULT = null;
int tleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int tright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String t = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
String afterAtSign = t.substring(1);
RESULT = BuiltInFunctions.getLiteral
(t, BuiltInTypes.TIMESTEP,
Timestep.at(Integer.parseInt(afterAtSign)));
CUP$BLOGParser$result = new java_cup.runtime.Symbol(35/*number*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 123: // number ::= DOUBLE_CONST
{
NonRandomFunction RESULT = null;
int dcleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int dcright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String dc = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = BuiltInFunctions.getLiteral
(dc, BuiltInTypes.REAL, new Double(dc));
CUP$BLOGParser$result = new java_cup.runtime.Symbol(35/*number*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 122: // number ::= INT_CONST
{
NonRandomFunction RESULT = null;
int icleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int icright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String ic = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
Type type = (Integer.parseInt(ic) >= 0) ?
BuiltInTypes.NATURAL_NUM : BuiltInTypes.INTEGER;
RESULT = BuiltInFunctions.getLiteral
(ic, type, new Integer(ic));
CUP$BLOGParser$result = new java_cup.runtime.Symbol(35/*number*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 121: // non_boolean_built_in ::= CHAR_CONST
{
NonRandomFunction RESULT = null;
int cleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int cright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Character c = (Character)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = BuiltInFunctions.getLiteral
("\'" + c + "\'", BuiltInTypes.CHARACTER, c);
CUP$BLOGParser$result = new java_cup.runtime.Symbol(37/*non_boolean_built_in*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 120: // non_boolean_built_in ::= str_const_seq
{
NonRandomFunction RESULT = null;
int sleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int sright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String s = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = BuiltInFunctions.getLiteral
("\"" + s + "\"", BuiltInTypes.STRING, s);
CUP$BLOGParser$result = new java_cup.runtime.Symbol(37/*non_boolean_built_in*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 119: // non_boolean_built_in ::= number
{
NonRandomFunction RESULT = null;
int nleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int nright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
NonRandomFunction n = (NonRandomFunction)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = n; // already a NonRandomConstant
CUP$BLOGParser$result = new java_cup.runtime.Symbol(37/*non_boolean_built_in*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 118: // boolean_built_in ::= FALSE
{
NonRandomFunction RESULT = null;
RESULT = BuiltInFunctions.getLiteral
("false", BuiltInTypes.BOOLEAN, Boolean.FALSE);
CUP$BLOGParser$result = new java_cup.runtime.Symbol(36/*boolean_built_in*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 117: // boolean_built_in ::= TRUE
{
NonRandomFunction RESULT = null;
RESULT = BuiltInFunctions.getLiteral
("true", BuiltInTypes.BOOLEAN, Boolean.TRUE);
CUP$BLOGParser$result = new java_cup.runtime.Symbol(36/*boolean_built_in*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 116: // built_in ::= non_boolean_built_in
{
NonRandomFunction RESULT = null;
int nbbileft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int nbbiright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
NonRandomFunction nbbi = (NonRandomFunction)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = nbbi;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(34/*built_in*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 115: // built_in ::= boolean_built_in
{
NonRandomFunction RESULT = null;
int bbileft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int bbiright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
NonRandomFunction bbi = (NonRandomFunction)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = bbi;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(34/*built_in*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 114: // class_name ::= CLASS_NAME
{
String RESULT = null;
int cnleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int cnright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String cn = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = cn;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(49/*class_name*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 113: // class_name ::= ID
{
String RESULT = null;
int idleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int idright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String id = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = id;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(49/*class_name*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 112: // term_lst ::= term
{
List RESULT = null;
int tleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int tright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Term t = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = new ArrayList( );
RESULT.add( t );
CUP$BLOGParser$result = new java_cup.runtime.Symbol(58/*term_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 111: // term_lst ::= term_lst COMMA term
{
List RESULT = null;
int tlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
List tl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int tleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int tright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Term t = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
tl.add( t );
RESULT = tl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(58/*term_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 110: // opt_term_lst ::= term_lst
{
List RESULT = null;
int tlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List tl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = tl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(57/*opt_term_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 109: // opt_term_lst ::=
{
List RESULT = null;
RESULT = Collections.EMPTY_LIST;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(57/*opt_term_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 108: // counting_term ::= NUMSIGN LPAREN vars_opt_constraint RPAREN LBRACKET term_lst RBRACKET
{
CountingTerm RESULT = null;
int vcleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).left;
int vcright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).right;
BLOGParser.VarsWithConstraint vc = (BLOGParser.VarsWithConstraint)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).value;
int tlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List tl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = null;
if ((vc != null) && !tl.contains(null)) {
RESULT = new CountingTerm(vc.logicalVars,
vc.constraint,
(List<Term>) tl);
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(39/*counting_term*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-6)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 107: // func_app_with_parens ::= ID LPAREN opt_term_lst RPAREN
{
FuncAppTerm RESULT = null;
int funcleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).left;
int funcright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).right;
String func = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).value;
int tlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List tl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = new FuncAppTerm(func, tl);
RESULT.setLocation(getCurLocation());
CUP$BLOGParser$result = new java_cup.runtime.Symbol(38/*func_app_with_parens*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 106: // symbol_term ::= ID
{
SymbolTerm RESULT = null;
int idleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int idright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String id = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = new SymbolTerm(id);
RESULT.setLocation(getCurLocation());
CUP$BLOGParser$result = new java_cup.runtime.Symbol(40/*symbol_term*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 105: // term ::= LBRACKET term_lst_lst RBRACKET
{
Term RESULT = null;
int tllleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int tllright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List tll = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int rows = tll.size();
int columns = ((List) tll.get(0)).size();
MatrixType type = (MatrixType) BuiltInTypes.getType
("R" + rows + "x" + columns + "Matrix");
List args = new ArrayList(); // of Term
boolean correct = true;
for( int i = 0; i < rows; i++ ){
List row = (List) tll.get(i);
if( row.size() != columns ){
semantic_error("Ill-formed matrix: row " + (i+1)
+ " of the matrix has a different "
+ "number of elements than "
+ "row 1 of this matrix.");
correct = false;
} else {
for( int j = 0; j < row.size(); j++ ){
Term arg = (Term) row.get(j);
if (arg == null) {
correct = false;
} else {
args.add(arg);
}
}
}
}
if (correct) {
NonRandomFunction constr = type.getConstructor();
RESULT = new FuncAppTerm(constr, args);
RESULT.setLocation(getCurLocation());
} else {
RESULT = null;
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(14/*term*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 104: // term ::= term GEQ term
{
Term RESULT = null;
int t1left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int t1right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
Term t1 = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int t2left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int t2right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Term t2 = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
Term[] args = {t1, t2};
RESULT = new FuncAppTerm("GreaterThanOrEqual",
Arrays.asList(args));
RESULT.setLocation(getCurLocation());
CUP$BLOGParser$result = new java_cup.runtime.Symbol(14/*term*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 103: // term ::= term LEQ term
{
Term RESULT = null;
int t1left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int t1right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
Term t1 = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int t2left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int t2right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Term t2 = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
Term[] args = {t1, t2};
RESULT = new FuncAppTerm("LessThanOrEqual", Arrays.asList(args));
RESULT.setLocation(getCurLocation());
CUP$BLOGParser$result = new java_cup.runtime.Symbol(14/*term*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 102: // term ::= term GT term
{
Term RESULT = null;
int t1left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int t1right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
Term t1 = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int t2left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int t2right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Term t2 = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
Term[] args = {t1, t2};
RESULT = new FuncAppTerm("GreaterThan", Arrays.asList(args));
RESULT.setLocation(getCurLocation());
CUP$BLOGParser$result = new java_cup.runtime.Symbol(14/*term*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 101: // term ::= term LT term
{
Term RESULT = null;
int t1left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int t1right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
Term t1 = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int t2left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int t2right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Term t2 = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
Term[] args = {t1, t2};
RESULT = new FuncAppTerm("LessThan", Arrays.asList(args));
RESULT.setLocation(getCurLocation());
CUP$BLOGParser$result = new java_cup.runtime.Symbol(14/*term*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 100: // term ::= LPAREN term RPAREN
{
Term RESULT = null;
int tleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int tright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
Term t = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = t;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(14/*term*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 99: // term ::= built_in
{
Term RESULT = null;
int bileft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int biright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
NonRandomFunction bi = (NonRandomFunction)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if (bi == null) {
RESULT = null;
} else {
RESULT = new FuncAppTerm(bi, Collections.EMPTY_LIST);
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(14/*term*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 98: // term ::= counting_term
{
Term RESULT = null;
int cleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int cright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
CountingTerm c = (CountingTerm)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = c;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(14/*term*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 97: // term ::= func_app_with_parens
{
Term RESULT = null;
int fleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int fright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
FuncAppTerm f = (FuncAppTerm)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = f;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(14/*term*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 96: // term ::= symbol_term
{
Term RESULT = null;
int sleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int sright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
SymbolTerm s = (SymbolTerm)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = s;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(14/*term*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 95: // var_decl ::= type new_var
{
BLOGParser.TypedVar RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
Type type = (Type)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int varleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int varright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String var = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = new BLOGParser.TypedVar(var, type); // type may be null
CUP$BLOGParser$result = new java_cup.runtime.Symbol(80/*var_decl*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 94: // universalformula ::= FORALL var_decl formula
{
UniversalFormula RESULT = null;
int tvleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int tvright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
BLOGParser.TypedVar tv = (BLOGParser.TypedVar)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int formleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int formright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Formula form = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if (form == null) {
RESULT = null;
} else {
RESULT = new UniversalFormula(tv.var, tv.type, form);
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(82/*universalformula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 93: // existentialformula ::= EXISTS var_decl formula
{
ExistentialFormula RESULT = null;
int tvleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int tvright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
BLOGParser.TypedVar tv = (BLOGParser.TypedVar)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int formleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int formright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Formula form = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if (form == null) {
RESULT = null;
} else {
RESULT = new ExistentialFormula(tv.var, tv.type, form);
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(81/*existentialformula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 92: // parenformula ::= LPAREN non_atomic_formula RPAREN
{
Formula RESULT = null;
int fleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int fright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
Formula f = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = f;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(25/*parenformula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 91: // inequalityformula ::= term NEQ term
{
NegFormula RESULT = null;
int t1left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int t1right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
Term t1 = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int t2left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int t2right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Term t2 = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if ((t1 == null) || (t2 == null)) {
RESULT = null;
} else {
Formula eq = new EqualityFormula( t1, t2 );
eq.setLocation(getCurLocation());
RESULT = new NegFormula(eq);
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(33/*inequalityformula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 90: // equalityformula ::= term EQ term
{
EqualityFormula RESULT = null;
int t1left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int t1right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
Term t1 = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int t2left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int t2right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Term t2 = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if ((t1 == null) || (t2 == null)) {
RESULT = null;
} else {
RESULT = new EqualityFormula( t1, t2 );
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(32/*equalityformula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 89: // implicformula ::= formula RIGHTARROW formula
{
ImplicFormula RESULT = null;
int f1left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int f1right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
Formula f1 = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int f2left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int f2right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Formula f2 = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if ((f1 == null) || (f2 == null)) {
RESULT = null;
} else {
RESULT = new ImplicFormula( f1, f2 );
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(31/*implicformula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 88: // disjformula ::= formula OR formula
{
DisjFormula RESULT = null;
int f1left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int f1right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
Formula f1 = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int f2left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int f2right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Formula f2 = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if ((f1 == null) || (f2 == null)) {
RESULT = null;
} else {
RESULT = new DisjFormula( f1, f2 );
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(30/*disjformula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 87: // conjformula ::= formula AND formula
{
ConjFormula RESULT = null;
int f1left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int f1right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
Formula f1 = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int f2left = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int f2right = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Formula f2 = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if ((f1 == null) || (f2 == null)) {
RESULT = null;
} else {
RESULT = new ConjFormula( f1, f2 );
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(29/*conjformula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 86: // negformula ::= NEG formula
{
NegFormula RESULT = null;
int fleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int fright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Formula f = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if (f == null) {
RESULT = null;
} else {
RESULT = new NegFormula( f );
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(28/*negformula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 85: // atomicformula ::= term
{
AtomicFormula RESULT = null;
int tleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int tright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Term t = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if (t == null) {
RESULT = null;
} else {
RESULT = new AtomicFormula( t );
RESULT.setLocation(getCurLocation());
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(27/*atomicformula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 84: // non_atomic_formula ::= universalformula
{
Formula RESULT = null;
int uqfleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int uqfright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
UniversalFormula uqf = (UniversalFormula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = uqf;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(24/*non_atomic_formula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 83: // non_atomic_formula ::= existentialformula
{
Formula RESULT = null;
int eqfleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int eqfright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
ExistentialFormula eqf = (ExistentialFormula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = eqf;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(24/*non_atomic_formula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 82: // non_atomic_formula ::= parenformula
{
Formula RESULT = null;
int pfleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int pfright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Formula pf = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = pf;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(24/*non_atomic_formula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 81: // non_atomic_formula ::= inequalityformula
{
Formula RESULT = null;
int efleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int efright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
NegFormula ef = (NegFormula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = ef;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(24/*non_atomic_formula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 80: // non_atomic_formula ::= equalityformula
{
Formula RESULT = null;
int efleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int efright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
EqualityFormula ef = (EqualityFormula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = ef;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(24/*non_atomic_formula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 79: // non_atomic_formula ::= implicformula
{
Formula RESULT = null;
int impfleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int impfright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
ImplicFormula impf = (ImplicFormula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = impf;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(24/*non_atomic_formula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 78: // non_atomic_formula ::= disjformula
{
Formula RESULT = null;
int dfleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int dfright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
DisjFormula df = (DisjFormula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = df;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(24/*non_atomic_formula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 77: // non_atomic_formula ::= conjformula
{
Formula RESULT = null;
int cfleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int cfright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
ConjFormula cf = (ConjFormula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = cf;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(24/*non_atomic_formula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 76: // non_atomic_formula ::= negformula
{
Formula RESULT = null;
int nfleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int nfright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
NegFormula nf = (NegFormula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = nf;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(24/*non_atomic_formula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 75: // formula ::= non_atomic_formula
{
Formula RESULT = null;
int fleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int fright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Formula f = (Formula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = f;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(23/*formula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 74: // formula ::= atomicformula
{
Formula RESULT = null;
int afleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int afright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
AtomicFormula af = (AtomicFormula)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = af;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(23/*formula*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 73: // new_var ::= ID
{
String RESULT = null;
int idleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int idright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String id = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = id;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(16/*new_var*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 72: // new_var_lst ::= new_var
{
List RESULT = null;
int nvarleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int nvarright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String nvar = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = new ArrayList();
RESULT.add( nvar );
CUP$BLOGParser$result = new java_cup.runtime.Symbol(69/*new_var_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 71: // new_var_lst ::= new_var_lst COMMA new_var
{
List RESULT = null;
int nvlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int nvlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
List nvl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int nvleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int nvright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String nv = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
nvl.add( nv );
RESULT = nvl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(69/*new_var_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 70: // opt_new_var_lst ::= new_var_lst
{
List RESULT = null;
int nvlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int nvlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List nvl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = nvl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(68/*opt_new_var_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 69: // opt_new_var_lst ::=
{
List RESULT = null;
RESULT = Collections.EMPTY_LIST;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(68/*opt_new_var_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 68: // origin_func ::= ID
{
String RESULT = null;
int idleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int idright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String id = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = id;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(41/*origin_func*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 67: // origin_func_lst ::= origin_func
{
List RESULT = null;
int gleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int gright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String g = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = new ArrayList();
RESULT.add(g);
CUP$BLOGParser$result = new java_cup.runtime.Symbol(71/*origin_func_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 66: // origin_func_lst ::= origin_func_lst COMMA origin_func
{
List RESULT = null;
int glleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int glright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
List gl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int gleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int gright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String g = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
gl.add(g);
RESULT = gl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(71/*origin_func_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 65: // opt_origin_func_lst ::= origin_func_lst
{
List RESULT = null;
int glleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int glright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List gl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = gl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(70/*opt_origin_func_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 64: // opt_origin_func_lst ::=
{
List RESULT = null;
RESULT = Collections.EMPTY_LIST;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(70/*opt_origin_func_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 63: // gen_obj_spec ::= origin_func EQ ID
{
BLOGParser.GenObjSpec RESULT = null;
int gleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int gright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
String g = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int genObjVarleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int genObjVarright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String genObjVar = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = new BLOGParser.GenObjSpec(g, genObjVar);
CUP$BLOGParser$result = new java_cup.runtime.Symbol(75/*gen_obj_spec*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 62: // gen_obj_lst ::= gen_obj_spec
{
List RESULT = null;
int gleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int gright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
BLOGParser.GenObjSpec g = (BLOGParser.GenObjSpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = new ArrayList();
RESULT.add(g);
CUP$BLOGParser$result = new java_cup.runtime.Symbol(53/*gen_obj_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 61: // gen_obj_lst ::= gen_obj_lst COMMA gen_obj_spec
{
List RESULT = null;
int glleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int glright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
List gl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int gleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int gright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
BLOGParser.GenObjSpec g = (BLOGParser.GenObjSpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
gl.add(g);
RESULT = gl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(53/*gen_obj_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 60: // opt_gen_obj_lst ::= gen_obj_lst
{
List RESULT = null;
int glleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int glright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List gl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = gl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(52/*opt_gen_obj_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 59: // opt_gen_obj_lst ::=
{
List RESULT = null;
RESULT = Collections.EMPTY_LIST;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(52/*opt_gen_obj_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 58: // opt_parenthesized_gen_obj_lst ::= COLON LPAREN opt_origin_func_lst RPAREN RIGHTARROW LPAREN opt_new_var_lst RPAREN
{
List RESULT = null;
int glleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)).left;
int glright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)).right;
List gl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)).value;
int vlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int vlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List vl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = null;
if (gl.size() == vl.size()) {
RESULT = new ArrayList();
for (int i = 0; i < gl.size(); ++i) {
String g = (String) gl.get(i);
String v = (String) vl.get(i);
RESULT.add(new BLOGParser.GenObjSpec(g, v));
}
} else {
semantic_error("Number of origin functions does not "
+ "match number of variables.");
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(51/*opt_parenthesized_gen_obj_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-7)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 57: // opt_parenthesized_gen_obj_lst ::= LPAREN opt_gen_obj_lst RPAREN
{
List RESULT = null;
int glleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int glright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List gl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = gl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(51/*opt_parenthesized_gen_obj_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 56: // opt_parenthesized_gen_obj_lst ::=
{
List RESULT = null;
RESULT = Collections.EMPTY_LIST;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(51/*opt_parenthesized_gen_obj_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 55: // type ::= ID
{
Type RESULT = null;
int typenameleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int typenameright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String typename = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if ( parser.model().existsType( typename ) ){
RESULT = parser.model().getType( typename );
}
else {
semantic_error( typename + " is not a declared type." );
RESULT = null;
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(42/*type*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 54: // type_lst ::= type
{
List RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Type type = (Type)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = new ArrayList();
RESULT.add( type );
CUP$BLOGParser$result = new java_cup.runtime.Symbol(56/*type_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 53: // type_lst ::= type_lst COMMA type
{
List RESULT = null;
int tlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
List tl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int typeleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Type type = (Type)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
tl.add( type );
RESULT = tl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(56/*type_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 52: // opt_type_lst ::= type_lst
{
List RESULT = null;
int tlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List tl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = tl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(55/*opt_type_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 51: // opt_type_lst ::=
{
List RESULT = null;
RESULT = Collections.EMPTY_LIST;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(55/*opt_type_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 50: // opt_parenthesized_type_lst ::= LPAREN type_lst RPAREN
{
List RESULT = null;
int tlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List tl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = tl;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(54/*opt_parenthesized_type_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 49: // opt_parenthesized_type_lst ::= LPAREN RPAREN
{
List RESULT = null;
RESULT = Collections.EMPTY_LIST;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(54/*opt_parenthesized_type_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 48: // opt_parenthesized_type_lst ::=
{
List RESULT = null;
RESULT = Collections.EMPTY_LIST;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(54/*opt_parenthesized_type_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 47: // opt_interp_params ::= LBRACKET opt_cpd_arg_lst RBRACKET
{
List RESULT = null;
int plleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int plright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List pl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = new ArrayList();
for (Iterator iter = pl.iterator(); iter.hasNext(); ) {
ArgSpec param = (ArgSpec) iter.next();
RESULT.add(param);
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(64/*opt_interp_params*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 46: // opt_interp_params ::=
{
List RESULT = null;
RESULT = Collections.EMPTY_LIST;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(64/*opt_interp_params*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 45: // id_lst ::= ID
{
List RESULT = null;
int idleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int idright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String id = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = new ArrayList( );
RESULT.add( id );
CUP$BLOGParser$result = new java_cup.runtime.Symbol(44/*id_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 44: // id_lst ::= id_lst COMMA ID
{
List RESULT = null;
int isleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int isright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
List is = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int idleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int idright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String id = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
is.add( id );
RESULT = is;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(44/*id_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 43: // opt_id_lst ::= id_lst
{
List RESULT = null;
int isleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int isright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List is = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = is;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(43/*opt_id_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 42: // opt_id_lst ::=
{
List RESULT = null;
RESULT = new ArrayList();
CUP$BLOGParser$result = new java_cup.runtime.Symbol(43/*opt_id_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 41: // id_spec ::= ID LBRACKET INT_CONST RBRACKET
{
List RESULT = null;
int idleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).left;
int idright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).right;
String id = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).value;
int icleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int icright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
String ic = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = new ArrayList();
int num = Integer.decode(ic).intValue();
for(int i = 1; i <= num; i++)
RESULT.add(new String(id + i));
CUP$BLOGParser$result = new java_cup.runtime.Symbol(84/*id_spec*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 40: // id_spec ::= id_lst
{
List RESULT = null;
int illeft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int ilright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List il = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = il;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(84/*id_spec*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 39: // query ::= QUERY cpd_arg
{
Object RESULT = null;
int asleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int asright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
ArgSpec as = (ArgSpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if (as != null) {
Query q;
if (as instanceof Formula) {
q = new FormulaQuery((Formula) as);
} else {
q = new ArgSpecQuery(as);
}
parser.queries().add(q);
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(22/*query*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 38: // evidence ::= OBS term EQ term
{
Object RESULT = null;
int leftSideleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int leftSideright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
Term leftSide = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int valueleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int valueright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Term value = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if ((leftSide != null) && (value != null)) {
parser.evidence().addValueEvidence
(new ValueEvidenceStatement(leftSide, value));
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(21/*evidence*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 37: // evidence ::= OBS implicit_set EQ LBRACE opt_id_lst RBRACE
{
Object RESULT = null;
int sleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).left;
int sright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).right;
ImplicitSetSpec s = (ImplicitSetSpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).value;
int symbolsleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int symbolsright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List symbols = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
if (s != null){
boolean correct = true;
for (Iterator iter = symbols.iterator(); iter.hasNext(); ) {
String symbol = (String) iter.next();
if (parser.getFunction(symbol,
Collections.EMPTY_LIST) != null) {
semantic_error("Symbol already declared: " + symbol);
correct = false;
}
}
if (correct) {
SymbolEvidenceStatement sevid
= new SymbolEvidenceStatement(s, symbols);
parser.evidence().addSymbolEvidence( sevid );
for (Iterator iter = sevid.getSkolemConstants().iterator();
iter.hasNext(); ) {
parser.model().addFunction((Function) iter.next());
}
}
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(21/*evidence*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 36: // parfactor ::= PARFACTOR vars_opt_constraint DOT potential
{
Object RESULT = null;
int vcleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int vcright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
BLOGParser.VarsWithConstraint vc = (BLOGParser.VarsWithConstraint)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int potspecleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int potspecright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
BLOGParser.PotentialSpec potspec = (BLOGParser.PotentialSpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if ((vc != null) && (potspec != null)) {
Parfactor pf = new Parfactor(vc.logicalVars, vc.constraint,
potspec.args,
potspec.cls, potspec.params);
pf.setLocation(getCurLocation());
parser.model().addParfactor(pf);
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(10/*parfactor*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 35: // parfactor ::= FACTOR potential
{
Object RESULT = null;
int potspecleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int potspecright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
BLOGParser.PotentialSpec potspec = (BLOGParser.PotentialSpec)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if (potspec != null) {
BLOGParser.VarsWithConstraint vc
= new BLOGParser.VarsWithConstraint();
Parfactor pf = new Parfactor(vc.logicalVars, vc.constraint,
potspec.args,
potspec.cls, potspec.params);
pf.setLocation(getCurLocation());
parser.model().addParfactor(pf);
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(10/*parfactor*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 34: // guaranteed_decl ::= GUARANTEED type id_spec
{
Object RESULT = null;
int typeleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int typeright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
Type type = (Type)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int idsleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int idsright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List ids = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if (type == null) {
semantic_error
( "a declaration of guaranteed objects "
+ " has failed due to:" );
System.err.println( "\t- type error;" );
} else {
Iterator iter = ids.iterator( );
while( iter.hasNext( ) ){
String name = ( String )iter.next( );
if (parser.getFunction(name,
Collections.EMPTY_LIST) != null) {
semantic_error("Error: function \"" + name
+ "\" with no arguments "
+ "has already been declared.");
} else {
parser.model().addEnumeratedObject(name, type);
}
}
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(9/*guaranteed_decl*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 33: // num_stmt_intro ::= NUMSIGN ID opt_parenthesized_gen_obj_lst
{
POP RESULT = null;
int typenameleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int typenameright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
String typename = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int glleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int glright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List gl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = null;
POP pop = null;
boolean correct = true;
Type type = parser.model().getType(typename);
if (type == null) {
semantic_error(typename + " is not a declared type.");
correct = false;
} else if (type.isBuiltIn()) {
semantic_error
("Can't have number statement for built-in type.");
} else if (gl.contains(null)) {
semantic_error("Number statement failed due to error in "
+ "generating object list.");
correct = false;
} else {
List originFuncs = new ArrayList();
// Make sure origin funcs exist and are not repeated
for (Iterator iter = gl.iterator(); iter.hasNext(); ) {
String originFuncName
= ((BLOGParser.GenObjSpec) iter.next()).originFuncName;
Function g = parser.getFunction
(originFuncName, Collections.singletonList(type));
if (!(g instanceof OriginFunction)) {
semantic_error("Function " + originFuncName
+ " with argument type " + type
+ " has not been declared as an "
+ "origin function.");
correct = false;
}
if (originFuncs.contains(g)) {
semantic_error("Origin function " + g
+ " used more than once in "
+ "number statement.");
correct = false;
}
originFuncs.add(g);
}
// Add this POP to the type, if it's not a duplicate
if (correct) {
pop = new POP(type, originFuncs, null);
if (type.getPOPWithOriginFuncs(pop.getOriginFuncSet())
== null) {
type.addPOP(pop);
} else {
semantic_error("number statement " + pop
+ " uses same origin functions "
+ "as earlier number statement.");
correct = false;
}
}
}
// Make sure no variable name is used twice.
List genObjVars = new ArrayList();
for (Iterator iter = gl.iterator(); iter.hasNext(); ) {
BLOGParser.GenObjSpec genObjSpec
= (BLOGParser.GenObjSpec) iter.next();
if (genObjVars.contains(genObjSpec.genObjVar)) {
semantic_error("Variable name \"" + genObjSpec.genObjVar
+ "\" is used for more than one "
+ "generating object.");
correct = false;
}
genObjVars.add(genObjSpec.genObjVar);
}
if (correct) {
pop.setGenObjVars(genObjVars);
RESULT = pop;
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(13/*num_stmt_intro*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 32: // num_stmt ::= num_stmt_intro opt_braces_clause_lst
{
Object RESULT = null;
int popleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int popright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
POP pop = (POP)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int clleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int clright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List cl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if (pop != null) {
if (!cl.contains(null)) {
Type childType = BuiltInTypes.NATURAL_NUM;
Object defaultVal = new Integer(0);
pop.setDepModel(new DependencyModel(cl, childType,
defaultVal));
}
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(8/*num_stmt*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 31: // dep_stmt_intro ::= ID LPAREN new_var_lst RPAREN
{
RandomFunction RESULT = null;
int funcleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).left;
int funcright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).right;
String func = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).value;
int vlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int vlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List vl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
RESULT = null;
Object f = parser.model().getRandomFunc(func, vl.size());
boolean correct = true;
if (f == null) {
semantic_error("random function " + func + " with "
+ vl.size() + " arguments has not "
+ "been declared.");
correct = false;
} else if (f == Model.MULTIPLE_FUNCTIONS) {
semantic_error("dependency statement must specify argument "
+ "types, because there is more than one "
+ "random function called \"" + func
+ "\" with " + vl.size() + " argument(s).");
correct = false;
} else if (((RandomFunction) f).hasDepModel()) {
semantic_error("function " + func + " already has "
+ "a dependency statement." );
correct = false;
} else if (vl.contains(null)) {
semantic_error("Dependency statement failed because of "
+ "error in function's argument list.");
correct = false;
}
// Make sure no variable name is used twice
Set vars = new HashSet();
for (Iterator iter = vl.iterator(); iter.hasNext(); ) {
String var = (String) iter.next();
if (!vars.add(var)) {
semantic_error("Variable name \"" + var + "\" is used "
+ "for more than one argument.");
correct = false;
}
}
if (correct) {
RESULT = (RandomFunction) f;
RESULT.setArgVars(vl);
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(11/*dep_stmt_intro*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 30: // dep_stmt_intro ::= ID opt_parenthesized_var_type_lst
{
RandomFunction RESULT = null;
int funcleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int funcright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
String func = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int vtlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int vtlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List vtl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = null;
List argTypes = new ArrayList();
List argVars = new ArrayList();
for (Iterator iter = vtl.iterator(); iter.hasNext(); ) {
BLOGParser.TypedVar tv = (BLOGParser.TypedVar) iter.next();
argTypes.add(tv.type);
argVars.add(tv.var);
}
Function f = parser.getFunction(func, argTypes);
boolean correct = true;
if (f == null) {
semantic_error("function " + func + " with argument types "
+ argTypes + " has not been declared.");
correct = false;
} else if (!(f instanceof RandomFunction)) {
semantic_error("function " + func + " with argument types "
+ argTypes + " was not declared as random.");
correct = false;
} else if (((RandomFunction) f).hasDepModel()) {
semantic_error("function " + func + " already has "
+ "a dependency statement." );
correct = false;
} else if (argTypes.contains(null)) {
semantic_error("Dependency statement failed because of "
+ "error in function's argument list.");
correct = false;
}
// Make sure no variable name is used twice
Set vars = new HashSet();
for (Iterator iter = argVars.iterator(); iter.hasNext(); ) {
String var = (String) iter.next();
if (!vars.add(var)) {
semantic_error("Variable name \"" + var + "\" is used "
+ "for more than one argument.");
correct = false;
}
}
if (correct) {
RESULT = (RandomFunction) f;
RESULT.setArgVars(argVars);
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(11/*dep_stmt_intro*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 29: // dep_stmt ::= dep_stmt_intro opt_braces_clause_lst
{
Object RESULT = null;
int funcleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int funcright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
RandomFunction func = (RandomFunction)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int clleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int clright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List cl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if (func != null) {
if (!cl.contains(null)) {
Type childType = func.getRetType();
Object defaultVal = func.getDefaultValue();
func.setDepModel(new DependencyModel(cl, childType,
defaultVal));
}
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(7/*dep_stmt*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 28: // non_rand_func_defn ::= NONRANDOM type ID LPAREN opt_type_lst RPAREN EQ class_name opt_interp_params
{
Object RESULT = null;
int ret_typeleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-7)).left;
int ret_typeright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-7)).right;
Type ret_type = (Type)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-7)).value;
int func_nameleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-6)).left;
int func_nameright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-6)).right;
String func_name = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-6)).value;
int tlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).right;
List tl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).value;
int classnameleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int classnameright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
String classname = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int plleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int plright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List pl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
Class cls = getClassWithName(classname);
if ((ret_type != null) && !tl.contains(null)
&& !pl.contains(null) && (cls != null)) {
Function f = parser.getFunction(func_name, tl);
if (f == null) {
// Function symbol not yet declared; declare it and
// set interpretation
if (checkOverlappingFuncs(func_name, tl)) {
f = new NonRandomFunction(func_name, tl, ret_type,
cls, pl);
parser.model().addFunction(f);
}
} else {
// already declared
if (!(f instanceof NonRandomFunction)) {
semantic_error(f + " was not declared as a "
+ "non-random function.");
} else {
NonRandomFunction nrf = (NonRandomFunction) f;
if ((ret_type != nrf.getRetType())
|| !(tl.equals
(Arrays.asList(nrf.getArgTypes())))) {
semantic_error
("Type signature for non-random function "
+ "does not match declaration.");
} else if (nrf.getInterpClass() != null) {
semantic_error
("Interpretation for non-random function "
+ nrf + " has already been specified.");
} else {
nrf.setInterpretation(cls, pl);
}
}
}
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(6/*non_rand_func_defn*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-8)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 27: // non_rand_func_defn ::= NONRANDOM type ID EQ term
{
Object RESULT = null;
int ret_typeleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).left;
int ret_typeright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).right;
Type ret_type = (Type)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).value;
int func_nameleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int func_nameright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
String func_name = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int valueleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int valueright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
Term value = (Term)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if ((ret_type != null) && (value != null)) {
NonRandomFunction c = null;
Function f = parser.getFunction(func_name,
Collections.EMPTY_LIST);
if (f == null) {
// constant symbol is undeclared; declare it
c = new NonRandomFunction
(func_name, Collections.EMPTY_LIST, ret_type);
parser.model().addFunction(c);
} else {
// check for consistency with declaration
if (!(f instanceof NonRandomFunction)) {
semantic_error(f + " was not declared as a "
+ "non-random constant.");
c = null;
} else {
c = (NonRandomFunction) f;
if (ret_type != c.getRetType()) {
semantic_error
("Return type for non-random constant "
+ "does not match declaration.");
c = null;
} else if (c.getInterpClass() != null) {
semantic_error
("Value for non-random constant " + c
+ " has already been specified.");
c = null;
}
}
}
if (c != null) {
c.setInterpretation
(ConstantInterp.class,
Collections.singletonList(value));
}
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(6/*non_rand_func_defn*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 26: // non_rand_func_decl ::= NONRANDOM type ID LPAREN opt_type_lst RPAREN
{
Object RESULT = null;
int ret_typeleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).left;
int ret_typeright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).right;
Type ret_type = (Type)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).value;
int func_nameleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).left;
int func_nameright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).right;
String func_name = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).value;
int otlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int otlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
List otl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
if ((ret_type != null) && !otl.contains(null)) {
if (parser.getFunction(func_name, otl) != null) {
semantic_error("Function " + func_name
+ " has already been declared "
+ "with argument types " + otl);
} else if (checkOverlappingFuncs(func_name, otl)) {
NonRandomFunction f = new NonRandomFunction
(func_name, otl, ret_type);
parser.model().addFunction(f);
}
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(5/*non_rand_func_decl*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 25: // non_rand_func_decl ::= NONRANDOM type ID
{
Object RESULT = null;
int ret_typeleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int ret_typeright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
Type ret_type = (Type)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int func_nameleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int func_nameright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String func_name = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if (ret_type != null) {
if (parser.getFunction(func_name,
Collections.EMPTY_LIST) != null) {
semantic_error("Function " + func_name + " has already "
+ "been declared with no arguments.");
}
NonRandomFunction f = new NonRandomFunction
(func_name, Collections.EMPTY_LIST, ret_type);
parser.model().addFunction(f);
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(5/*non_rand_func_decl*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 24: // origin_func_decl ::= GENERATING type ID LPAREN type RPAREN
{
Object RESULT = null;
int ret_typeleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).left;
int ret_typeright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).right;
Type ret_type = (Type)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-4)).value;
int funcleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).left;
int funcright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).right;
String func = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).value;
int arg_typeleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int arg_typeright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
Type arg_type = (Type)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
List argTypes = Collections.singletonList(arg_type);
if (parser.getFunction(func, argTypes) != null) {
semantic_error("Function " + func + " has already been "
+ "declared with argument type " + arg_type);
} else if ((ret_type == null) || (arg_type == null)) {
semantic_error( "the declaration of the function "
+ func + " has failed due to: " );
if( ret_type == null ) {
System.err.println( "\t- return type error;" );
}
if( arg_type == null ) {
System.err.println( "\t- parameter type error(s);" );
}
} else if (checkOverlappingFuncs
(func, Collections.singletonList(arg_type))) {
OriginFunction f = new OriginFunction
(func, argTypes, ret_type);
parser.model().addFunction(f);
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(4/*origin_func_decl*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-5)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 23: // rand_func_defn_intro ::= RANDOM type ID opt_parenthesized_var_type_lst
{
RandomFunction RESULT = null;
int ret_typeleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int ret_typeright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
Type ret_type = (Type)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int funcleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int funcright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
String func = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int vtlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int vtlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List vtl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
RESULT = null;
List argTypes = new ArrayList();
List argVars = new ArrayList();
for (Iterator iter = vtl.iterator(); iter.hasNext(); ) {
BLOGParser.TypedVar tv = (BLOGParser.TypedVar) iter.next();
argTypes.add(tv.type);
argVars.add(tv.var);
}
if (parser.getFunction(func, argTypes) != null) {
semantic_error("Function " + func + " has already been "
+ "declared with argument types " + argTypes);
} else if (((ret_type == null) || argTypes.contains(null))) {
semantic_error
( "the declaration of the function "
+ func
+ " has failed due to: " );
if( ret_type == null ) {
System.err.println( "\t- return type error;" );
}
if( argTypes.contains(null) ) {
System.err.println
( "\t- parameter type error(s);" );
}
} else if (checkOverlappingFuncs(func, argTypes)) {
RandomFunction f = new RandomFunction(func, argTypes,
ret_type, null);
parser.model().addFunction(f);
f.setArgVars(argVars);
RESULT = f;
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(12/*rand_func_defn_intro*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 22: // rand_func_defn ::= rand_func_defn_intro opt_braces_clause_lst
{
Object RESULT = null;
int fleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int fright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
RandomFunction f = (RandomFunction)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int clleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int clright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List cl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if ((f != null) && !cl.contains(null)) {
Type childType = f.getRetType();
Object defaultVal = f.getDefaultValue();
f.setDepModel(new DependencyModel(cl, childType,
defaultVal));
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(3/*rand_func_defn*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 21: // rand_func_decl ::= RANDOM type ID opt_parenthesized_type_lst
{
Object RESULT = null;
int retTypeleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left;
int retTyperight = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).right;
Type retType = (Type)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).value;
int funcleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left;
int funcright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).right;
String func = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).value;
int tlleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int tlright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
List tl = (List)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if (parser.getFunction(func, tl) != null) {
semantic_error("Function " + func + " has already been "
+ "declared with argument types " + tl);
} else if ( ( (retType == null) || tl.contains(null) ) ) {
semantic_error
( "the declaration of the function "
+ func
+ " has failed due to: " );
if( retType == null ) {
System.err.println( "\t- return type error;" );
}
if( tl.contains(null) ) {
System.err.println
( "\t- parameter type error(s);" );
}
} else if (checkOverlappingFuncs(func, tl)) {
Function f = new RandomFunction(func, tl, retType, null);
parser.model().addFunction(f);
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(2/*rand_func_decl*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-3)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 20: // type_decl ::= TYPE ID
{
Object RESULT = null;
int typenameleft = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left;
int typenameright = ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right;
String typename = (String)((java_cup.runtime.Symbol) CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).value;
if (parser.model().existsType(typename)) {
semantic_error("Type " + typename + " already exists.");
} else {
parser.model().addType( typename );
}
CUP$BLOGParser$result = new java_cup.runtime.Symbol(1/*type_decl*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 19: // declaration ::= error
{
Object RESULT = null;
System.err.println
( "Possible cause: forgotten semicolon or "
+ "a type/random/nonrandom/guaranteed modifier." );
CUP$BLOGParser$result = new java_cup.runtime.Symbol(20/*declaration*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 18: // declaration ::= parfactor
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(20/*declaration*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 17: // declaration ::= guaranteed_decl
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(20/*declaration*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 16: // declaration ::= num_stmt
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(20/*declaration*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 15: // declaration ::= dep_stmt
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(20/*declaration*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 14: // declaration ::= non_rand_func_defn
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(20/*declaration*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 13: // declaration ::= non_rand_func_decl
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(20/*declaration*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 12: // declaration ::= origin_func_decl
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(20/*declaration*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 11: // declaration ::= rand_func_defn
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(20/*declaration*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 10: // declaration ::= rand_func_decl
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(20/*declaration*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 9: // declaration ::= type_decl
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(20/*declaration*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 8: // statement ::= query
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(19/*statement*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 7: // statement ::= evidence
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(19/*statement*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 6: // statement ::= declaration
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(19/*statement*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 5: // statement_lst ::= error
{
Object RESULT = null;
System.err.println(
"Possible cause: forgotten semicolon" );
CUP$BLOGParser$result = new java_cup.runtime.Symbol(18/*statement_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 4: // statement_lst ::= statement SEMI
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(18/*statement_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-1)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 3: // statement_lst ::= statement_lst statement SEMI
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(18/*statement_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-2)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 2: // opt_statement_lst ::= statement_lst
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(17/*opt_statement_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 1: // opt_statement_lst ::=
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(17/*opt_statement_lst*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/*. . . . . . . . . . . . . . . . . . . .*/
case 0: // file ::= opt_statement_lst
{
Object RESULT = null;
CUP$BLOGParser$result = new java_cup.runtime.Symbol(15/*file*/, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).left, ((java_cup.runtime.Symbol)CUP$BLOGParser$stack.elementAt(CUP$BLOGParser$top-0)).right, RESULT);
}
return CUP$BLOGParser$result;
/* . . . . . .*/
default:
throw new Exception(
"Invalid action number found in internal parse table");
}
}
}
This file was generated on Tue Jun 08 17:53:36 PDT 2010 from file BLOGParser.java
by the ilog.language.tools.Hilite Java tool written by Hassan Aït-Kaci