diff options
Diffstat (limited to 'ragel/host-java/rlparse.lm')
-rw-r--r-- | ragel/host-java/rlparse.lm | 202 |
1 files changed, 0 insertions, 202 deletions
diff --git a/ragel/host-java/rlparse.lm b/ragel/host-java/rlparse.lm deleted file mode 100644 index 100a9223..00000000 --- a/ragel/host-java/rlparse.lm +++ /dev/null @@ -1,202 +0,0 @@ -include 'ragel.lm' -include 'rlreduce.lm' - -namespace inline - lex - literal `fpc `fc `fcurs `ftargs - `fentry `fhold `fexec `fgoto `fnext - `fcall `fret `fbreak `fncall `fnret `fnbreak - - token ident /ident/ - token number /digit+/ - token hex_number /'0x' [0-9a-fA-F]+/ - token dec_number /'0x' [0-9a-fA-F]+/ - - token comment - / c_comment | cpp_comment / - - token string - / s_literal | d_literal / - - token whitespace - / ( [ \t] | NL )+ / - - literal - `{ `} `:: `* `, `( `) `; - - token var_ref - / "$" [a-zA-Z_][a-zA-Z_0-9]* / - { - if GblActionParams - { - input->push( make_token( - typeid<var_ref>, input->pull( match_length ) ) ) - } - else - { - # Just pull one char. Don't consume the word because it may - # be a keyword. - input->push( make_token( - typeid<c_any>, input->pull( 1 ) ) ) - } - } - - token c_any - / any / - end - -end - -namespace host - lex - literal `%%{ - - token close_inc /'}--%%'/ - { - input->push( make_token( typeid<close_inc>, input->pull( match_length ) ) ) - restoreGlobals() - } - - token close_imp /'}++%%'/ - { - input->push( make_token( typeid<close_imp>, input->pull( match_length ) ) ) - restoreGlobals() - } - - token slr / '%%' [^{] [^\n]* '\n' / - { - # Translates single line to multi-line - input->pull( 2 ) - R: str = input->pull( match_length - 3 ) - input->push( "}%%" ) - input->push( R ) - input->push( "%%{" ) - } - - rl NL / '\n' / - - rl s_literal - / "'" ([^'\\\n] | '\\' (any | NL))* "'" / - - rl d_literal - / '"' ([^"\\] | NL | '\\' (any | NL))* '"' / - - literal `define `= - - token ident /ident "'"?/ - token number /digit+/ - token hex_number /'0x' [0-9a-fA-F]+/ - - token comment - / c_comment | cpp_comment / - - token string - / s_literal | d_literal / - - token whitespace - / ( [ \t] | NL )+ / - - token c_any / any / - end - - def tok - [`define whitespace ident whitespace? number] :ImportDefNum - | [`define whitespace ident whitespace? string] :ImportDefStr - | [ident whitespace? `= whitespace? number] :ImportAssignNum - | [ident whitespace? `= whitespace? string] :ImportAssignStr - | [`define] :Def - | [`=] :Eq - | [ident] :Ident - | [number] :Number - | [hex_number] :HexNumber - | [comment] :Comment - | [string] :String - | [whitespace] :Whitespace - | [c_any] :Any -end - -reduction TopLevel - - # Pass Through. - # def tok - # [`define ident number] :Def1 - # | [`define ident string] :Def2 - # | [ident `= number] :Ass1 - # | [ident `= string] :Ass2 - # [`define whitespace ident whitespace? number] :ImportDefNum - # | [`define whitespace ident whitespace? string] :ImportDefStr - # | [ident whitespace? `= whitespace? number] :ImportAssignNum - # | [ident whitespace? `= whitespace? string] :ImportAssignStr - # | [`define] :Def - # | [`=] :Eq - # | [ident] :Ident - # | [number] :Number - # | [hex_number] :HexNumber - # | [comment] :Comment - # | [string] :String - # | [whitespace] :Whitespace - # | [c_any] :Any - - host::tok :ImportDefNum - { - if ( isImport ) - { - Literal *lit = new Literal( @number, - false /* $number->neg */, $number->data, - $number->length, Literal::Number ); - - string name( $ident->data, $ident->length ); - import( @ident, name, lit ); - } - } - host::tok :ImportDefStr - { - if ( isImport ) - { - Literal *lit = new Literal( @string, false, - $string->data, $string->length, Literal::LitString ); - string name( $ident->data, $ident->length ); - import( @ident, name, lit ); - } - } - host::tok :ImportAssignNum - { - if ( isImport ) - { - Literal *lit = new Literal( @number, - false /*$number->neg */, $number->data, - $number->length, Literal::Number ); - string name( $ident->data, $ident->length ); - import( @ident, name, lit ); - } - } - host::tok :ImportAssignStr - { - if ( isImport ) - { - Literal *lit = new Literal( @string, false, - $string->data, $string->length, Literal::LitString ); - - string name( $ident->data, $ident->length ); - import( @ident, name, lit ); - } - } - -end - -export RagelError: str - -# File name. The open is expected to succeed. It is tested before the colm -# program is called. -A: list_el<str> = argv->pop_head_el() -GblFileName = A->value - -# Remaining items are include paths. -while ( argv->length > 0 ) { - A = argv->pop_head_el() - GblIncludePaths->push_tail_el( A ) -} - -Stream: stream = open( GblFileName, "r" ) -reduce TopLevel start[ Stream ] -RagelError = error |