Exemple #1
0
// Parse a call expression. This is a subroutine of the postfix
// expression parser.
//
//    postfix-expression:
//      postfix-expression '(' [expression-list] ')'
Expr&
Parser::call_expression(Expr& e)
{
  Expr_list es;
  require(tk::lparen_tok);
  if (lookahead() != tk::rparen_tok)
    es = expression_list();
  match(tk::rparen_tok);
  return on_call_expression(e, es);
}
Exemple #2
0
Expr&
Parser::tuple_expression()
{
  Expr_list es;
  require(tk::lbrace_tok);
  if (lookahead() != tk::rbrace_tok)
    es = expression_list();
  match(tk::rbrace_tok);
  return on_tuple_expression(es);
}
bool solve(Exprs... exprs) {
  Generator gen;
  for (auto e : expression_list(exprs...)) gen(e);
  return gen.next();
}