ICG 2
Electric Boogaloo
ParsedDeclaration.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 #include <iostream>
5 #include <deque>
6 #include <vector>
7 
8 
10 
11 
12 
14 
15  public:
16 
17  ParsedDeclaration( std::string s );
18 
19  std::string getTypeSpecifier() const;
20  std::deque<std::string> getQualifiedNameParts() const;
21  std::string getVariableName() const;
22  std::vector<int> getDims() const;
23  std::vector<ParsedDeclaration> getTemplateParams() const;
24 
25  private:
26 
27  bool parseTypeSpecifier(LexicalAnalyzer& lexer);
28  bool parseDeclaration(LexicalAnalyzer& lexer);
29  bool parseDeclarator(LexicalAnalyzer& lexer);
30  bool parseDirectDeclarator(LexicalAnalyzer& lexer);
31  bool parseQualifiedIdentifier(LexicalAnalyzer& lexer);
32  bool parseIdentifier(LexicalAnalyzer& lexer);
33 
34  bool match(Token::e expected_token);
35 
36  void setName(std::string name);
37 
38  std::deque<std::string> qualifiedTypeNameParts;
39  std::vector<ParsedDeclaration> templateParams;
40  std::string typeSpec;
41  std::string varName;
42  std::vector<int> dims;
43 };
44 
Definition: LexicalAnalyzer.hpp:43
Definition: ParsedDeclaration.hpp:13
ParsedDeclaration(std::string s)
Definition: ParsedDeclaration.cpp:22
std::deque< std::string > getQualifiedNameParts() const
Definition: ParsedDeclaration.cpp:367
std::vector< int > getDims() const
Definition: ParsedDeclaration.cpp:376
std::string getVariableName() const
Definition: ParsedDeclaration.cpp:372
std::vector< ParsedDeclaration > getTemplateParams() const
Definition: ParsedDeclaration.cpp:380
std::string getTypeSpecifier() const
Definition: ParsedDeclaration.cpp:363
e
Definition: LexicalAnalyzer.hpp:8