diff --git a/lib/src/clixon_yang_parse.l b/lib/src/clixon_yang_parse.l index 9e0694d8..91cd4b33 100644 --- a/lib/src/clixon_yang_parse.l +++ b/lib/src/clixon_yang_parse.l @@ -191,14 +191,14 @@ identifier [A-Za-z_][A-Za-z0-9_\-\.]* \} { return *yytext; } ; { return *yytext; } . { clixon_yang_parselval.string = strdup(yytext); - BEGIN(UNKNOWN); return CHARS; } + BEGIN(UNKNOWN); return CHAR; } : { return *yytext; } ; { BEGIN(KEYWORD); return *yytext; } \" { _YY->yy_lex_string_state =UNKNOWN; BEGIN(STRINGDQ); return *yytext; } \{ { BEGIN(KEYWORD); return *yytext; } . { clixon_yang_parselval.string = strdup(yytext); - return CHARS; } + return CHAR; } true { clixon_yang_parselval.string = strdup(yytext); return BOOL; } @@ -211,14 +211,14 @@ identifier [A-Za-z_][A-Za-z0-9_\-\.]* \-?[0-9][0-9]* { clixon_yang_parselval.string = strdup(yytext); return INT; } ; { BEGIN(KEYWORD); return *yytext; } -\{ { BEGIN(KEYWORD); return *yytext; } +\{ { BEGIN(KEYWORD); return *yytext; } . { return *yytext; } -\{ { BEGIN(KEYWORD); return *yytext; } -; { BEGIN(KEYWORD); return *yytext; } -{identifier} { clixon_yang_parselval.string = strdup(yytext); - return IDENTIFIER;} -. { return *yytext; } +\{ { BEGIN(KEYWORD); return *yytext; } +; { BEGIN(KEYWORD); return *yytext; } +{identifier} { clixon_yang_parselval.string = strdup(yytext); + return IDENTIFIER;} +. { return *yytext; } \{ { BEGIN(KEYWORD); return *yytext; } ; { BEGIN(KEYWORD); return *yytext; } @@ -226,27 +226,22 @@ identifier [A-Za-z_][A-Za-z0-9_\-\.]* \' { _YY->yy_lex_string_state =STRING; BEGIN(STRINGSQ); return SQ; } \+ { return *yytext; } . { clixon_yang_parselval.string = strdup(yytext); - return CHARS;} + return CHAR;} -\\ { _YY->yy_lex_state = STRINGDQ; BEGIN(ESCAPE); } -\" { BEGIN(_YY->yy_lex_string_state); return *yytext; } -\n { _YY->yy_linenum++; - clixon_yang_parselval.string = strdup(yytext); - return CHARS;} -[^\\"\n]+ { clixon_yang_parselval.string = strdup(yytext); - return CHARS;} +\\ { _YY->yy_lex_state = STRINGDQ; BEGIN(ESCAPE); } +\" { BEGIN(_YY->yy_lex_string_state); return *yytext; } +\n { _YY->yy_linenum++; clixon_yang_parselval.string = strdup(yytext); return CHAR;} +. { clixon_yang_parselval.string = strdup(yytext); + return CHAR;} -\\ { _YY->yy_lex_state = STRINGSQ; BEGIN(ESCAPE); } -\' { BEGIN(_YY->yy_lex_string_state); return SQ; } -\n { _YY->yy_linenum++; - clixon_yang_parselval.string = strdup(yytext); - return CHARS;} -[^\\'\n]+ { clixon_yang_parselval.string = strdup(yytext); - return CHARS;} +\' { BEGIN(_YY->yy_lex_string_state); return SQ; } +\n { _YY->yy_linenum++; clixon_yang_parselval.string = strdup(yytext); return CHAR;} +. { clixon_yang_parselval.string = strdup(yytext); + return CHAR;} . { BEGIN(_YY->yy_lex_state); clixon_yang_parselval.string = strdup(yytext); - return CHARS; } + return CHAR; } [^*\n]* /* eat anything that's not a '*' */ "*"+[^*/\n]* /* eat up '*'s not followed by '/'s */ "*"+"/" BEGIN(_YY->yy_lex_state); diff --git a/lib/src/clixon_yang_parse.y b/lib/src/clixon_yang_parse.y index cd8eab7e..bc80e474 100644 --- a/lib/src/clixon_yang_parse.y +++ b/lib/src/clixon_yang_parse.y @@ -57,7 +57,7 @@ %token MY_EOF %token SQ /* Single quote: ' */ -%token CHARS +%token CHAR %token IDENTIFIER %token BOOL %token INT @@ -1726,14 +1726,14 @@ qstring : '"' ustring '"' { $$=$2; clicon_debug(2,"string-> \" ustring \ ; /* unquoted string */ -ustring : ustring CHARS +ustring : ustring CHAR { int len = strlen($1); $$ = realloc($1, len+strlen($2) + 1); sprintf($$+len, "%s", $2); free($2); } - | CHARS + | CHAR {$$=$1; } ;