summaryrefslogtreecommitdiff
path: root/cgil/rlhc-c.lm
diff options
context:
space:
mode:
Diffstat (limited to 'cgil/rlhc-c.lm')
-rw-r--r--cgil/rlhc-c.lm182
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]
}
}