import * as d from "../localData"; /** * definy の式をデバッグように文字列にする */ export const exprToDebugString = (expr: d.Expr): string => { switch (expr._) { case "Kernel": return kernelToString(expr.kernelExpr); case "Int32Literal": return expr.int32.toString(); case "PartReference": return "[part " + (expr.partId as string) + "]"; case "TagReference": return "[tag " + JSON.stringify(expr.tagReference) + "]"; case "FunctionCall": return ( "(" + exprToDebugString(expr.functionCall.function) + " " + exprToDebugString(expr.functionCall.parameter) ); } }; const kernelToString = (kernelExpr: d.KernelExpr): string => { switch (kernelExpr) { case "Int32Add": return "+"; case "Int32Sub": return "-"; case "Int32Mul": return "*"; } };