diff options
author | Liana Husikyan <liana@ethdev.com> | 2015-03-03 19:58:01 +0800 |
---|---|---|
committer | Liana Husikyan <liana@ethdev.com> | 2015-03-16 17:46:46 +0800 |
commit | 67cd3a7180023f613efda64f4f4d2b1bc37990c6 (patch) | |
tree | 2a21e2f726baf19f39e999083158a32f90492cec /Parser.cpp | |
parent | a16677dcfbd7fd7d42fbd6166e234b1b7001ec59 (diff) | |
download | dexon-solidity-67cd3a7180023f613efda64f4f4d2b1bc37990c6.tar dexon-solidity-67cd3a7180023f613efda64f4f4d2b1bc37990c6.tar.gz dexon-solidity-67cd3a7180023f613efda64f4f4d2b1bc37990c6.tar.bz2 dexon-solidity-67cd3a7180023f613efda64f4f4d2b1bc37990c6.tar.lz dexon-solidity-67cd3a7180023f613efda64f4f4d2b1bc37990c6.tar.xz dexon-solidity-67cd3a7180023f613efda64f4f4d2b1bc37990c6.tar.zst dexon-solidity-67cd3a7180023f613efda64f4f4d2b1bc37990c6.zip |
added parsing for constant variables
Diffstat (limited to 'Parser.cpp')
-rw-r--r-- | Parser.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -135,6 +135,7 @@ ASTPointer<ContractDefinition> Parser::parseContractDefinition() } while (m_scanner->getCurrentToken() == Token::Comma); expectToken(Token::LBrace); + bool isDeclaredConst = false; while (true) { Token::Value currentToken = m_scanner->getCurrentToken(); @@ -152,13 +153,21 @@ ASTPointer<ContractDefinition> Parser::parseContractDefinition() VarDeclParserOptions options; options.isStateVariable = true; options.allowInitialValue = true; + options.isDeclaredConst = isDeclaredConst; stateVariables.push_back(parseVariableDeclaration(options)); + isDeclaredConst = false; expectToken(Token::Semicolon); } else if (currentToken == Token::Modifier) modifiers.push_back(parseModifierDefinition()); else if (currentToken == Token::Event) events.push_back(parseEventDefinition()); + else if (currentToken == Token::Const) + { + solAssert(Token::isElementaryTypeName(m_scanner->peekNextToken()), ""); + isDeclaredConst = true; + m_scanner->next(); + } else BOOST_THROW_EXCEPTION(createParserError("Function, variable, struct or modifier declaration expected.")); } @@ -348,7 +357,7 @@ ASTPointer<VariableDeclaration> Parser::parseVariableDeclaration( } return nodeFactory.createNode<VariableDeclaration>(type, identifier, value, visibility, _options.isStateVariable, - isIndexed); + isIndexed, _options.isDeclaredConst); } ASTPointer<ModifierDefinition> Parser::parseModifierDefinition() |