mirror of
https://github.com/WerWolv/ImHex.git
synced 2026-03-29 00:10:02 -05:00
patterns: Added basic support for in/out variables
This commit is contained in:
@@ -1024,16 +1024,22 @@ namespace hex::pl {
|
||||
|
||||
// (parseType) Identifier @ Integer
|
||||
ASTNode* Parser::parseVariablePlacement(ASTNodeTypeDecl *type) {
|
||||
bool inVariable = false;
|
||||
bool outVariable = false;
|
||||
|
||||
auto name = getValue<Token::Identifier>(-1).get();
|
||||
|
||||
ASTNode *placementOffset;
|
||||
ASTNode *placementOffset = nullptr;
|
||||
if (MATCHES(sequence(OPERATOR_AT))) {
|
||||
placementOffset = parseMathematicalExpression();
|
||||
} else {
|
||||
placementOffset = nullptr;
|
||||
} else if (MATCHES(sequence(KEYWORD_IN))) {
|
||||
inVariable = true;
|
||||
}
|
||||
else if (MATCHES(sequence(KEYWORD_OUT))) {
|
||||
outVariable = true;
|
||||
}
|
||||
|
||||
return create(new ASTNodeVariableDecl(name, type, placementOffset));
|
||||
return create(new ASTNodeVariableDecl(name, type, placementOffset, inVariable, outVariable));
|
||||
}
|
||||
|
||||
// (parseType) Identifier[[(parseMathematicalExpression)]] @ Integer
|
||||
|
||||
Reference in New Issue
Block a user