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)); }
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); }
public FunctionType(BareFunctionType bareType, CvQualifiers cvQualifiers, RefQualifier refQualifier, bool transactionSafe, bool externC) { CvQualifiers = cvQualifiers; TransactionSafe = transactionSafe; ExternC = externC; BareType = bareType; RefQualifier = refQualifier; }
public NestedName(IParsingResultExtended prefix, CvQualifiers cvQualifiers, RefQualifier refQualifier) { Prefix = prefix; CvQualifiers = cvQualifiers; RefQualifier = refQualifier; }