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 static IParsingResult Parse(ParsingContext context) { IParsingResultExtended name = Name.Parse(context); if (name != null) { BareFunctionType type = BareFunctionType.Parse(context); if (type != null) { return(new Function(name, type)); } return(name); } return(SpecialName.Parse(context)); }
public Function(IParsingResultExtended name, BareFunctionType type) { Name = name; Type = type; }