Parcourir la source

fix: use more robust regex to get underscores in JS

Sebastian Bensusan il y a 4 ans
Parent
commit
d4fd6acd28
2 fichiers modifiés avec 5 ajouts et 4 suppressions
  1. 2 2
      src/main/grammar/calc.bnf
  2. 3 2
      src/test/frontend/extensions/calc_test.cljc

+ 2 - 2
src/main/grammar/calc.bnf

@@ -20,6 +20,6 @@ asin = <#'\s*'> <'asin('> expr <')'> <#'\s*'>
 <term> = scientific | number | variable | <#'\s*'> <'('> expr <')'> <#'\s*'>
 scientific = #'\s*[0-9]+\.?[0-9]*(e|E)-?[0-9]+()\s*'
 number = #'\s*[0-9]+\.?[0-9]*()\s*'
-variable = #'\s*[[a-zA-Z]+\_*[a-zA-Z]*]*\s*'
-toassign = #'\s*[[a-zA-Z]+\_*[a-zA-Z]*]*\s*'
+variable = #'\s*[[a-zA-Z]+[\_*[a-zA-Z]*]*]*\s*'
+toassign = #'\s*[[a-zA-Z]+[\_*[a-zA-Z]*]*]*\s*'
 assignment = toassign <#'\s*'> <'='> <#'\s*'> expr

+ 3 - 2
src/test/frontend/extensions/calc_test.cljc

@@ -80,8 +80,9 @@
     (are [final-env expr] (let [env (calc/new-env)]
                             (calc/eval env (calc/parse expr))
                             (= final-env @env))
-      {"a_a" 1}          "a_a = 1"
-      {"foo_bar_baz" 1}  "foo_bar_baz = 1 + 0 * 2"))
+      {"a_a" 1}         "a_a = 1"
+      {"x_yy_zzz" 1}    "x_yy_zzz= 1"
+      {"foo_bar_baz" 1} "foo_bar_baz = 1 + 0 * 2"))
   (testing "variables can be reused"
     (are [final-env exprs] (let [env (calc/new-env)]
                              (doseq [expr exprs]