protected override void TranslateFunctionDefinition(List <string> output, ParseTree.FunctionDefinition functionDef) { output.Add(this.CurrentTabIndention); output.Add("def v_"); output.Add(functionDef.NameToken.Value); output.Add("("); for (int i = 0; i < functionDef.ArgNames.Length; ++i) { if (i > 0) { output.Add(", "); } output.Add("v_" + functionDef.ArgNames[i].Value); } output.Add("):\r\n"); this.CurrentIndention++; Translate(output, functionDef.Code); this.CurrentIndention--; output.Add("\r\n"); }
protected override void TranslateFunctionDefinition(List <string> output, ParseTree.FunctionDefinition functionDef) { Annotation returnType = functionDef.GetAnnotation("type"); string type = returnType == null ? "Object" : this.JavaPlatform.GetTypeStringFromString(returnType.GetSingleArgAsString(null), false, false); output.Add(this.CurrentTabIndention); output.Add("public static "); output.Add(type); output.Add(" v_"); output.Add(functionDef.NameToken.Value); output.Add("("); for (int i = 0; i < functionDef.ArgNames.Length; ++i) { if (i > 0) { output.Add(", "); } Annotation annotation = functionDef.ArgAnnotations[i]; string argType = annotation == null ? "Object" : annotation.GetSingleArgAsString(null); output.Add(this.JavaPlatform.GetTypeStringFromString(argType, false, false)); output.Add(" v_"); output.Add(functionDef.ArgNames[i].Value); } output.Add(") {"); output.Add(this.NL); this.CurrentIndention++; Executable[] code = functionDef.Code; if (functionDef.GetAnnotation("omitReturn") != null) { Executable[] newCode = new Executable[code.Length - 1]; Array.Copy(code, newCode, newCode.Length); code = newCode; } this.Translate(output, code); this.CurrentIndention--; output.Add(this.CurrentTabIndention); output.Add("}"); output.Add(this.NL); }