From 433b03a59daa61c7c0c5b28b7ecbaa64c034d0f0 Mon Sep 17 00:00:00 2001 From: Werner Almesberger Date: Sat, 28 Apr 2012 11:57:47 -0300 Subject: [PATCH] b2/: allow ...% to be recognized as a single WORD (for values) --- b2/CHAR | 4 ++-- b2/lang.l | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/b2/CHAR b/b2/CHAR index a1126bd..4e3a66c 100644 --- a/b2/CHAR +++ b/b2/CHAR @@ -1,2 +1,2 @@ -FOO R101X FP=0603 R=100R TOL=5x -FOO R102Y FP=0603 R=1k TOL=1x +FOO R101X FP=0603 R=100R TOL=5% +FOO R102Y FP=0603 R=1k TOL=1% diff --git a/b2/lang.l b/b2/lang.l index be252dd..c2b9744 100644 --- a/b2/lang.l +++ b/b2/lang.l @@ -46,6 +46,14 @@ void parse_characteristics(void) %} + +/* + * We use ID for a bit of a hack: let %... be recognized as '%' WORD but treat + * ...% still as a single WORD. + */ + +ID [-_A-Za-z0-9()+./] + %% %{ @@ -57,7 +65,7 @@ void parse_characteristics(void) } %} -[-_A-Za-z0-9()+./]+ { yylval.s = unique(yytext); +{ID}({ID}|"%")* { yylval.s = unique(yytext); return WORD; } "<=" return TOK_LE;