chiark / gitweb /
@@ -7,7 +7,7 @@
[userv.git] / lexer.l
diff --git a/lexer.l b/lexer.l
index 6af03455119af5b06c40af9146834c38247aaf29..f3a2957dfc1b5f6d3e4bf194bc0eb13c2c8113c7 100644 (file)
--- 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;
 <<EOF>>                        return tokv_eof;
 
 
@@ -289,6 +292,7 @@ const char *const builtinservicehelpstrings[]= {
   "version",
   "toplevel",
   "override",
+  "shutdown",
   "reset",
   "execute",
   "help",