blob: 16729b5e793788c5264671c79750cdd3bf5b1def [file] [log] [blame]
import java_cup.runtime.*;
%%
%class MOptaLexer
%public
%unicode
%cup
%cupdebug
%state SCF1
%state ITER
%state ITER2
%state ITER8
%state DASH
%state INTVALUE
%state ITER4
%state ITER5
%state ITER6
%state ITER7
%state ITER8
%state ITER9
%state ITER10
%state ITER11
%state ITER12
%state IGNOREALL
%standalone
%8bit
/* ___________________________________________
Copied verbatim into generated lexer class:
*/
%{
public static boolean DEBUG = false;
%}
LineTerminator = \r|\n|\r\n
InputCharacter = [^\r\n]
WhiteSpace = {LineTerminator} | [ \t\f]
Comment = {TraditionalComment} | {EndOfLineComment} | {DocumentationComment}
TraditionalComment = "/*" [^*] ~"*/"
EndOfLineComment = "//" {InputCharacter}* {LineTerminator}
DocumentationComment = "/**" {CommentContent} "*"+ "/"
CommentContent = ( [^*] | \*+ [^/*] )* /* adjust syntax font-coloring */
Identifier = [:jletter:] [:jletterdigit:]*
dec_int_lit = 0 | [1-9][0-9]*
dec_int_id = [A-Za-z_][A-Za-z_0-9]*
DIGIT = [0-9]
FLOAT = [+|-]?{DIGIT}+"."{DIGIT}+
INT = [+|-]?{DIGIT}+
BOOL = [T|F]
EQ = "="
STRING = [A-Z]+
GRAB = [^(" "|\r|\n|\r\n| \t\f)]+
%%
<YYINITIAL>{
" ITER. ENERGY(OLD) ENERGY(NEW) DE GRADMAX GRADNORM GRADRMS STEPMAX STEPLEN STEPRMS" {
if (Settings.DEBUG) System.out.println("MOptaFlex: Found START OF");
yybegin(ITER);
return new Symbol(MOptaSym.FOUNDITER);
}
.|\n {}
}
<ITER>{
{dec_int_lit} {
if (Settings.DEBUG) System.out.println("MOptaFlex: Found the first integer in the iteration");
if (Settings.DEBUG) System.out.println(yytext());
yybegin(ITER4);
return new Symbol(MOptaSym.INTCycle, new Integer(yytext()));}
"Geometry written to block 1 of record 700" {
if (Settings.DEBUG) System.out.println("MOptaFlex: Found the dash");
yybegin(DASH);}
}
<ITER4>{
{FLOAT} {
if (Settings.DEBUG) System.out.println("MOptaFlex: Found the energy");
if (Settings.DEBUG) System.out.println(yytext());
yybegin(ITER5);
return new Symbol(MOptaSym.ENERGY, new Float(yytext()));}
}
<ITER5>{
{FLOAT} { if (Settings.DEBUG) System.out.println("MOptaFlex: ITER5");
if (Settings.DEBUG) System.out.println("MOptaFlex: Found float1");
yybegin (ITER6);
return new Symbol(MOptaSym.FLOAT1);
}
}
<ITER6>{
{FLOAT} {
if (Settings.DEBUG) System.out.println("MOptaFlex: Found float2");
yybegin (ITER7);
return new Symbol(MOptaSym.FLOAT2);
}
}
<ITER7>{
{FLOAT} {
if (Settings.DEBUG) System.out.println("MOptaFlex: Found float3");
yybegin(ITER8);
return new Symbol(MOptaSym.FLOAT3);}
.|\n {}
}
<ITER8>{
{FLOAT} {
if (Settings.DEBUG) System.out.println("MOptaFlex: Found float4");
yybegin(ITER9);
return new Symbol(MOptaSym.FLOAT4);}
.|\n {}
}
<ITER9>{
{FLOAT} {
if (Settings.DEBUG) System.out.println("MOptaFlex: Found float5");
yybegin(ITER10);
return new Symbol(MOptaSym.FLOAT5);}
.|\n {}
}
<ITER10>{
{FLOAT} {
if (Settings.DEBUG) System.out.println("MOptaFlex: Found float6");
yybegin(ITER11);
return new Symbol(MOptaSym.FLOAT6);}
.|\n {}
}
<ITER11>{
{FLOAT} {
if (Settings.DEBUG) System.out.println("MOptaFlex: Found float7");
yybegin(ITER12);
return new Symbol(MOptaSym.FLOAT7);}
.|\n {}
}
<ITER12>{
{FLOAT} {
if (Settings.DEBUG) System.out.println("MOptaFlex: Found float8");
yybegin(ITER);
return new Symbol(MOptaSym.FLOAT8);}
.|\n {}
}
<DASH>{
"*********************" {
yybegin(IGNOREALL);
return new Symbol(MOptaSym.SCFDONE);
}
.|\n {}
}
<IGNOREALL>{
.|\n {}
}
.|\n {}