public string ParseCode(Translator translator, TreeReader reader) { var data = new List <string>(); foreach (var arg in Args) { data.Add(translator.Emulate(arg, false)); } if ( Value.Args.Count == 1 && Value.Args[0].IsDotUsed && (Value.Args[0].Body[0] is VariableLexeme variableLexeme && variableLexeme.Value == "init") ) { return($"new TENGRI_{Value.Value}(new dynamic[] {{{string.Join(",", data)}}})" + (translator.InBlock ? ";" : "")); } if (Value.Value == "throw" && Args.Count == 1) { var variable = translator.Emulate(Args[0], false); return($"throw {variable};"); } var main = Value.BuildVar(translator); return($"{main}(new dynamic[] {{{string.Join(",", data)}}})" + (translator.InBlock ? ";" : "")); }
public string ParseCode(Translator translator, TreeReader reader) { var variable = Left.BuildVar(translator); if (translator.ClassName != null) { return($"{variable} {Operator} {translator.Emulate(Right, false)}" + (translator.InBlock ? ";" : "")); } else if (translator.ClassName == null && Operator == "=") { return($"class SYS_TENGRI_GLOBAL_{Left.Value} {{ public static dynamic {variable} = {translator.Emulate(Right, false)};}}"); } return(null); }
public string ParseCode(Translator translator, TreeReader reader) { return($"foreach (dynamic TENGRI_{VarName} in {Array.BuildVar(translator)}.TENGRI_invoke()) {{{translator.Emulate(Block, true, translator.IsStaticBlock)}}}"); }