X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=lexer.l;h=f3a2957dfc1b5f6d3e4bf194bc0eb13c2c8113c7;hb=5723a49791587f497380fee82d9c481faff2099c;hp=6af03455119af5b06c40af9146834c38247aaf29;hpb=d481e8196cc08ec6761f3a26da16d1e02dbbc712;p=userv.git diff --git a/lexer.l b/lexer.l index 6af0345..f3a2957 100644 --- a/lexer.l +++ b/lexer.l @@ -43,6 +43,7 @@ #include "common.h" #include "daemon.h" #include "lib.h" +#include "both.h" #include "tokens.h" #define HYPHEN '-' @@ -188,6 +189,7 @@ parameter { lr_bispa= bispa_parameter; lr_bisexec= bisexec_parameter; return tok version { lr_bispa= bispa_none; lr_bisexec= bisexec_version; return tokv_word_version; } toplevel { lr_bispa= bispa_none; lr_bisexec= bisexec_toplevel; return tokv_word_toplevel; } override { lr_bispa= bispa_none; lr_bisexec= bisexec_override; return tokv_word_override; } +shutdown { lr_bispa= bispa_none; lr_bisexec= bisexec_shutdown; return tokv_word_shutdown; } reset { lr_bispa= bispa_none; lr_bisexec= bisexec_reset; lr_dir= df_reset; return tokv_word_reset; } execute { lr_bispa= bispa_none; lr_bisexec= bisexec_execute; lr_dir= df_execute; return tokv_word_execute; } help { lr_bispa= bispa_none; lr_bisexec= bisexec_help; return tokv_word_help; } @@ -263,7 +265,8 @@ error { lr_dir= df_error; lr_loglevel= LOG_ERR; return tokv_word_error; } lr_max=-1; return tokv_fdstoend; } -[\ \t]+ return tokv_lwsp; +([\ \t]*\\[\ \t]*\n[\ \t]*)+ return tokv_lwsp; +[\ \t]+ return tokv_lwsp; [\ \t]*\n cstate->lineno++; return tokv_newline; [\ \t]*\#[^\n]*\n cstate->lineno++; return tokv_newline; [\ \t]*\#[^\n]* { @@ -277,7 +280,7 @@ error { lr_dir= df_error; lr_loglevel= LOG_ERR; return tokv_word_error; } parseerrprint("misquoted or unterminated string"); return tokv_error; } -[^\ \t\n]+ return tokv_barestring; +[^\ \t\n\\]+ return tokv_barestring; <> return tokv_eof; @@ -289,6 +292,7 @@ const char *const builtinservicehelpstrings[]= { "version", "toplevel", "override", + "shutdown", "reset", "execute", "help",