示例#1
0
        public static IParsingResultExtended Parse(ParsingContext context)
        {
            RewindState rewind = context.RewindState;

            if (!context.Parser.VerifyString("N"))
            {
                return(null);
            }

            CvQualifiers           cvQualifiers = CvQualifiers.Parse(context);
            RefQualifier           refQualifier = RefQualifier.Parse(context);
            IParsingResultExtended prefix       = Parsers.Prefix.Parse(context);

            if (prefix == null)
            {
                context.Rewind(rewind);
                return(null);
            }

            if (!(prefix is Parsers.Prefix.NestedName) && !(prefix is Parsers.Prefix.Template))
            {
                context.Rewind(rewind);
                return(null);
            }

            if (!context.Parser.VerifyString("E"))
            {
                context.Rewind(rewind);
                return(null);
            }

            return(new NestedName(prefix, cvQualifiers, refQualifier));
        }
示例#2
0
        public static IParsingResultExtended Parse(ParsingContext context)
        {
            RewindState  rewind          = context.RewindState;
            CvQualifiers cvQualifiers    = CvQualifiers.Parse(context);
            bool         transactionSafe = context.Parser.VerifyString("Dx");

            if (context.Parser.VerifyString("F"))
            {
                bool             externC  = context.Parser.VerifyString("Y");
                BareFunctionType bareType = BareFunctionType.Parse(context);

                if (bareType != null)
                {
                    RefQualifier refQualifier = RefQualifier.Parse(context);

                    if (context.Parser.VerifyString("E"))
                    {
                        return(new FunctionType(bareType, cvQualifiers, refQualifier, transactionSafe, externC));
                    }
                }
            }

            context.Rewind(rewind);
            return(null);
        }
示例#3
0
 public FunctionType(BareFunctionType bareType, CvQualifiers cvQualifiers, RefQualifier refQualifier, bool transactionSafe, bool externC)
 {
     CvQualifiers    = cvQualifiers;
     TransactionSafe = transactionSafe;
     ExternC         = externC;
     BareType        = bareType;
     RefQualifier    = refQualifier;
 }
示例#4
0
 public NestedName(IParsingResultExtended prefix, CvQualifiers cvQualifiers, RefQualifier refQualifier)
 {
     Prefix       = prefix;
     CvQualifiers = cvQualifiers;
     RefQualifier = refQualifier;
 }