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;