- void parse_block(Block &, bool);
- RefPtr<Expression> parse_expression(unsigned = 0);
- RefPtr<BinaryExpression> parse_binary(const RefPtr<Expression> &, const Operator *);
+ template<typename T>
+ void parse_block(Block &, bool, RefPtr<T> (Parser::*)());
+ RefPtr<Expression> parse_expression(const Operator * = 0);
+ RefPtr<Literal> parse_literal();
+ RefPtr<BinaryExpression> parse_binary(const RefPtr<Expression> &, const Operator &);
+ RefPtr<TernaryExpression> parse_ternary(const RefPtr<Expression> &, const Operator &);