Beispiel #1
0
    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))
Beispiel #2
0
    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)