import java_cup.runtime.*;

parser code {: ///public static boolean DEBUG = false; :}

init with {: if(Settings.DEBUG) System.out.println("CUP:mp2to5b:  entry"); :};

terminal E2, EUMP2, MP4_T, E3, E4_DQ, E4_SDQ, E4_SDTQ, EUMP3, UMP4_DQ, UMP4_SDQ, UMP4_SDTQ;
terminal String FCOPT, FCOPT2, ALGOPT, MP2OPT, VAR, LIM, FLOAT;
non terminal Object startpt, element;

/* ___________
   The grammer */

startpt ::= startpt element
            |
            element
            ;

element ::=
	FCOPT:s
	{: if(Settings.DEBUG) System.out.println("CUP:mp2to5b:  Frozen Core Option:  "+s);
	   ParseMP2to5.put("Frozen Core Option:  ", s); :}
	|
	FCOPT2:s
	{: if(Settings.DEBUG) System.out.println("CUP:mp2to5b:  Frozen Core Option:  "+s);
	   ParseMP2to5.put("Frozen Core Option?  (Check raw output)  ", s); :}
	;
