Ejemplo n.º 1
0
        public void Analyze(INode node, QLContext context)
        {
            Context = context;
            Analyze((dynamic)node);

            LabelChecker.Check(Result);
        }
Ejemplo n.º 2
0
        public void Analyze(INode node, QLContext context)
        {
            Context = context;
            var messages = new List <Message>();

            node.CheckSemantics(context, messages);

            foreach (var message in messages)
            {
                Result.AddEvent(message);
            }
        }
Ejemplo n.º 3
0
        protected void AnalyzeAstNode(INode node)
        {
            var Context = new QLContext();

            // Get and check question declarations
            var declarationValidator = new DeclarationValidator(Result);

            declarationValidator.Analyze(node, Context);
            if (!Result.ContainsErrors()) // Only apply type checking if the declaration validator passed
            {
                var typeChecker = new TypeChecker(Result);
                typeChecker.Analyze(node, Context);
            }
        }