Modified bgLex_lex to return morphem type

This commit is contained in:
Walter Julius Hennecke 2013-04-28 15:52:52 +02:00
parent d025f55c2a
commit 0ffd645be9
3 changed files with 75 additions and 75 deletions

View file

@ -82,7 +82,7 @@ typedef enum {
} bgLexSymbol;
typedef enum {
LMT_STRING,
LMT_STRING = 1,
LMT_INT,
LMT_DOUBLE,
LMT_VECTOR3,

View file

@ -23,25 +23,25 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
memset(yyextra->data.str, 0, strlen(yytext) - 1);
strncpy(yyextra->data.str, s, strlen(yytext) - 2);
yyextra->column += strlen(yytext);
return 1;
return LMT_STRING;
}
{INT} {
yyextra->type = LMT_INT;
yyextra->data.numInteger = atoi(yytext);
yyextra->column += strlen(yytext);
return 1;
return LMT_INT;
}
{DOUBLE} {
yyextra->type = LMT_DOUBLE;
yyextra->data.numDouble = atof(yytext);
yyextra->column += strlen(yytext);
return 1;
return LMT_DOUBLE;
}
{KEYWORD} {
yyextra->type = LMT_SYMBOL;
yyextra->data.symbol = bgLex_textToSymbol(yytext);
yyextra->column += strlen(yytext);
return 1;
return LMT_SYMBOL;
}
"{"" "+{INT}" "+{INT}" "+{INT}" "+"}" {
double a, b, c;
@ -51,7 +51,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
"{"" "+{INT}" "+{INT}" "+{DOUBLE}" "+"}" {
@ -62,7 +62,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
"{"" "+{INT}" "+{DOUBLE}" "+{INT}" "+"}" {
double a, b, c;
@ -72,7 +72,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
"{"" "+{INT}" "+{DOUBLE}" "+{DOUBLE}" "+"}" {
double a, b, c;
@ -82,7 +82,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
"{"" "+{DOUBLE}" "+{INT}" "+{INT}" "+"}" {
double a, b, c;
@ -92,7 +92,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
"{"" "+{DOUBLE}" "+{INT}" "+{DOUBLE}" "+"}" {
double a, b, c;
@ -102,7 +102,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
"{"" "+{DOUBLE}" "+{DOUBLE}" "+{INT}" "+"}" {
double a, b, c;
@ -112,7 +112,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
"{"" "+{DOUBLE}" "+{DOUBLE}" "+{DOUBLE}" "+"}" {
double a, b, c;
@ -122,7 +122,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
"{"" "+{INT}" "+{INT}" "+{INT}" "+{INT}" "+"}" {
double a, b, c, d;
@ -133,7 +133,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
"{"" "+{INT}" "+{INT}" "+{INT}" "+{DOUBLE}" "+"}" {
double a, b, c, d;
@ -144,7 +144,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
"{"" "+{INT}" "+{INT}" "+{DOUBLE}" "+{INT}" "+"}" {
double a, b, c, d;
@ -155,7 +155,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
"{"" "+{INT}" "+{INT}" "+{DOUBLE}" "+{DOUBLE}" "+"}" {
double a, b, c, d;
@ -166,7 +166,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
"{"" "+{INT}" "+{DOUBLE}" "+{INT}" "+{INT}" "+"}" {
double a, b, c, d;
@ -177,7 +177,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
"{"" "+{INT}" "+{DOUBLE}" "+{INT}" "+{DOUBLE}" "+"}" {
double a, b, c, d;
@ -188,7 +188,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
"{"" "+{INT}" "+{DOUBLE}" "+{DOUBLE}" "+{INT}" "+"}" {
double a, b, c, d;
@ -199,7 +199,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
"{"" "+{INT}" "+{DOUBLE}" "+{DOUBLE}" "+{DOUBLE}" "+"}" {
double a, b, c, d;
@ -210,7 +210,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
"{"" "+{DOUBLE}" "+{INT}" "+{INT}" "+{INT}" "+"}" {
double a, b, c, d;
@ -221,7 +221,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
"{"" "+{DOUBLE}" "+{INT}" "+{INT}" "+{DOUBLE}" "+"}" {
double a, b, c, d;
@ -232,7 +232,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
"{"" "+{DOUBLE}" "+{INT}" "+{DOUBLE}" "+{INT}" "+"}" {
double a, b, c, d;
@ -243,7 +243,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
"{"" "+{DOUBLE}" "+{INT}" "+{DOUBLE}" "+{DOUBLE}" "+"}" {
double a, b, c, d;
@ -254,7 +254,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
"{"" "+{DOUBLE}" "+{DOUBLE}" "+{INT}" "+{INT}" "+"}" {
double a, b, c, d;
@ -265,7 +265,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
"{"" "+{DOUBLE}" "+{DOUBLE}" "+{INT}" "+{DOUBLE}" "+"}" {
double a, b, c, d;
@ -276,7 +276,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;;
return LMT_VECTOR4;
}
"{"" "+{DOUBLE}" "+{DOUBLE}" "+{DOUBLE}" "+{INT}" "+"}" {
double a, b, c, d;
@ -287,7 +287,7 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
"{"" "+{DOUBLE}" "+{DOUBLE}" "+{DOUBLE}" "+{DOUBLE}" "+"}" {
double a, b, c, d;
@ -298,58 +298,58 @@ KEYWORD [a-zA-Z]+[a-zA-Z0-9]*
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
"{" {
yyextra->type = LMT_SYMBOL;
yyextra->data.symbol = LSYM_OBRACEC;
yyextra->column++;
return 1;
return LMT_SYMBOL;
}
"}" {
yyextra->type = LMT_SYMBOL;
yyextra->data.symbol = LSYM_CBRACEC;
yyextra->column++;
return 1;
return LMT_SYMBOL;
}
"(" {
yyextra->type = LMT_SYMBOL;
yyextra->data.symbol = LSYM_OBRACE;
yyextra->column++;
return 1;
return LMT_SYMBOL;
}
")" {
yyextra->type = LMT_SYMBOL;
yyextra->data.symbol = LSYM_CBRACE;
yyextra->column++;
return 1;
return LMT_SYMBOL;
}
"[" {
yyextra->type = LMT_SYMBOL;
yyextra->data.symbol = LSYM_OBRACESQ;
yyextra->column++;
return 1;
return LMT_SYMBOL;
}
"]" {
yyextra->type = LMT_SYMBOL;
yyextra->data.symbol = LSYM_CBRACESQ;
yyextra->column++;
return 1;
return LMT_SYMBOL;
}
[ \t] {
yyextra->column++;
yyextra->type = LMT_IGNORE;
return 1;
return LMT_SYMBOL;
}
\n {
yyextra->line++;
yyextra->type = LMT_IGNORE;
return 1;
return LMT_SYMBOL;
}
. {
yyextra->column++;
yyextra->type = LMT_IGNORE;
return 1;
return LMT_SYMBOL;
}
%%

View file

@ -858,7 +858,7 @@ YY_RULE_SETUP
memset(yyextra->data.str, 0, strlen(yytext) - 1);
strncpy(yyextra->data.str, s, strlen(yytext) - 2);
yyextra->column += strlen(yytext);
return 1;
return LMT_STRING;
}
YY_BREAK
case 2:
@ -868,7 +868,7 @@ YY_RULE_SETUP
yyextra->type = LMT_INT;
yyextra->data.numInteger = atoi(yytext);
yyextra->column += strlen(yytext);
return 1;
return LMT_INT;
}
YY_BREAK
case 3:
@ -878,7 +878,7 @@ YY_RULE_SETUP
yyextra->type = LMT_DOUBLE;
yyextra->data.numDouble = atof(yytext);
yyextra->column += strlen(yytext);
return 1;
return LMT_DOUBLE;
}
YY_BREAK
case 4:
@ -888,7 +888,7 @@ YY_RULE_SETUP
yyextra->type = LMT_SYMBOL;
yyextra->data.symbol = bgLex_textToSymbol(yytext);
yyextra->column += strlen(yytext);
return 1;
return LMT_SYMBOL;
}
YY_BREAK
case 5:
@ -902,7 +902,7 @@ YY_RULE_SETUP
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
YY_BREAK
case 6:
@ -916,7 +916,7 @@ YY_RULE_SETUP
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
YY_BREAK
case 7:
@ -930,7 +930,7 @@ YY_RULE_SETUP
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
YY_BREAK
case 8:
@ -944,7 +944,7 @@ YY_RULE_SETUP
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
YY_BREAK
case 9:
@ -958,7 +958,7 @@ YY_RULE_SETUP
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
YY_BREAK
case 10:
@ -972,7 +972,7 @@ YY_RULE_SETUP
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
YY_BREAK
case 11:
@ -986,7 +986,7 @@ YY_RULE_SETUP
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
YY_BREAK
case 12:
@ -1000,7 +1000,7 @@ YY_RULE_SETUP
yyextra->data.vector3[2] = c;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR3;
return 1;
return LMT_VECTOR3;
}
YY_BREAK
case 13:
@ -1015,7 +1015,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
YY_BREAK
case 14:
@ -1030,7 +1030,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
YY_BREAK
case 15:
@ -1045,7 +1045,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
YY_BREAK
case 16:
@ -1060,7 +1060,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
YY_BREAK
case 17:
@ -1075,7 +1075,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
YY_BREAK
case 18:
@ -1090,7 +1090,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
YY_BREAK
case 19:
@ -1105,7 +1105,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
YY_BREAK
case 20:
@ -1120,7 +1120,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
YY_BREAK
case 21:
@ -1135,7 +1135,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
YY_BREAK
case 22:
@ -1150,7 +1150,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
YY_BREAK
case 23:
@ -1165,7 +1165,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
YY_BREAK
case 24:
@ -1180,7 +1180,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
YY_BREAK
case 25:
@ -1195,7 +1195,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
YY_BREAK
case 26:
@ -1210,7 +1210,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;;
return LMT_VECTOR4;
}
YY_BREAK
case 27:
@ -1225,7 +1225,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
YY_BREAK
case 28:
@ -1240,7 +1240,7 @@ YY_RULE_SETUP
yyextra->data.vector4[3] = d;
yyextra->column += strlen(yytext);
yyextra->type = LMT_VECTOR4;
return 1;
return LMT_VECTOR4;
}
YY_BREAK
case 29:
@ -1250,7 +1250,7 @@ YY_RULE_SETUP
yyextra->type = LMT_SYMBOL;
yyextra->data.symbol = LSYM_OBRACEC;
yyextra->column++;
return 1;
return LMT_SYMBOL;
}
YY_BREAK
case 30:
@ -1260,7 +1260,7 @@ YY_RULE_SETUP
yyextra->type = LMT_SYMBOL;
yyextra->data.symbol = LSYM_CBRACEC;
yyextra->column++;
return 1;
return LMT_SYMBOL;
}
YY_BREAK
case 31:
@ -1270,7 +1270,7 @@ YY_RULE_SETUP
yyextra->type = LMT_SYMBOL;
yyextra->data.symbol = LSYM_OBRACE;
yyextra->column++;
return 1;
return LMT_SYMBOL;
}
YY_BREAK
case 32:
@ -1280,7 +1280,7 @@ YY_RULE_SETUP
yyextra->type = LMT_SYMBOL;
yyextra->data.symbol = LSYM_CBRACE;
yyextra->column++;
return 1;
return LMT_SYMBOL;
}
YY_BREAK
case 33:
@ -1290,7 +1290,7 @@ YY_RULE_SETUP
yyextra->type = LMT_SYMBOL;
yyextra->data.symbol = LSYM_OBRACESQ;
yyextra->column++;
return 1;
return LMT_SYMBOL;
}
YY_BREAK
case 34:
@ -1300,7 +1300,7 @@ YY_RULE_SETUP
yyextra->type = LMT_SYMBOL;
yyextra->data.symbol = LSYM_CBRACESQ;
yyextra->column++;
return 1;
return LMT_SYMBOL;
}
YY_BREAK
case 35:
@ -1309,7 +1309,7 @@ YY_RULE_SETUP
{
yyextra->column++;
yyextra->type = LMT_IGNORE;
return 1;
return LMT_SYMBOL;
}
YY_BREAK
case 36:
@ -1319,7 +1319,7 @@ YY_RULE_SETUP
{
yyextra->line++;
yyextra->type = LMT_IGNORE;
return 1;
return LMT_SYMBOL;
}
YY_BREAK
case 37:
@ -1328,7 +1328,7 @@ YY_RULE_SETUP
{
yyextra->column++;
yyextra->type = LMT_IGNORE;
return 1;
return LMT_SYMBOL;
}
YY_BREAK
case 38: