diff options
Diffstat (limited to 'cgil/rlhc-c.lm')
-rw-r--r-- | cgil/rlhc-c.lm | 182 |
1 files changed, 91 insertions, 91 deletions
diff --git a/cgil/rlhc-c.lm b/cgil/rlhc-c.lm index 0a2b6d97..dfc24d1d 100644 --- a/cgil/rlhc-c.lm +++ b/cgil/rlhc-c.lm @@ -55,19 +55,19 @@ namespace c_gen for Tok: host::tok in repeat(TL) { switch Tok case Stmt { - "{ - " [stmt_list( StmtList )] - "} + << "{ + " [stmt_list( StmtList )] + "} } case Expr { - "([expr( Expr )])" + << "([expr( Expr )])" } case Escape { Str: str = $escape - "[Str.suffix( 1 )]" + << "[Str.suffix( 1 )]" } default { - [Tok] + << [Tok] } } } @@ -77,17 +77,17 @@ namespace c_gen switch EmbeddedHost case Expr { - "([tok_list( TL )])" + << "([tok_list( TL )])" } case Stmt { - "{ - " [tok_list( TL )] - "} + << "{ + " [tok_list( TL )] + "} } case Bare { - [tok_list( TL )] + << [tok_list( TL )] } } @@ -96,39 +96,39 @@ namespace c_gen switch ExprFactor case [EH: embedded_host] { - [embedded_host( EH )] + << [embedded_host( EH )] } case Paren { - "([expr( expr )])" + << "([expr( expr )])" } case ArraySub { - "[ident]\[[expr( expr )]\]" + << "[ident]\[[expr( expr )]\]" } case ArraySubField { - "[ident]\[[expr( expr )]\].[Field]" + << "[ident]\[[expr( expr )]\].[Field]" } case Offset { - "[ident] + [expr( expr )]" + << "[ident] + [expr( expr )]" } case Deref { - "(*( [expr(expr)] )) + << "(*( [expr(expr)] )) } case [`TRUE] { - "1" + << "1" } case [`FALSE] { - "1" + << "1" } case [N: `nil] { - "0" + << "0" } case [Number: number] { @@ -142,11 +142,11 @@ namespace c_gen } case [`cast `( T: type `) F: expr_factor] { - "( [type( T )] ) [expr_factor( F )]" + << "( [type( T )] ) [expr_factor( F )]" } default { # Catches cases not specified - [ExprFactor] + << [ExprFactor] } } @@ -155,15 +155,15 @@ namespace c_gen switch ExprFactor case [EH: embedded_host] { - [embedded_host( EH )] + << [embedded_host( EH )] } case [ident O: `[ TL: expr C: `]] { - [ident O expr( TL ) C] + << [ident O expr( TL ) C] } case [I: ident `[ E: expr `] `. F: ident] { - "[I]\[[ expr( E )]\].[F] + << "[I]\[[ expr( E )]\].[F] } case [E1: embedded_host `-> E2: lvalue] { @@ -173,7 +173,7 @@ namespace c_gen } default { # Catches cases not specified - [ExprFactor] + << [ExprFactor] } } @@ -182,15 +182,15 @@ namespace c_gen switch ExprFactorOp case [B: `! expr_factor_op] { - ['!' expr_factor_op( _expr_factor_op )] + << ['!' expr_factor_op( _expr_factor_op )] } case [T: `~ expr_factor_op] { - ['~' expr_factor_op( _expr_factor_op )] + << ['~' expr_factor_op( _expr_factor_op )] } case [expr_factor] { - [expr_factor( expr_factor )] + << [expr_factor( expr_factor )] } } @@ -199,11 +199,11 @@ namespace c_gen switch ExprBitwise case [expr_bitwise A: `& expr_factor_op] { - [expr_bitwise( _expr_bitwise ) A expr_factor_op( expr_factor_op )] + << [expr_bitwise( _expr_bitwise ) A expr_factor_op( expr_factor_op )] } case [expr_factor_op] { - [expr_factor_op( expr_factor_op )] + << [expr_factor_op( expr_factor_op )] } } @@ -212,11 +212,11 @@ namespace c_gen switch ExprMult case [expr_mult T: `* expr_bitwise] { - [expr_mult( _expr_mult ) T expr_bitwise( expr_bitwise )] + << [expr_mult( _expr_mult ) T expr_bitwise( expr_bitwise )] } case [expr_bitwise] { - [expr_bitwise( expr_bitwise )] + << [expr_bitwise( expr_bitwise )] } } @@ -225,11 +225,11 @@ namespace c_gen switch ExprAdd case [expr_add Op: add_op expr_mult] { - [expr_add( _expr_add ) Op expr_mult( expr_mult )] + << [expr_add( _expr_add ) Op expr_mult( expr_mult )] } case [expr_mult] { - [expr_mult( expr_mult )] + << [expr_mult( expr_mult )] } } @@ -238,11 +238,11 @@ namespace c_gen switch ExprShift case [expr_shift Op: shift_op expr_add] { - [expr_shift( _expr_shift ) Op expr_add( expr_add )] + << [expr_shift( _expr_shift ) Op expr_add( expr_add )] } case [expr_add] { - [expr_add( expr_add )] + << [expr_add( expr_add )] } } @@ -251,11 +251,11 @@ namespace c_gen switch ExprTest case [expr_test Op: test_op expr_shift] { - [expr_test( _expr_test ) Op expr_shift( expr_shift )] + << [expr_test( _expr_test ) Op expr_shift( expr_shift )] } case [expr_shift] { - [expr_shift( expr_shift )] + << [expr_shift( expr_shift )] } } @@ -268,34 +268,34 @@ namespace c_gen { switch Type case S8 - ['signed char '] + << ['signed char '] case S16 - ['short '] + << ['short '] case S32 - ['int '] + << ['int '] case S64 - ['long '] + << ['long '] case S128 - ['long long '] + << ['long long '] case "uint" - ['unsigned int '] + << ['unsigned int '] default - [Type] + << [Type] } void number( Number: number ) { switch Number case Unsigned - "[uint]u" + << "[uint]u" default - [Number] + << [Number] } void num_list( NumList: num_list ) { for Number: number in NumList - "[number( Number )], " + << "[number( Number )], " } void stmt( Stmt: stmt ) @@ -303,14 +303,14 @@ namespace c_gen switch Stmt case [EH: embedded_host] { - [embedded_host( EH )] + << [embedded_host( EH )] } case [A: static_array] { - "static const [type(A.type)] " + << "static const [type(A.type)] " "[A.ident] \[\] = { [num_list(A.num_list)] }; } case [V: static_value] { - "static const [V.type] [V.ident] = [V.number]; + << "static const [V.type] [V.ident] = [V.number]; } case [ `if `( IfExpr: expr `) @@ -318,72 +318,72 @@ namespace c_gen ElseIfClauseList: else_if_clause* ElseClauseOpt: else_clause? ] { - "if ( [expr(IfExpr)] ) - " [stmt(IfStmt)] + << "if ( [expr(IfExpr)] ) + << " [stmt(IfStmt)] for ElseIfClause: else_if_clause in repeat( ElseIfClauseList ) { match ElseIfClause [`else `if `( ElseIfExpr: expr `) ElseIfStmt: stmt] - "else if ( [expr(ElseIfExpr)] ) - " [stmt(ElseIfStmt)] + << "else if ( [expr(ElseIfExpr)] ) + " [stmt(ElseIfStmt)] } if ( match ElseClauseOpt ['else' ElseStmt: stmt] ) { - "else - " [stmt(ElseStmt)] + << "else + << " [stmt(ElseStmt)] } } case [`while `( WhileExpr: expr `) WhileStmt: stmt] { - "while ( [expr(WhileExpr)] ) - " [stmt(WhileStmt)] + << "while ( [expr(WhileExpr)] ) + " [stmt(WhileStmt)] } case [M: match_stmt] { - "switch ( [expr(M.E)] ) { + << "switch ( [expr(M.E)] ) { for PB: pat_block in repeat( M.P ) { - "case [expr( PB.expr )]: - "[stmt_list( PB._repeat_stmt )] - "break; + << "case [expr( PB.expr )]: + "[stmt_list( PB._repeat_stmt )] + "break; } if match M.D [D: default_block] { - "default: - "[stmt_list( D._repeat_stmt )] - "break; + << "default: + "[stmt_list( D._repeat_stmt )] + "break; } - "} + << "} } case [`switch `( SwitchExpr: expr `) `{ StmtList: stmt* `}] { - "switch ( [expr(SwitchExpr)] ) { - " [stmt_list(StmtList)] - "} + << "switch ( [expr(SwitchExpr)] ) { + " [stmt_list(StmtList)] + "} } case [ES: expr_stmt] { - "[expr(ES.expr)]; + << "[expr(ES.expr)]; } case [B: block] { - "{ - " [stmt_list(B.StmtList)] - "} + << "{ + " [stmt_list(B.StmtList)] + "} } case [ OptConst: opt_const Type: type Ident: ident OptInit: opt_init Semi: `; ] { - "[OptConst] [type(Type)] [Ident]" + << "[OptConst] [type(Type)] [Ident]" if match OptInit [`= Init: expr] { - " = [expr(Init)] + << " = [expr(Init)] } - "; + << "; } case [Export: export_stmt] { - "#define [Export.ident] [number(Export.number)] + << "#define [Export.ident] [number(Export.number)] } case [fallthrough] { @@ -392,37 +392,37 @@ namespace c_gen } case [Index: index_stmt] { - "const [type(Index.type)] *[Index.ident] + << "const [type(Index.type)] *[Index.ident] if match Index.opt_init [E: `= expr] { - [E expr(Index.opt_init.expr)] + << [E expr(Index.opt_init.expr)] } - "; + << "; } case [CB: case_block] { - "case [expr( CB.expr )]: - "[stmt_list( CB._repeat_stmt )] - "break; + << "case [expr( CB.expr )]: + "[stmt_list( CB._repeat_stmt )] + "break; } case [DB: default_block] { - "default: - "[stmt_list( DB._repeat_stmt )] - "break; + << "default: + "[stmt_list( DB._repeat_stmt )] + "break; } case [CL: case_label] { - "case [expr( CL.expr )]: + << "case [expr( CL.expr )]: } case [AS: assign_stmt] { - "[lvalue(AS.LValue) AS.assign_op expr(AS.expr)]; + << "[lvalue(AS.LValue) AS.assign_op expr(AS.expr)]; } default { # catches unspecified cases - [Stmt] + << [Stmt] } } |