ExpressionParser constructor

ExpressionParser()

Implementation

ExpressionParser() {
  expression = SettableParser<Expression>(undefined<Expression>());
  token = SettableParser<Expression>(undefined<Expression>());

  token.set(
    literal()
        .or(unaryExpression())
        .or(variable())
        .or(partialVariable())
        .cast<Expression>(),
  );

  expression.set(
    binaryExpression()
        .seq(conditionArguments().optional())
        .map((l) {
      if (l[1] == null) return l[0];
      return ConditionalExpression(l[0], l[1][0], l[1][1])
        ..start = l[0].start
        ..end = l[1][1].end;
    }),
  );
}