std::string expect_type();
std::string expect_identifier();
+ int expect_integer();
bool check(const std::string &);
static bool is_interface_qualifier(const std::string &);
RefPtr<Import> parse_import();
RefPtr<Precision> parse_precision();
RefPtr<Layout> parse_layout();
- void parse_block(Block &, bool);
+ template<typename T>
+ void parse_block(Block &, bool, RefPtr<T> (Parser::*)());
RefPtr<Expression> parse_expression(unsigned = 0);
RefPtr<BinaryExpression> parse_binary(const RefPtr<Expression> &, const Operator *);
RefPtr<FunctionCall> parse_function_call(const VariableReference &);
RefPtr<StructDeclaration> parse_struct_declaration();
RefPtr<VariableDeclaration> parse_variable_declaration();
+ RefPtr<VariableDeclaration> parse_variable_declaration_with_layout();
RefPtr<FunctionDeclaration> parse_function_declaration();
RefPtr<InterfaceBlock> parse_interface_block();
RefPtr<Conditional> parse_conditional();