summaryrefslogtreecommitdiffstats
path: root/eshtrans/frontend
diff options
context:
space:
mode:
Diffstat (limited to 'eshtrans/frontend')
-rw-r--r--eshtrans/frontend/lexer.esh6
-rw-r--r--eshtrans/frontend/parser.esh5
2 files changed, 8 insertions, 3 deletions
diff --git a/eshtrans/frontend/lexer.esh b/eshtrans/frontend/lexer.esh
index 4e66091..6eb168a 100644
--- a/eshtrans/frontend/lexer.esh
+++ b/eshtrans/frontend/lexer.esh
@@ -930,7 +930,7 @@ accept()
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)
+ T_USE|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
@@ -984,7 +984,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_LOCAL T_RETURN; do
+ T_USE T_STATIC T_LOCAL T_RETURN; do
if [ "x${tok#T_WORD${US}}" = \
"x$(toktext "${rw}")" ]; then
tok="${rw}"
@@ -1003,7 +1003,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_LOCAL T_RETURN; do
+ T_USE 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 57c4b63..7966fb6 100644
--- a/eshtrans/frontend/parser.esh
+++ b/eshtrans/frontend/parser.esh
@@ -402,6 +402,11 @@ do_group()
simple_command()
{
#ptrace_begn simple_command
+ if accept T_USE; then
+ expect T_NAME
+ #ptrace_pass simple_command
+ return 0
+ fi
if accept T_LOCAL || accept T_RETURN; then
cmd_suffix
#ptrace_pass simple_command