summaryrefslogtreecommitdiff
path: root/minic/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'minic/parse.c')
-rw-r--r--minic/parse.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/minic/parse.c b/minic/parse.c
index 0658908..8de56a6 100644
--- a/minic/parse.c
+++ b/minic/parse.c
@@ -20,6 +20,27 @@ void parser_debug( Parser *p, int enable )
}
}
+static void print_symbol( scanner_Symbol s )
+{
+ switch( s.sym ) {
+ case S_eof:
+ print( "PARSER(EOF)" );
+ break;
+ case S_INT:
+ print( "PARSER(INT)" );
+ break;
+ case S_DIV:
+ print( "PARSER(DIV)" );
+ break;
+ case S_IDENT:
+ // TODO: print identifier
+ print( "PARSER(IDENT)" );
+ break;
+ default:
+ print( "PARSER(<unknown symbol>)" );
+ }
+}
+
void parser_parse( Parser *p )
{
scanner_Symbol s;
@@ -27,5 +48,9 @@ void parser_parse( Parser *p )
s = scanner_scan( p->s );
while( s.sym != S_eof ) {
+ if( p->debug ) {
+ print_symbol( s );
+ }
+ s = scanner_scan( p->s );
}
}