From 43a8cf835bf017b3362f5dd02efa74f69537462d Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Mon, 22 Feb 2016 19:53:13 -0500 Subject: eshtrans: Add T_LOCAL --- (limited to 'eshtrans/frontend') diff --git a/eshtrans/frontend/lexer.esh b/eshtrans/frontend/lexer.esh index b7d0886..5a8bd56 100644 --- a/eshtrans/frontend/lexer.esh +++ b/eshtrans/frontend/lexer.esh @@ -913,9 +913,10 @@ accept() dbg "looking for $t, current tok ${tok%%${US}*}" case "${t}" in - T_IF|T_THEN|T_ELSE|T_ELIF|T_FI|\ - T_DO|T_DONE|T_CASE|T_ESAC|T_WHILE|T_UNTIL|\ - T_FOR|T_LBRACE|T_RBRACE|T_BANG|T_IN|T_STATIC|T_RETURN) + T_IF|T_THEN|T_ELSE|T_ELIF|T_FI|T_DO|T_DONE|\ + T_CASE|T_ESAC|T_WHILE|T_UNTIL|T_FOR|\ + T_LBRACE|T_RBRACE|T_BANG|T_IN|\ + T_STATIC|T_LOCAL|T_RETURN) dbg "looking for reserved word $t, have '$tok'" if ! [ "x${tok%%${US}*}" = "x${t}" ]; then # Reserved words are recognized as literal @@ -969,7 +970,7 @@ accept() for rw in T_IF T_THEN T_ELSE T_ELIF T_FI T_DO T_DONE \ T_CASE T_ESAC T_WHILE T_UNTIL T_FOR \ T_LBRACE T_RBRACE T_BANG T_IN \ - T_STATIC T_RETURN; do + T_STATIC T_LOCAL T_RETURN; do if [ "x${tok#T_WORD${US}}" = \ "x$(toktext "${rw}")" ]; then tok="${rw}" @@ -988,7 +989,7 @@ accept() for rw in T_IF T_THEN T_ELSE T_ELIF T_FI T_DO T_DONE \ T_CASE T_ESAC T_WHILE T_UNTIL T_FOR \ T_LBRACE T_RBRACE T_BANG T_IN \ - T_STATIC T_RETURN; do + T_STATIC T_LOCAL T_RETURN; do if [ "x${tok#T_WORD${US}}" = \ "x$(toktext "${rw}")" ]; then tok="${rw}" diff --git a/eshtrans/frontend/parser.esh b/eshtrans/frontend/parser.esh index e993221..e967fc7 100644 --- a/eshtrans/frontend/parser.esh +++ b/eshtrans/frontend/parser.esh @@ -404,7 +404,7 @@ do_group() simple_command() { ptrace_begn simple_command - if accept T_RETURN; then + if accept T_LOCAL || accept T_RETURN; then cmd_suffix ptrace_pass simple_command return 0 -- cgit v0.9.1