27 #ifndef SCHNEK_PARSERTOKEN_HPP_ 28 #define SCHNEK_PARSERTOKEN_HPP_ 30 #include "parsercontext.hpp" 31 #include "tokenlist.hpp" 32 #include "../variables/types.hpp" 33 #include "../variables/expression.hpp" 35 #include "../exception.hpp" 37 #include <boost/shared_ptr.hpp> 38 #include <boost/variant/apply_visitor.hpp> 46 typedef boost::shared_ptr<ParserToken> pParserToken;
55 std::string getFilename() {
return atomToken.
getFilename(); }
56 int getLine() {
return atomToken.
getLine(); }
64 deck, blocklist, block, statementlist, statement,
65 expression, expressionlist, value, int_type, float_type, string_type, atom, none
73 TokenType getType()
const;
74 std::string getString()
const {
return atomTok.getString(); }
84 template<
template<
class>
class OpType>
87 template<
template<
class>
class OpType>
90 void makeExpressionList();
97 void updateVariable();
108 ExpressionVariant data;
111 pParserToken chainedToken;
115 inline std::string toString(ParserToken::TokenType type)
119 case ParserToken::deck:
121 case ParserToken::blocklist:
123 case ParserToken::block:
125 case ParserToken::statementlist:
126 return "statementlist";
127 case ParserToken::statement:
129 case ParserToken::expression:
131 case ParserToken::expressionlist:
132 return "expressionlist";
133 case ParserToken::value:
135 case ParserToken::int_type:
137 case ParserToken::float_type:
139 case ParserToken::string_type:
140 return "string_type";
141 case ParserToken::atom:
143 case ParserToken::none:
146 return "[Unknown ParserToken::TokenType]";
157 ExpressionVariant result1;
158 ExpressionVariant result2;
161 template<
class ExpressionPo
inter1,
class ExpressionPo
inter2>
162 void operator()(ExpressionPointer1 e1, ExpressionPointer2 e2);
164 template<
class ExpressionPo
inter>
165 void operator()(ExpressionPointer e1, ExpressionPointer e2);
167 const ExpressionVariant &getResultA() {
return result1; }
168 const ExpressionVariant &getResultB() {
return result2; }
177 template<
class ExpressionPo
inter1,
class ExpressionPo
inter2>
178 ExpressionVariant operator()(ExpressionPointer1, ExpressionPointer2 e2);
180 template<
class ExpressionPo
inter>
181 ExpressionVariant operator()(ExpressionPointer, ExpressionPointer e2);
185 #include "parsertoken.t" 189 #endif // SCHNEK_PARSERTOKEN_HPP_ Definition: parsertoken.hpp:60
std::string getFilename() const
Returns the name of the file from which the token was read.
Definition: tokenlist.hpp:70
Definition: parsertoken.hpp:49
Definition: parsercontext.hpp:39
int getLine() const
Returns the line number where the token was encountered.
Definition: tokenlist.hpp:76
Definition: tokenlist.hpp:43
Definition: exception.hpp:33