public override void EmitCpp(CppEmitContext cec) { base.EmitCpp(cec); if ((this.ModFlags & Modifiers.STATIC) != 0) { cec.Buf.Write("\tstatic ", Location); } else { cec.Buf.Write("\t", Location); } if (cec.Pass == CppPasses.CLASSDEF) { cec.Buf.Write(cec.MakeCppFullTypeName(this.ReturnType), " ", this.MethodName.Name, "("); parameters.EmitCpp(cec); cec.Buf.Write(");\n"); } else { cec.Buf.Write(cec.MakeCppFullTypeName(this.ReturnType), " ", cec.MakeCppTypeName(Parent.CurrentType, false), "::", this.MethodName.Name, "("); parameters.EmitCpp(cec); cec.Buf.Write(") "); if (MethodData != null) { MethodData.EmitCpp(Parent, cec); } Block = null; cec.Buf.Write("\n"); } }
public override void EmitCpp(CppEmitContext cec) { if (cec.Pass == CppPasses.CLASSDEF) { cec.Buf.Write("\t", cec.MakeCppFullTypeName(this.Property.MemberType), " get_", Property.MemberName.Name, "();\n"); } else { cec.Buf.Write("\t", cec.MakeCppFullTypeName(this.Property.MemberType), cec.MakeCppTypeName(Parent.CurrentType, false), "::", " get_", Property.MemberName.Name, "() ", Location); method_data.EmitCpp(Parent as TypeDefinition, cec); cec.Buf.Write("\n"); block = null; } }
protected override void DoEmitCpp(CppEmitContext cec) { if (Initializer != null) { cec.Buf.Write("\t", loc); Initializer.EmitCpp(cec); } else { cec.Buf.Write("\t", cec.MakeCppFullTypeName(this.type), " ", Variable.Name, loc); } if (declarators != null) { foreach (var d in declarators) { cec.Buf.Write(", "); if (d.Initializer != null) { d.Initializer.EmitCpp(cec); } else { cec.Buf.Write(d.Variable.Name); } } } cec.Buf.Write(";\n"); }
public override void EmitCpp(CppEmitContext cec) { cec.Buf.Write("new ", cec.MakeCppFullTypeName(Type, false), "(", Location); if (arguments != null) { arguments.EmitCpp(cec); } cec.Buf.Write(")"); }
public override void EmitCpp(CppEmitContext cec) { if (IsStatic) { cec.Buf.Write(cec.MakeCppFullTypeName(best_candidate.DeclaringType, false), loc); } else { InstanceExpression.EmitCpp(cec); } cec.Buf.Write("->", "get_", best_candidate.Name, "()", loc); }
public override void EmitCpp(CppEmitContext cec) { if (cec.Pass == CppPasses.CLASSDEF) { var parms = this.ParameterInfo; cec.Buf.Write("\tvoid set_", Property.MemberName.Name, "("); cec.Buf.Write(cec.MakeCppFullTypeName(((Parameter)parms [0]).Type), " ", parms [0].Name); cec.Buf.Write(");\n"); } else { var parms = this.ParameterInfo; cec.Buf.Write("\tvoid set_", cec.MakeCppTypeName(Parent.CurrentType, false), "::", Property.MemberName.Name, "("); cec.Buf.Write(cec.MakeCppFullTypeName(((Parameter)parms [0]).Type), " ", parms [0].Name); cec.Buf.Write(") ", Location); method_data.EmitCpp(Parent as TypeDefinition, cec); cec.Buf.Write("\n"); block = null; } }
public override void EmitAssignCpp(CppEmitContext cec, Expression source, bool leave_copy, bool isCompound) { if (IsStatic) { cec.Buf.Write(cec.MakeCppFullTypeName(best_candidate.DeclaringType, false), loc); } else { InstanceExpression.EmitCpp(cec); } cec.Buf.Write("->", "set_", best_candidate.Name, "("); source.EmitCpp(cec); cec.Buf.Write(")", loc); }
public override void EmitCpp(CppEmitContext cec) { cec.Buf.Write("\t", cec.MakeCppFullTypeName(MemberType), " ", Name, Location); if (initializer != null) { ResolveContext rc = new ResolveContext(this); var expr = initializer.Resolve(rc); if (expr != null) { cec.Buf.Write(" = "); expr.EmitCpp(cec); } } cec.Buf.Write(";\n"); }
public void EmitCpp(CppEmitContext cec) { bool first = true; foreach (var p in this.FixedParameters) { var param = p as Parameter; if (param != null) { if (!first) { cec.Buf.Write(", "); } cec.Buf.Write(cec.MakeCppFullTypeName(param.Type), " ", param.Name); first = false; } } }
public override void EmitCpp(CppEmitContext cec) { // Write CPP literal code for __cpp__() invocation. if (expr is SimpleName && ((SimpleName)expr).Name == "__cpp__" && arguments.Count == 1 && arguments[0].Expr is StringLiteral) { cec.Buf.Write(((StringLiteral)arguments[0].Expr).Value); return; } if (expr != null) { if (mg.IsStatic && expr is TypeExpr) { cec.Buf.Write(cec.MakeCppFullTypeName(((TypeExpr)expr).Type, false), "::", Location); } else { expr.EmitCpp(cec); } } mg.EmitCallCpp(cec, arguments); }
public override void EmitCpp(CppEmitContext cec) { cec.Buf.Write(cec.MakeCppFullTypeName(type), Location); }
public override void EmitCpp(CppEmitContext cec) { cec.Buf.Write("(", cec.MakeCppFullTypeName(Type), ")(", loc); Child.EmitCpp(cec); cec.Buf.Write(")"); }