From a8e67c64aa6932f11fb81d5c3dd7ae613721edb8 Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Sat, 28 May 2011 13:22:23 +0300 Subject: Accept empty input files. * src/bind-gram.y: Input may be empty. * src/grecs-gram.y: Likewise. * src/meta1-gram.y: Likewise. * tests/empty.at: New test. * tests/Makefile.am: Add new testcase. * tests/testsuite.at: Add new testcase. --- src/bind-gram.y | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/bind-gram.y') diff --git a/src/bind-gram.y b/src/bind-gram.y index 5acc780..7259e5d 100644 --- a/src/bind-gram.y +++ b/src/bind-gram.y @@ -55,17 +55,28 @@ static struct grecs_value *stmtlist_to_value(struct grecs_node *node); %type value ctlsub %type vallist tag %type vlist ctllist -%type stmt simple block +%type stmt simple block maybe_stmtlist %type stmtlist %% -input : stmtlist +input : maybe_stmtlist { parse_tree = grecs_node_create(grecs_node_root, &grecs_current_locus); parse_tree->v.texttab = grecs_text_table(); - grecs_node_bind(parse_tree, $1.head, 1); + grecs_node_bind(parse_tree, $1, 1); + } + ; + +maybe_stmtlist: + /* empty */ + { + $$ = NULL; + } + | stmtlist + { + $$ = $1.head; } ; -- cgit v1.2.1