gpt4 book ai didi

javascript - 带有预定义函数和变量的 PEG.js 扩展

转载 作者:搜寻专家 更新时间:2023-11-01 04:16:41 25 4
gpt4 key购买 nike

我看过用于 JavaScript 的 PEG.js 解析器生成器。它看起来很不错!

我在指定语法方面没有太多经验。我正在 1 寻求帮助以扩展示例语法有点允许

  1. 小数
  2. 运营商^
  3. 预定义函数(不是函数声明,只是为了调用我事先指定的一些函数),其中参数本身是一阶表达式,例如f(g(2+4) + 3)
  4. 变量 A-Z(不是声明,只是使用定义——这些是为了指向一个输入框,其中也包含一个程序,字母 A 到 Z 就足够了)

你能帮我看看在哪里可以找到帮助吗?

最佳答案

这是快速演示:

{
variables = {
PI : Math.PI,
E : Math.E
};
functions = {
squared : function(n) { return n * n; },
incr : function(n) { return n + 1; }
}
}

start
= additive

additive
= left:multiplicative "+" right:additive { return left + right; }
/ multiplicative

multiplicative
= left:power "*" right:additive { return left * right; }
/ power

// evaluated left to right!
power
= left:primary "^" right:additive { return Math.pow(left, right); }
/ primary

primary
= integer
/ "(" e:additive ")" { return e; }
/ i:id "(" e:additive ")" { return functions[i.join("")](e); }
/ i:id { return variables[i.join("")]; }

integer
= digits:[0-9]+ { return parseInt(digits.join(""), 10); }

id
= [a-zA-Z]+

如果您现在使用输入测试解析器(在线):

PI+incr(squared(3))^2

你会看到它被评估为:

103.1415926535898

关于javascript - 带有预定义函数和变量的 PEG.js 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26286961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com