Ejemplo n.º 1
0
                private static FTL.AST.Message Parse(CharStream cs, Context ctx, FTL.AST.StringPrimitive identifier)
                {
                    WhiteSpace.Parse(cs);
                    cs.SkipCharacter('=');
                    WhiteSpace.Parse(cs);

                    FTL.AST.Pattern pattern = null;
                    // check if we have a Pattern available
                    bool hasPattern = Pattern.PeekAndParse(cs, out pattern);

                    FTL.AST.MemberList memberList;
                    bool parsedMemberList = MemberList.PeekAndParse(cs, out memberList);

                    if (!parsedMemberList && !hasPattern)
                    {
                        throw cs.CreateException(
                                  "member-list was expected, as no pattern was found", null);
                    }

                    return(new FTL.AST.Message(identifier, pattern, memberList));
                }