Преглед изворни кода

Adding a rule to the file and correcting the meta2c example

develop-theo
Theo Souchon пре 2 година
родитељ
комит
5e24fc3153
2 измењених фајлова са 14 додато и 7 уклоњено
  1. +12
    -7
      ccmeta.leg
  2. +2
    -0
      tests-parsimony/002.c

+ 12
- 7
ccmeta.leg Прегледај датотеку

@ -2303,11 +2303,11 @@ meta_postfix = i:meta_value
) * { $$ = i }
meta_paramList = META_LPAREN m:meta_makeMap
( i:META_IDENT { map_append(m, i) }
( META_COMMA i:META_IDENT { map_append(m, i) }
( i:META_IDENT { map_append(m, i) }
( META_COMMA i:META_IDENT { map_append(m, i) }
) *
) ?
META_RPAREN { $$ = m }
META_RPAREN { $$ = m }
meta_argumentList = META_LPAREN m:meta_makeMap
( e:meta_exp { map_append(m, e) }
@ -2318,7 +2318,7 @@ meta_argumentList = META_LPAREN m:meta_makeMap
meta_value = META_BACKTICK - m:meta2c_statement { $$ = m }
meta_value = META_BACKTICK - m:meta2c_expr { $$ = m }
| n:META_FLOAT { $$ = newFloat(n) }
| n:meta_integer { $$ = newInteger(n) }
| s:meta_string { $$ = newString(s) }
@ -2329,15 +2329,20 @@ meta_value = META_BACKTICK - m:meta2c_statement { $$
| p:meta_paramList e:meta_block { $$ = newFunc(null, p, e, null) }
| META_LPAREN ( i:meta_block | i:meta_exp ) META_RPAREN { $$ = i }
meta2c_statement = m:meta2c_expr { $$ = m }
meta2c_statement = m:meta2c_expr { $$ = m }
| 'statement' { $$ = null }
meta2c_expr = m:meta2c_constant { $$ = m }
meta2c_expr = m:meta2c_constant { $$ = m }
| 'expression' { $$ = null }
meta2c_constant = 'constant' - m:meta2c_value { $$ = m }
meta2c_value = m:meta_makeMap { map_set(m, intern("__proto__"), intern("Token")) } < [0-9]+ > { map_set(m, intern("text"), makeString(unescape(yytext))) } { $$ = newMap(m) }
meta2c_value = m:meta_makeMap
( < [0-9]+ > { map_set(m, intern("__proto__"), intern("C_int")) } { map_set(m, intern("text"), makeString(unescape(yytext))) } { $$ = newMap(m) }
| s:meta2c_string { map_set(m, intern("__proto__"), intern("C_string")) } { map_set(m, intern("text"), s ) } { $$ = newMap(m) }
)
meta2c_string = META_DQUOTE < (!META_DQUOTE meta_char)* > META_DQUOTE {$$ = makeString(unescape(yytext)) }
meta_string = s:META_STRING - { $$ = s }

+ 2
- 0
tests-parsimony/002.c Прегледај датотеку

@ -3,3 +3,5 @@
int q = @(`constant 10);
int w = @(a);
char *text=@(`constant "text");

Loading…
Откажи
Сачувај