summaryrefslogtreecommitdiff
path: root/g.peg
diff options
context:
space:
mode:
Diffstat (limited to 'g.peg')
-rw-r--r--g.peg52
1 files changed, 0 insertions, 52 deletions
diff --git a/g.peg b/g.peg
deleted file mode 100644
index 84d907e..0000000
--- a/g.peg
+++ /dev/null
@@ -1,52 +0,0 @@
-%source {
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-#ifdef DO_PARSE_DEBUG
-static const char *dbg_str[] = { "Evaluating rule", "Matched rule", "Abandoning rule" };
-#define PCC_DEBUG(auxil, event, rule, level, pos, buffer, length) \
- fprintf(stderr, "%*s%s %s @%zu [%.*s]\n", (int)((level) * 2), "", dbg_str[event], rule, pos, (int)(length), buffer)
-#endif
-
-#define PCC_GETCHAR(auxil) fgetc(auxil)
-
-}
-
-
-
-%common {
-#include "ast.h"
-
-}
-
-%value "AstNode"
-%auxil "FILE *"
-
-expr <-
- l:list { $$ = l; }
- / n:number { $$ = n; }
- / i:ident { $$ = i; }
- / t:string { $$ = t; }
- / a:array { $$ = a; }
-
-list <- { $$ = astnode_new_list(); }
- '(' _
- ( e:expr { astnode_append(&$$, e); }
- )*
- ')' _
-array <- { $$ = astnode_new_arr(); }
- '[' _
- ( e:expr { astnode_append(&$$, e); }
- )*
- ']' _
-
-number <- < [0-9]+ > (! ident_char) _ { $$ = astnode_new_num(atoi($1)); }
-ident <- < ident_char+ > _ { $$ = astnode_new_ident($1); }
-string <- '"' < [^"]* > '"' _ { $$ = astnode_new_string($1); }
-
-ident_char <- [-_a-zA-Z'+*/\\%=0-9<>!,]
-_ <- [ \t\n]*
-
-