示例#1
0
 public static BnfiTermConversion <TDOut> Convert <TDIn, TDOut>(IBnfiTerm <TDIn> bnfiTerm, ValueConverter <TDIn, TDOut> valueConverter, ValueConverter <TDOut, TDIn> inverseValueConverterForUnparse)
 {
     return(new BnfiTermConversion <TDOut>(
                bnfiTerm.AsBnfTerm(),
                ConvertValueConverterToValueIntroducer(valueConverter),
                CastValueConverter <TDOut, TDIn, TDOut, object>(inverseValueConverterForUnparse),
                defaultValue: default(TDOut),
                isOptionalValue: false,
                name: typeof(TDIn).Name.ToLower() + "_convertTo_" + typeof(TDOut).Name.ToLower(),
                astForChild: true
                ));
 }
示例#2
0
 internal static BnfiTermCollection <TCollectionType, TElementType> MakeStarRule <TCollectionType, TElementType>(BnfiTermCollection <TCollectionType, TElementType> bnfiTermCollection, BnfTerm delimiter, IBnfiTerm <TElementType> element)
     where TCollectionType : ICollection <TElementType>, new()
 {
     return((BnfiTermCollection <TCollectionType, TElementType>)_MakeStarRule(bnfiTermCollection, delimiter, element.AsBnfTerm()));
 }
示例#3
0
 public static Member <TDeclaringType> Bind <TDeclaringType, TMemberElementType, TValueElementType>(IBnfiTerm <TDeclaringType> dummyBnfiTerm,
                                                                                                    Expression <Func <TDeclaringType, IList <TMemberElementType> > > exprForFieldOrPropertyAccess, IBnfiTerm <IEnumerable <TValueElementType> > bnfiTerm)
     where TValueElementType : TMemberElementType
 {
     return(Bind(exprForFieldOrPropertyAccess, bnfiTerm.AsBnfTerm()));
 }
示例#4
0
 public static Member <TDeclaringType> Bind <TDeclaringType, TMemberType, TValueType>(Expression <Func <TDeclaringType, TMemberType> > exprForFieldOrPropertyAccess,
                                                                                      IBnfiTerm <TValueType> bnfiTerm)
     where TValueType : TMemberType
 {
     return(Bind(exprForFieldOrPropertyAccess, bnfiTerm.AsBnfTerm()));
 }
示例#5
0
 public static MemberTL Bind <TMemberElementType, TValueElementType>(Expression <Func <IList <TMemberElementType> > > exprForFieldOrPropertyAccess,
                                                                     IBnfiTerm <IEnumerable <TValueElementType> > bnfiTerm)
     where TValueElementType : TMemberElementType
 {
     return(Bind(exprForFieldOrPropertyAccess, bnfiTerm.AsBnfTerm()));
 }
示例#6
0
 public static BnfiTermNoAst For <T>(IBnfiTerm <T> bnfTerm)
 {
     return(new BnfiTermNoAst(bnfTerm.AsBnfTerm(), BnfiTermConversion.NoUnparseByInverseCreatorFromNoAst <object>()));
 }
示例#7
0
 public static BnfiTermNoAst For <T>(IBnfiTerm <T> bnfTerm, ValueCreatorFromNoAst <T> valueCreatorFromNoAst)
 {
     return(new BnfiTermNoAst(bnfTerm.AsBnfTerm(), CastValueCreator(valueCreatorFromNoAst)));
 }