From 55428637a8536764a82693c19d76e61a6f557627 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sun, 20 Oct 2024 23:00:40 +0300 Subject: add command continuations --- src/lexer.l | 3 ++- src/parser.y | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/lexer.l b/src/lexer.l index 3c611ab..4756cf0 100644 --- a/src/lexer.l +++ b/src/lexer.l @@ -27,7 +27,7 @@ static void update_yylloc(struct parser *parser, YYLTYPE *lloc, const char *text #define YY_USER_ACTION update_yylloc(parser, yylloc, yytext); %} -ID [^(){};[:space:]]+ +ID [^(){};\\[:space:]]+ STRING \"(\\.|[^"\\])*\" HEX 0[xX][0-9a-fA-F]+ @@ -50,6 +50,7 @@ FLOAT {HEXF}|{DECF} "{" {return LBRACE;} "}" {return RBRACE;} ";" {return SEMICOLON;} +"\\" {return BACKSLASH;} "\n" {return NL;} {STRING} { diff --git a/src/parser.y b/src/parser.y index a87b6c6..edf71c1 100644 --- a/src/parser.y +++ b/src/parser.y @@ -45,6 +45,7 @@ %token LBRACE "{" %token RBRACE "}" %token SEMICOLON ";" +%token BACKSLASH "\\" %token NL "nl" %nterm arg args rev_args @@ -101,8 +102,12 @@ arg | INT {$$ = gen_int($1);} | FLOAT {$$ = gen_float($1);} +cont + : BACKSLASH NL + rev_args - : rev_args arg {$$ = $1; vect_append(struct lyn_value, $$.args, &$2);} + : rev_args cont arg {$$ = $1; vect_append(struct lyn_value, $$.args, &$3);} + | rev_args arg {$$ = $1; vect_append(struct lyn_value, $$.args, &$2);} | arg {$$ = gen_list(); vect_append(struct lyn_value, $$.args, &$1);} args -- cgit v1.2.3