mirror of
https://github.com/crskycode/GARbro.git
synced 2024-12-29 14:24:13 +08:00
14a94d20f1
use LEX/YACC to parse IPT files.
33 lines
533 B
Plaintext
33 lines
533 B
Plaintext
%namespace GameRes.Formats.Artemis
|
|
%scannertype IPTScanner
|
|
%visibility internal
|
|
%tokentype Token
|
|
|
|
%option stack, minimize, parser, verbose, persistbuffer, noembedbuffers
|
|
|
|
Space [ \t\v\n\f]
|
|
Number [0-9]+
|
|
|
|
%{
|
|
|
|
%}
|
|
|
|
%%
|
|
|
|
{Space}+ /* skip */
|
|
|
|
{Number} { GetNumber(); return (int)Token.NUMBER; }
|
|
|
|
\"(\\.|[^\\"\n])*\" { GetStringLiteral(); return (int)Token.STRING_LITERAL; }
|
|
|
|
[a-zA-Z]+ { yylval.s = yytext; return (int)Token.IDENTIFIER; }
|
|
|
|
"{" { return '{'; }
|
|
|
|
"}" { return '}'; }
|
|
|
|
"=" { return '='; }
|
|
|
|
"," { return ','; }
|
|
|
|
%% |