private Statement(Node parsedNode)
{
StartLine = parsedNode.line;
EndLine = parsedNode.endLine;
CurrentType = GetStatementType(parsedNode);
AstNode = parsedNode;
if (parsedNode is BinaryExpressionNode)
{
//First get all the defined variables
while (parsedNode is BinaryExpressionNode)
{
IdentifierNode assignedVar = GetDefinedIdentifier((parsedNode as BinaryExpressionNode).LeftNode);
if (assignedVar != null)
{
definedVariables.Add(new Variable(assignedVar));
}
parsedNode = (parsedNode as BinaryExpressionNode).RightNode;
}
//Then get the referenced variables
List <Variable> refVariableList = new List <Variable>();
GetReferencedVariables(parsedNode, refVariableList);
referencedVariables = refVariableList;
}
else if (parsedNode is FunctionDefinitionNode)
{
// Handle function definitions in CBN
}
else
{
throw new ArgumentException("Must be func def or assignment");
}
Variable.SetCorrectColumn(referencedVariables, CurrentType, StartLine);
}