Exemplo n.º 1
0
 public CocoParseResult(at.jku.ssw.Coco.Parser.CocoToken possibleTokens, string grammarName, IEnumerable <AddTokenInfo> charsets, IEnumerable <AddTokenInfo> tokens, IEnumerable <AddTokenInfo> productions, IDictionary <string, List <AddTokenInfo> > references)
 {
     PossibleTokens = possibleTokens;
     GrammarName    = grammarName;
     CharSets       = charsets;
     Tokens         = tokens;
     Productions    = productions;
     References     = references;
 }
Exemplo n.º 2
0
        /// <summary>
        /// Gets a predefined CocoDeclaration from the static dictionary.
        /// </summary>
        /// <param name="type">The type of the declaration to get.</param>
        /// <returns></returns>
        public static CocoDeclaration GetPredefinedDeclaration(CocoToken type)
        {
            if (predefinedDecls.ContainsKey(type))
            {
                return(predefinedDecls[type]);
            }

            return(predefinedDecls[CocoToken._EMPTY]);
        }
Exemplo n.º 3
0
 private static void AddDeclaration(CocoToken type)
 {
     predefinedDecls.Add(new KeyValuePair <CocoToken, CocoDeclaration>(type, CreateDeclaration(type)));
 }
Exemplo n.º 4
0
        /// <summary>
        /// Creates the declaration for a token.
        /// </summary>
        /// <param name="type">The token.</param>
        /// <returns>The declaration for the given token.</returns>
        public static CocoDeclaration CreateDeclaration(CocoToken type)
        {
            switch (type)
            {
            case CocoToken.Compiler:
                return(CreateDelcarationKW(Resources.KW_Compiler, "COMPILER"));

            case CocoToken.IgnoreCase:
                return(CreateDelcarationKW(Resources.KW_IgnoreCase, "IGNORECASE"));

            case CocoToken.Characters:
                return(CreateDelcarationKW(Resources.KW_Characters, "CHARACTERS"));

            case CocoToken.Tokens:
                return(CreateDelcarationKW(Resources.KW_Tokens, "TOKENS"));

            case CocoToken.Pragmas:
                return(CreateDelcarationKW(Resources.KW_Pragmas, "PRAGMAS"));

            case CocoToken.Comments:
                return(CreateDelcarationKW(Resources.KW_Comments, "COMMENTS"));

            case CocoToken.Comments_From:
                return(CreateDelcarationKW(Resources.KW_From, "FROM"));

            case CocoToken.Comments_To:
                return(CreateDelcarationKW(Resources.KW_To, "TO"));

            case CocoToken.Comments_Nested:
                return(CreateDelcarationKW(Resources.KW_Nested, "NESTED"));

            case CocoToken.Context:
                return(CreateDelcarationKW(Resources.KW_Context, "CONTEXT"));

            case CocoToken.Ignore:
                return(CreateDelcarationKW(Resources.KW_Ignore, "IGNORE"));

            case CocoToken.Any:
                return(CreateDelcarationKW(Resources.KW_Any, "ANY"));

            case CocoToken.Plus:
                return(CreateDelcarationKW(Resources.KW_Plus, "+"));

            case CocoToken.Minus:
                return(CreateDelcarationKW(Resources.KW_Minus, "-"));

            case CocoToken.TokenRange:
                return(CreateDelcarationKW(Resources.KW_TokenRange, ".."));

            case CocoToken.Productions:
                return(CreateDelcarationKW(Resources.KW_Productions, "PRODUCTIONS"));

            case CocoToken.Period:
                return(CreateDelcarationKW(Resources.KW_Period, "."));

            case CocoToken.LPar:
                return(CreateDelcarationKW(Resources.KW_LPar, "("));

            case CocoToken.RPar:
                return(CreateDelcarationKW(Resources.KW_RPar, ")"));

            case CocoToken.LBrack:
                return(CreateDelcarationKW(Resources.KW_LBrack, "["));

            case CocoToken.RBrack:
                return(CreateDelcarationKW(Resources.KW_RBrack, "]"));

            case CocoToken.LBrace:
                return(CreateDelcarationKW(Resources.KW_LBrace, "{"));

            case CocoToken.RBrace:
                return(CreateDelcarationKW(Resources.KW_RBrace, "}"));

            case CocoToken.Alternative:
                return(CreateDelcarationKW(Resources.KW_Alternative, "|"));

            case CocoToken.SemanticActionStart:
                return(CreateDelcarationKW(Resources.KW_SemActionStart, "(."));

            case CocoToken.AttributeStart_1:
                return(CreateDelcarationKW(Resources.KW_AttributeStart1, "<"));

            case CocoToken.AttributeStart_2:
                return(CreateDelcarationKW(Resources.KW_AttributeStart2, "<."));

            case CocoToken.Sync:
                return(CreateDelcarationKW(Resources.KW_Sync, "SYNC"));

            case CocoToken.Weak:
                return(CreateDelcarationKW(Resources.KW_Weak, "WEAK"));

            case CocoToken.If:
                return(CreateDelcarationKW(Resources.KW_If, "IF"));

            case CocoToken.End:
                return(CreateDelcarationKW(Resources.KW_End, "END"));

            default:
                return(new CocoDeclaration("", "", 0, ""));
            }
        }