added signs to integer
removed linebrakes added floats as "real" changed Keyword for single symbol Operators
This commit is contained in:
parent
0740dcc237
commit
74befb4edd
|
@ -4,24 +4,22 @@
|
||||||
|
|
||||||
int yyLineNumber = 1;
|
int yyLineNumber = 1;
|
||||||
int yylex();
|
int yylex();
|
||||||
|
|
||||||
|
|
||||||
%}
|
%}
|
||||||
|
|
||||||
|
|
||||||
%%
|
%%
|
||||||
"\n" yyLineNumber++;
|
"\n" yyLineNumber++;
|
||||||
|
|
||||||
|
|
||||||
":" return(':');
|
":" return(':');
|
||||||
"=" return('=');
|
"=" return('=');
|
||||||
"|" return('|');
|
|
||||||
"!" return('!');
|
|
||||||
"+" return('+');
|
"+" return('+');
|
||||||
"-" return('-');
|
"-" return('-');
|
||||||
"*" return('*');
|
"*" return('*');
|
||||||
"/" return('/');
|
"/" return('/');
|
||||||
|
"," return(',');
|
||||||
|
";" return(';');
|
||||||
|
"." return('.');
|
||||||
|
"#" return('#');
|
||||||
|
|
||||||
"(" return('(');
|
"(" return('(');
|
||||||
")" return(')');
|
")" return(')');
|
||||||
|
@ -32,50 +30,38 @@
|
||||||
">" return('>');
|
">" return('>');
|
||||||
"<" return('<');
|
"<" return('<');
|
||||||
|
|
||||||
|
|
||||||
"int" return(KeyInt);
|
"int" return(KeyInt);
|
||||||
"float" return(KeyFloat);
|
"float" return(KeyFloat);
|
||||||
|
|
||||||
"as" return (KeyAs);
|
"as" return (KeyAs);
|
||||||
|
|
||||||
|
|
||||||
"short" return(KeyShort);
|
"short" return(KeyShort);
|
||||||
"long" return(KeyLong);
|
"long" return(KeyLong);
|
||||||
"half" return(KeyHalf);
|
"half" return(KeyHalf);
|
||||||
"double" return(KeyDouble);
|
"double" return(KeyDouble);
|
||||||
"signed" return(KeySigned);
|
"signed" return(KeySigned);
|
||||||
"unsigned" return(Keyunsigned);
|
"unsigned" return(Keyunsigned);
|
||||||
|
|
||||||
"ref" return(KeyRef);
|
"ref" return(KeyRef);
|
||||||
"type" return(KeyType);
|
"type" return(KeyType);
|
||||||
"local" return(KeyLocal);
|
"local" return(KeyLocal);
|
||||||
"global" return(KeyGlobal);
|
"global" return(KeyGlobal);
|
||||||
"static" return(KeyStatic);
|
"static" return(KeyStatic);
|
||||||
|
|
||||||
"if" return(KeyIf);
|
"if" return(KeyIf);
|
||||||
"else" return(KeyElse);
|
"else" return(KeyElse);
|
||||||
|
|
||||||
"while" return(KeyWhile);
|
"while" return(KeyWhile);
|
||||||
|
|
||||||
"in" return(KeyIn);
|
"in" return(KeyIn);
|
||||||
"out" return(KeyOut);
|
"out" return(KeyOut);
|
||||||
"fun" return(KeyFun);
|
"fun" return(KeyFun);
|
||||||
"," return(',');
|
|
||||||
";" return(';');
|
|
||||||
"==" return(OpEquals);
|
"==" return(OpEquals);
|
||||||
"&&" return(OpAnd);
|
"&&" return(OpAnd);
|
||||||
"||" return(OpOr);
|
"||" return(OpOr);
|
||||||
"!!" return(OpNot);
|
"!!" return(OpNot);
|
||||||
"^^" return(OpXor);
|
"^^" return(OpXor);
|
||||||
"&" return('&');
|
"&" return(OpBitand);
|
||||||
"^" return('^');
|
"|" return(OpBitor);
|
||||||
"." return('.');
|
"!" return(OpBitnot);
|
||||||
|
"^" return(OpBitxor);
|
||||||
|
|
||||||
"import" return(KeyImport);
|
"import" return(KeyImport);
|
||||||
"silent" return(KeySilent);
|
"silent" return(KeySilent);
|
||||||
"box" return(KeyBox);
|
"box" return(KeyBox);
|
||||||
"#" return('#');
|
|
||||||
"typeof" return(FunTypeof);
|
"typeof" return(FunTypeof);
|
||||||
"sizeof" return(FunSizeof);
|
"sizeof" return(FunSizeof);
|
||||||
"filename" return(FunFilename);
|
"filename" return(FunFilename);
|
||||||
|
@ -83,11 +69,10 @@
|
||||||
"lineno" return(FunLineno);
|
"lineno" return(FunLineno);
|
||||||
"extsupport" return(FunExtsupport);
|
"extsupport" return(FunExtsupport);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[a-zA-Z_]+ { yylval.string = strdup(yytext); return(Ident); };
|
[a-zA-Z_]+ { yylval.string = strdup(yytext); return(Ident); };
|
||||||
[0-9]+ { yylval.num = atoi(yytext); return(ValInt); };
|
[-+]?[0-9]+ { yylval.num = atoi(yytext); return(ValInt); };
|
||||||
\"([^\"\n])*\" {yylval.string = strdup(yytext); return(ValStr);};
|
\"([^\"\n])*\" {yylval.string = strdup(yytext); return(ValStr);};
|
||||||
\"\"\"([^\"\n]|\\\n)*\"\"\" {yylval.string = strdup(yytext); return(ValMultistr);};
|
\"\"\"([^\"\n]|\\\n)*\"\"\" {yylval.string = strdup(yytext); return(ValMultistr);};
|
||||||
|
[-+]?[0-9]*\.[0-9]+ {yylval.real = atof(yytext); return(ValFloat);};
|
||||||
.;
|
.;
|
||||||
%%
|
%%
|
||||||
|
|
|
@ -9,34 +9,31 @@
|
||||||
%union {
|
%union {
|
||||||
char *string;
|
char *string;
|
||||||
int num;
|
int num;
|
||||||
|
float real;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
%token KeyInt
|
%token KeyInt
|
||||||
%token KeyFloat
|
%token KeyFloat
|
||||||
|
|
||||||
%token KeyAs
|
%token KeyAs
|
||||||
%token <num> ValInt
|
%token <num> ValInt
|
||||||
%token <string> Ident
|
%token <string> Ident
|
||||||
|
%token <real> ValFloat
|
||||||
|
%token <string> ValStr
|
||||||
|
%token <string> ValMultistr
|
||||||
%token KeyShort
|
%token KeyShort
|
||||||
%token KeyLong
|
%token KeyLong
|
||||||
%token KeyHalf
|
%token KeyHalf
|
||||||
%token KeyDouble
|
%token KeyDouble
|
||||||
%token KeySigned
|
%token KeySigned
|
||||||
%token Keyunsigned
|
%token Keyunsigned
|
||||||
|
|
||||||
%token KeyRef
|
%token KeyRef
|
||||||
%token KeyType
|
%token KeyType
|
||||||
%token KeyLocal
|
%token KeyLocal
|
||||||
%token KeyGlobal
|
%token KeyGlobal
|
||||||
%token KeyStatic
|
%token KeyStatic
|
||||||
|
|
||||||
%token KeyIf
|
%token KeyIf
|
||||||
%token KeyElse
|
%token KeyElse
|
||||||
|
|
||||||
%token KeyWhile
|
%token KeyWhile
|
||||||
|
|
||||||
%token KeyIn
|
%token KeyIn
|
||||||
%token KeyOut
|
%token KeyOut
|
||||||
%token KeyFun
|
%token KeyFun
|
||||||
|
@ -45,8 +42,10 @@
|
||||||
%token OpOr
|
%token OpOr
|
||||||
%token OpNot
|
%token OpNot
|
||||||
%token OpXor
|
%token OpXor
|
||||||
|
%token OpBitand
|
||||||
|
%token OpBitor
|
||||||
|
%token OpBitnot
|
||||||
|
%token OpBitxor
|
||||||
%token KeyImport
|
%token KeyImport
|
||||||
%token KeySilent
|
%token KeySilent
|
||||||
%token KeyBox
|
%token KeyBox
|
||||||
|
@ -56,9 +55,6 @@
|
||||||
%token FunFunname
|
%token FunFunname
|
||||||
%token FunLineno
|
%token FunLineno
|
||||||
%token FunExtsupport
|
%token FunExtsupport
|
||||||
%token ValStr
|
|
||||||
%token ValMultistr
|
|
||||||
|
|
||||||
|
|
||||||
%%
|
%%
|
||||||
program: ;
|
program: ;
|
||||||
|
|
Loading…
Reference in New Issue