Iisue #181: enable member variable access from expressions in console

This commit is contained in:
Marc Zinnschlag 2012-06-16 13:21:01 +02:00
parent 6c5b21fa42
commit 8b19de17b6
2 changed files with 17 additions and 2 deletions

View file

@ -18,7 +18,10 @@ namespace Compiler
if (!mExplicit.empty()) if (!mExplicit.empty())
{ {
mExprParser.parseName (mExplicit, loc, scanner); mExprParser.parseName (mExplicit, loc, scanner);
mExprParser.parseSpecial (Scanner::S_ref, loc, scanner); if (mState==MemberState)
mExprParser.parseSpecial (Scanner::S_member, loc, scanner);
else
mExprParser.parseSpecial (Scanner::S_ref, loc, scanner);
} }
scanner.scan (mExprParser); scanner.scan (mExprParser);
@ -256,6 +259,7 @@ namespace Compiler
{ {
scanner.putbackKeyword (keyword, loc); scanner.putbackKeyword (keyword, loc);
parseExpression (scanner, loc); parseExpression (scanner, loc);
mState = EndState;
return true; return true;
} }
@ -269,6 +273,7 @@ namespace Compiler
{ {
scanner.putbackKeyword (keyword, loc); scanner.putbackKeyword (keyword, loc);
parseExpression (scanner, loc); parseExpression (scanner, loc);
mState = EndState;
return true; return true;
} }
} }
@ -342,6 +347,7 @@ namespace Compiler
{ {
scanner.putbackKeyword (keyword, loc); scanner.putbackKeyword (keyword, loc);
parseExpression (scanner, loc); parseExpression (scanner, loc);
mState = EndState;
return true; return true;
} }
} }
@ -366,6 +372,14 @@ namespace Compiler
return true; return true;
} }
if (code==Scanner::S_member && mState==PotentialExplicitState)
{
mState = MemberState;
parseExpression (scanner, loc);
mState = EndState;
return true;
}
if (code==Scanner::S_newline && mState==MessageButtonState) if (code==Scanner::S_newline && mState==MessageButtonState)
{ {
Generator::message (mCode, mLiterals, mName, mButtons); Generator::message (mCode, mLiterals, mName, mButtons);
@ -383,6 +397,7 @@ namespace Compiler
{ {
scanner.putbackSpecial (code, loc); scanner.putbackSpecial (code, loc);
parseExpression (scanner, loc); parseExpression (scanner, loc);
mState = EndState;
return true; return true;
} }

View file

@ -24,7 +24,7 @@ namespace Compiler
SetState, SetLocalVarState, SetGlobalVarState, SetState, SetLocalVarState, SetGlobalVarState,
MessageState, MessageCommaState, MessageButtonState, MessageButtonCommaState, MessageState, MessageCommaState, MessageButtonState, MessageButtonCommaState,
EndState, EndState,
PotentialExplicitState, ExplicitState PotentialExplicitState, ExplicitState, MemberState
}; };
Locals& mLocals; Locals& mLocals;