public void DoSemantics() { SemanticsVisitor visitor = new SemanticsVisitor(); Console.WriteLine("Starting semantic checking"); visitor.CheckSemantics(CurrentSemanticValue); }
//check if Identifier is declared in Symbol table and assignable public override void VisitNode(Identifier node) { SemanticsVisitor visitor = new SemanticsVisitor(); node.Accept(visitor); if (!isAssignable(node.AttributesRef)) { node.TypeRef = new ErrorTypeDescriptor(); node.AttributesRef = null; } }