def gen_printer(self, lang): res = None if lang == DST_LANGUAGE.CPP: res = 'printf("%s: {{\\n", "{0}");\n' res += tab * 2 + "elem->get{0}()->accept(this);\n" res += tab * 2 + 'printf("}}\\n");' if lang == DST_LANGUAGE.JAVA: if not self.optional: res = 'if (elem.get{0}() != null) {{\n' res += tab * 3 + 'System.out.printf("%s: {{", "{0}");\n' if self.ref_type in ast_nodes.keys(): res += tab * 3 + 'elem.get{0}().accept(this, arg);\n' else: res += tab * 3 + 'System.out.printf("%s; ", elem.get{0}().toString());\n' res += tab * 3 + 'System.out.printf("}}; ");\n' res += tab * 2 + '}} else {{\n' res += tab * 3 + 'System.out.printf("%s: null; ", "{0}");\n' res += tab * 2 + '}}' else: res = 'if (elem.get{0}() != null) {{\n' res += tab * 3 + 'if (elem.get{0}().isPresent()) {{\n' res += tab * 4 + 'System.out.printf("%s: {{", "{0}");\n' if self.ref_type in ast_nodes.keys(): res += tab * 4 + 'elem.get{0}().get().accept(this, arg);\n' else: res += tab * 4 + 'System.out.printf(elem.get{0}().get().toString());\n' res += tab * 4 + 'System.out.printf("}}; ");\n' res += tab * 3 + '}} else {{\n' res += tab * 4 + 'System.out.printf("%s: null; ", "{0}");\n' res += tab * 3 + '}}\n' res += tab * 2 + '}}' return res.format(first_to_cap(self.name))
def gen_printer(self, lang): res = None if lang == DST_LANGUAGE.CPP: res = 'printf("%s: [", "{0}");' res += tab * 2 + 'for(int i=0; i<elem->get{0}.size(); ++i) {{\n' res += tab * 3 + 'elem->get{0}()[i]->accept(this);\n' res += tab * 2 + '}}\n' res += tab * 2 + 'printf("]\\n");' if lang == DST_LANGUAGE.JAVA: if not self.optional: res = 'if (elem.get{0}() != null) {{\n' res += tab * 3 + 'System.out.printf("%s: [", "{0}");\n' res += tab * 3 + 'for({1} rval : elem.get{0}()) {{\n' res += tab * 4 + 'if (rval != null) {{\n' if self.ref_type in ast_nodes.keys(): res += tab * 5 + 'rval.accept(this, arg);\n' else: res += tab * 5 + 'System.out.printf(rval.toString());\n' res += tab * 4 + '}} else {{\n' res += tab * 5 + 'System.out.printf("null ");\n' res += tab * 4 + '}}\n' res += tab * 3 + '}}\n' res += tab * 3 + 'System.out.printf("]; ");\n' res += tab * 2 + '}} else {{\n' res += tab * 3 + 'System.out.printf("%s: null; ", "{0}");\n' res += tab * 2 + '}}' else: res = 'if (elem.get{0}() != null) {{\n' res += tab * 3 + 'if (elem.get{0}().isPresent()) {{\n' res += tab * 4 + 'System.out.printf("%s: [", "{0}");\n' res += tab * 4 + 'for({1} rval : elem.get{0}().get()) {{\n' res += tab * 5 + 'if (rval != null) {{\n' if self.ref_type in ast_nodes.keys(): res += tab * 6 + 'rval.accept(this, arg);\n' else: res += tab * 6 + 'System.out.printf(rval.toString());\n' res += tab * 5 + '}} else {{\n' res += tab * 6 + 'System.out.printf("null ");\n' res += tab * 5 + '}}\n' res += tab * 4 + '}}\n' res += tab * 4 + 'System.out.printf("]; ");\n' res += tab * 3 + '}} else {{\n' res += tab * 4 + 'System.out.printf("%s", elem.get{0}());\n' res += tab * 3 + '}}\n' res += tab * 2 + '}} else {{\n' res += tab * 3 + 'System.out.printf("%s: null; ", "{0}");\n' res += tab * 2 + '}}' return res.format(first_to_cap(self.name), self.ref_type)