Envision
A visual programming IDE for object-oriented languages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
Interaction::Parser Class Reference

Public Member Functions

 Parser (const OperatorDescriptorList *ops)
 
QVector< ExpressionTreeBuildInstruction * > parse (QVector< Token > tokens)
 

Private Member Functions

QVector< ExpressionTreeBuildInstruction * > parse (QVector< Token > tokens, ParseResult &parseResult)
 
ParseResult parse (QVector< Token >::iterator token, ParseResult result, QList< ExpectedToken > &expected, bool hasLeft, QVector< ExpressionTreeBuildInstruction * > &instructions, ParseResult &bestParseSoFar)
 
ParseResult processExpectedOperatorDelimiters (bool &processed, QList< ExpectedToken > &expected, QVector< Token >::iterator &token, ParseResult &result, QVector< ExpressionTreeBuildInstruction * > &instructions, ParseResult &bestParseSoFar)
 
void processIdentifiersAndLiterals (bool &error, QList< ExpectedToken > &expected, QVector< Token >::iterator &token, bool &hasLeft, QVector< ExpressionTreeBuildInstruction * > &instructions)
 
void processNewOperatorDelimiters (bool &processed, bool &error, QList< ExpectedToken > &expected, QVector< Token >::iterator &token, bool &hasLeft, ParseResult &result, QVector< ExpressionTreeBuildInstruction * > &instructions, ParseResult &bestParseSoFar, bool unexpectedIdentifierOrLiteral)
 
void processSubExpression (bool &error, QList< ExpectedToken > &expected, QVector< Token >::iterator &token, bool &hasLeft, ParseResult &result, QVector< ExpressionTreeBuildInstruction * > &instructions)
 

Private Attributes

QVector< Token >::iterator endTokens_
 
const OperatorDescriptorListops_
 

Constructor & Destructor Documentation

◆ Parser()

Interaction::Parser::Parser ( const OperatorDescriptorList ops)

Member Function Documentation

◆ parse() [1/3]

QVector< ExpressionTreeBuildInstruction * > Interaction::Parser::parse ( QVector< Token tokens)

◆ parse() [2/3]

QVector< ExpressionTreeBuildInstruction * > Interaction::Parser::parse ( QVector< Token tokens,
ParseResult parseResult 
)
private

◆ parse() [3/3]

ParseResult Interaction::Parser::parse ( QVector< Token >::iterator  token,
ParseResult  result,
QList< ExpectedToken > &  expected,
bool  hasLeft,
QVector< ExpressionTreeBuildInstruction * > &  instructions,
ParseResult bestParseSoFar 
)
private

◆ processExpectedOperatorDelimiters()

ParseResult Interaction::Parser::processExpectedOperatorDelimiters ( bool &  processed,
QList< ExpectedToken > &  expected,
QVector< Token >::iterator &  token,
ParseResult result,
QVector< ExpressionTreeBuildInstruction * > &  instructions,
ParseResult bestParseSoFar 
)
private

◆ processIdentifiersAndLiterals()

void Interaction::Parser::processIdentifiersAndLiterals ( bool &  error,
QList< ExpectedToken > &  expected,
QVector< Token >::iterator &  token,
bool &  hasLeft,
QVector< ExpressionTreeBuildInstruction * > &  instructions 
)
private

◆ processNewOperatorDelimiters()

void Interaction::Parser::processNewOperatorDelimiters ( bool &  processed,
bool &  error,
QList< ExpectedToken > &  expected,
QVector< Token >::iterator &  token,
bool &  hasLeft,
ParseResult result,
QVector< ExpressionTreeBuildInstruction * > &  instructions,
ParseResult bestParseSoFar,
bool  unexpectedIdentifierOrLiteral 
)
private

◆ processSubExpression()

void Interaction::Parser::processSubExpression ( bool &  error,
QList< ExpectedToken > &  expected,
QVector< Token >::iterator &  token,
bool &  hasLeft,
ParseResult result,
QVector< ExpressionTreeBuildInstruction * > &  instructions 
)
private

Member Data Documentation

◆ endTokens_

QVector<Token>::iterator Interaction::Parser::endTokens_
private

◆ ops_

const OperatorDescriptorList* Interaction::Parser::ops_
private