private void printEntry(int index, Output @out) { Entry entry = entries[index]; Expression key = entry.key; Expression @value = entry.value; bool isList = entry.isList; bool multiple = index + 1 >= entries.Count || @value.isMultiple(); if (isList && key.isInteger() && listLength == key.asInteger()) { if (multiple) { @value.printMultiple(@out); } else { @value.print(@out); } listLength++; } else if (isObject && key.isIdentifier()) { @out.print(key.asName()); @out.print(" = "); @value.print(@out); } else { @out.print("["); key.print(@out); @out.print("] = "); @value.print(@out); } }
public override void print(Output @out) { bool leftGroup = this.leftGroup(); bool rightGroup = this.rightGroup(); if (leftGroup) { @out.print("("); } left.print(@out); if (leftGroup) { @out.print(")"); } @out.print(" "); @out.print(op); @out.print(" "); if (rightGroup) { @out.print("("); } right.print(@out); if (rightGroup) { @out.print(")"); } }
protected internal static void printBinary(Output @out, string op, Expression left, Expression right) { left.print(@out); @out.print(" "); @out.print(op); @out.print(" "); right.print(@out); }
public override void print(Output @out) { List <Expression> args = new List <Expression>(arguments.Length); if (isMethodCall()) { Expression obj = function.getTable(); if (obj.isClosure() || obj.isConstant()) { @out.print("("); obj.print(@out); @out.print(")"); } else { obj.print(@out); } @out.print(":"); @out.print(function.getField()); for (int i = 1; i < arguments.Length; i++) { args.Add(arguments[i]); } } else { if (function.isClosure() || function.isConstant()) { @out.print("("); function.print(@out); @out.print(")"); } else { function.print(@out); } for (int i = 0; i < arguments.Length; i++) { args.Add(arguments[i]); } } @out.print("("); Expression.printSequence(@out, args, false, true); @out.print(")"); }
public override void print(Output @out) { @out.print(op); if (precedence > expression.precedence) { @out.print("("); } expression.print(@out); if (precedence > expression.precedence) { @out.print(")"); } }
public override void print(Output @out) { table.print(@out); if (index.isIdentifier()) { @out.print("."); @out.print(index.asName()); } else { @out.print("["); index.print(@out); @out.print("]"); } }
protected internal static void printUnary(Output @out, string op, Expression expression) { @out.print(op); expression.print(@out); }