Antlr4.Semantics.BasicSemanticChecks.CheckOptions C# (CSharp) Method

CheckOptions() private method

private CheckOptions ( GrammarAST parent, Antlr.Runtime.IToken optionID, GrammarAST valueAST ) : bool
parent Antlr4.Tool.Ast.GrammarAST
optionID Antlr.Runtime.IToken
valueAST Antlr4.Tool.Ast.GrammarAST
return bool
        internal virtual bool CheckOptions(GrammarAST parent,
                             IToken optionID,
                             GrammarAST valueAST)
        {
            bool ok = true;
            if (parent.Type == ANTLRParser.BLOCK)
            {
                if (g.IsLexer() && !Grammar.LexerBlockOptions.Contains(optionID.Text))
                { // block
                    g.tool.errMgr.GrammarError(ErrorType.ILLEGAL_OPTION,
                                               g.fileName,
                                               optionID,
                                               optionID.Text);
                    ok = false;
                }
                if (!g.IsLexer() && !Grammar.ParserBlockOptions.Contains(optionID.Text))
                { // block
                    g.tool.errMgr.GrammarError(ErrorType.ILLEGAL_OPTION,
                                               g.fileName,
                                               optionID,
                                               optionID.Text);
                    ok = false;
                }
            }
            else if (parent.Type == ANTLRParser.RULE)
            {
                if (!Grammar.ruleOptions.Contains(optionID.Text))
                { // rule
                    g.tool.errMgr.GrammarError(ErrorType.ILLEGAL_OPTION,
                                               g.fileName,
                                               optionID,
                                               optionID.Text);
                    ok = false;
                }
            }
            else if (parent.Type == ANTLRParser.GRAMMAR &&
                      !LegalGrammarOption(optionID.Text))
            { // grammar
                g.tool.errMgr.GrammarError(ErrorType.ILLEGAL_OPTION,
                                           g.fileName,
                                           optionID,
                                           optionID.Text);
                ok = false;
            }

            return ok;
        }