static bool is_interpolation_qualifier(const std::string &);
static bool is_precision_qualifier(const std::string &);
static bool is_qualifier(const std::string &);
static bool is_interpolation_qualifier(const std::string &);
static bool is_precision_qualifier(const std::string &);
static bool is_qualifier(const std::string &);
RefPtr<Layout> parse_layout();
template<typename T>
void parse_block(Block &, bool, RefPtr<T> (Parser::*)());
RefPtr<Layout> parse_layout();
template<typename T>
void parse_block(Block &, bool, RefPtr<T> (Parser::*)());
RefPtr<StructDeclaration> parse_struct_declaration();
RefPtr<VariableDeclaration> parse_variable_declaration();
RefPtr<VariableDeclaration> parse_variable_declaration_with_layout();
RefPtr<StructDeclaration> parse_struct_declaration();
RefPtr<VariableDeclaration> parse_variable_declaration();
RefPtr<VariableDeclaration> parse_variable_declaration_with_layout();