Flutter Dart 解析高级表达式



我有很多表达式的字符串,必须返回真或假。我尝试使用此库来执行此操作:https://pub.dev/packages/expression_language/example 但是字符串存在一些问题。

这是库中的代码示例:

import 'package:expression_language/expression_language.dart';
void main() {
var input = '"Hello 1 + 1 equals: " +  (1 + 1)'
var expressionGrammarDefinition = ExpressionGrammarParser({});
var parser = expressionGrammarDefinition.build();
var result = parser.parse(input);
var expression = result.value as Expression;
var value = expression.evaluate();
print(value);
}

输出为:Hello 1 + 1 equals: 2

但是我的表达式更复杂,例如:

input = '(!"Dog" == "Cat")';
input = '(1+1) || ("Dog" == "Dog")';
input = '(1+1) + ("2" * 2)';

我可以使用expression_language库来解析它吗?也许存在更好的解决方案?

expression_language是用petitparser构建的,这是一个非常灵活的通用解析器。 如果你学会了petitparser,你将能够构建任何东西! (你可能永远不会在Dart中编写另一个正则表达式。

最新更新