diff options
author | P. J. McDermott <pj@pehjota.net> | 2016-02-28 15:08:23 (EST) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2016-02-28 15:08:23 (EST) |
commit | 96716798e04aded65e9023c40fa8492350cf212d (patch) | |
tree | f21b801f771eecaeed0eabbf65dc02b191bbfeaf | |
parent | c45f9970bf041823c2b9e2ad8ab49af90b28fe7d (diff) | |
download | eggshell-96716798e04aded65e9023c40fa8492350cf212d.zip eggshell-96716798e04aded65e9023c40fa8492350cf212d.tar.gz eggshell-96716798e04aded65e9023c40fa8492350cf212d.tar.bz2 |
eshtrans: Add and parse T_USE
-rw-r--r-- | eshtrans/frontend/lexer.esh | 6 | ||||
-rw-r--r-- | eshtrans/frontend/parser.esh | 5 | ||||
-rw-r--r-- | eshtrans/tokens.esh | 2 |
3 files changed, 10 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 diff --git a/eshtrans/tokens.esh b/eshtrans/tokens.esh index ce1d3f2..344ac9f 100644 --- a/eshtrans/tokens.esh +++ b/eshtrans/tokens.esh @@ -64,6 +64,7 @@ tokname() T_RBRACE) n='"}"';; T_BANG) n='"!"';; T_IN) n='"in"';; + T_USE) n='"use"';; T_STATIC) n='"static"';; T_LOCAL) n='"local"';; T_RETURN) n='"return"';; @@ -130,6 +131,7 @@ toktext() T_RBRACE) n='}';; T_BANG) n='!';; T_IN) n='in';; + T_USE) n='use';; T_STATIC) n='__static';; T_LOCAL) n='__local';; T_RETURN) n='return';; |