protected CodegenProperty( Type returnType, string returnTypeName, Type generator, CodegenSymbolProvider optionalSymbolProvider, CodegenScope env) { if (generator == null) { throw new ArgumentException("Invalid null generator"); } ReturnType = returnType; ReturnTypeName = returnTypeName; OptionalSymbolProvider = optionalSymbolProvider; Block = new CodegenBlock(); // no return from the property block GetterStatement = new Getter(Block); SetterStatement = new Getter(Block); GetterBlock = new CodegenBlock(GetterStatement); SetterBlock = new CodegenBlock(SetterStatement); if (env.IsDebug) { AdditionalDebugInfo = GetGeneratorDetail(generator); } else { AdditionalDebugInfo = generator.GetSimpleName(); } }
public CodegenExpression Make( CodegenMethodScope parent, CodegenSymbolProvider symbols, CodegenClassScope classScope) { return Make(parent, (SAIFFInitializeSymbol) symbols, classScope); }
public CodegenMethod AddMethodWithSymbols( Type returnType, string methodName, IList<CodegenNamedParam> @params, Type generator, CodegenClassScope classScope, Consumer<CodegenMethod> code, CodegenSymbolProvider symbolProvider) { if (_methods == null) { _methods = new Dictionary<string, CodegenMethod>(); } var existing = _methods.Get(methodName); if (existing != null) { if (ListExtensions.AreEqual(@params, existing.LocalParams)) { return existing; } throw new IllegalStateException("Method by name '" + methodName + "' already registered"); } var method = CodegenMethod .MakeMethod(returnType, generator, symbolProvider, classScope) .AddParam(@params); method.Block.DebugStack(); _methods.Put(methodName, method); code.Invoke(method); return method; }
public CodegenProperty AddPropertyWithSymbols( Type returnType, string propertyName, Type generator, CodegenClassScope classScope, Consumer<CodegenProperty> code, CodegenSymbolProvider symbolProvider) { var existing = _properties.Get(propertyName); if (existing != null) { if (existing.ReturnType == returnType) { return existing; } throw new IllegalStateException("Property by name '" + propertyName + "' already registered"); } var property = CodegenProperty.MakePropertyNode( returnType, generator, symbolProvider, classScope); _properties.Put(propertyName, property); code.Invoke(property); return property; }
public CodegenExpression Make( CodegenMethodScope parent, CodegenSymbolProvider symbols, CodegenClassScope classScope) { throw new UnsupportedOperationException("not supported for merge forge"); }
public CodegenExpression Make( CodegenMethodScope parent, CodegenSymbolProvider symbolsArg, CodegenClassScope classScope) { var symbols = (SAIFFInitializeSymbol) symbolsArg; var itemsAsMakeables = Items.Transform< CodegenMakeable, CodegenMakeable, TableLookupIndexReqKey, QueryPlanIndexItemForge>( k => k, v => v, k => (TableLookupIndexReqKey) k, v => (QueryPlanIndexItemForge) v); return NewInstance<QueryPlanIndex>( CodegenMakeableUtil.MakeMap( "items", typeof(TableLookupIndexReqKey), typeof(QueryPlanIndexItem), itemsAsMakeables, GetType(), parent, symbols, classScope)); }
public static CodegenMethod MakeParentNode( Type returnType, Type generator, CodegenSymbolProvider symbolProvider, CodegenScope env) { return MakeParentNode(returnType.FullName, generator, symbolProvider, env); }
public CodegenExpression Make( CodegenMethodScope parent, CodegenSymbolProvider symbols, CodegenClassScope classScope) { return NewInstance<TableLookupIndexReqKey>( Constant(IndexName), Constant(IndexModuleName), Constant(TableName)); }
public CodegenProperty MakeChildWithScope( string returnType, Type generator, CodegenSymbolProvider symbolProvider, CodegenScope env) { if (returnType == null) { throw new ArgumentException("Invalid null return type"); } return AddChild(new CodegenProperty(null, returnType, generator, symbolProvider, env)); }
public CodegenExpression Make( CodegenMethodScope parent, CodegenSymbolProvider symbols, CodegenClassScope classScope) { return new SAIFFInitializeBuilder( typeof(MyFlushedSimpleViewFactory), GetType(), "factory", parent, (SAIFFInitializeSymbol) symbols, classScope) .Eventtype("eventType", EventType) .Build(); }
public static CodegenProperty MakePropertyNode( string returnTypeName, Type generator, CodegenSymbolProvider symbolProvider, CodegenScope env) { if (returnTypeName == null) { throw new ArgumentException("Invalid null return type"); } if (symbolProvider == null) { throw new ArgumentException("No symbol provider"); } return new CodegenProperty(null, returnTypeName, generator, symbolProvider, env); }
public static CodegenMethod MakeMethod( Type returnType, Type generator, CodegenSymbolProvider symbolProvider, CodegenScope env) { if (returnType == null) { throw new ArgumentException("Invalid null return type"); } if (symbolProvider == null) { throw new ArgumentException("No symbol provider"); } return new CodegenMethod(returnType, null, generator, symbolProvider, env); }
protected CodegenMethod( Type returnType, string returnTypeName, Type generator, CodegenSymbolProvider optionalSymbolProvider, CodegenScope env) { if (generator == null) { throw new ArgumentException("Invalid null generator"); } ReturnType = returnType; ReturnTypeName = returnTypeName; OptionalSymbolProvider = optionalSymbolProvider; Block = new CodegenBlock(this); if (env.IsDebug) { AdditionalDebugInfo = GetGeneratorDetail(generator); } else { AdditionalDebugInfo = generator.GetSimpleName(); } }