annotate trunk/src/dil/translator/German.d @ 670:d8c32113afde

Added command 'translate'. Added Undefined to enum NodeCategory. Fixed ctor of QualifiedType. Improved GermanTranslator.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Thu, 17 Jan 2008 22:28:04 +0100
parents 1e3c5967ef12
children 64fec49651cf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
1 /++
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
2 Author: Aziz Köksal
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
3 License: GPL3
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
4 +/
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
5 module dil.translator.German;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
6
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
7 import dil.ast.DefaultVisitor;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
8 import dil.ast.Node;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
9 import dil.ast.Declarations,
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
10 dil.ast.Statements,
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
11 dil.ast.Types,
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
12 dil.ast.Parameters;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
13 import tango.io.Print;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
14
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
15 private alias Declaration D;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
16
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
17 /++
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
18 Traverses a D syntax tree and explains in German.
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
19 +/
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
20 class GermanTranslator : DefaultVisitor
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
21 {
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
22 Print!(char) put;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
23
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
24 char[] indent;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
25 char[] indentStep;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
26
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
27 Declaration inAggregate;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
28 Declaration inFunc;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
29
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
30 /++
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
31 Construct a GermanTranslator.
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
32 Params:
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
33 put = buffer to print to.
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
34 indentStep = added at every indendation step.
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
35 +/
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
36 this(Print!(char) put, char[] indentStep)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
37 {
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
38 this.put = put;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
39 this.indentStep = indentStep;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
40 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
41
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
42 /// Start translation.
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
43 void translate(Node root)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
44 {
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
45 visitN(root);
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
46 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
47
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
48 scope class Indent
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
49 {
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
50 char[] old_indent;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
51 this()
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
52 {
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
53 old_indent = this.outer.indent;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
54 this.outer.indent ~= this.outer.indentStep;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
55 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
56
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
57 ~this()
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
58 { this.outer.indent = old_indent; }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
59
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
60 char[] toString()
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
61 { return this.outer.indent; }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
62 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
63
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
64 scope class Enter(T)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
65 {
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
66 T t_save;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
67 this(T t)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
68 {
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
69 auto t_save = t;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
70 static if (is(T == ClassDeclaration) ||
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
71 is(T == InterfaceDeclaration) ||
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
72 is(T == StructDeclaration) ||
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
73 is(T == UnionDeclaration))
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
74 this.outer.inAggregate = t;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
75 static if (is(T == FunctionDeclaration) ||
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
76 is(T == ConstructorDeclaration))
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
77 this.outer.inFunc = t;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
78 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
79
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
80 ~this()
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
81 {
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
82 static if (is(T == ClassDeclaration) ||
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
83 is(T == InterfaceDeclaration) ||
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
84 is(T == StructDeclaration) ||
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
85 is(T == UnionDeclaration))
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
86 this.outer.inAggregate = t_save;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
87 static if (is(T == FunctionDeclaration) ||
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
88 is(T == ConstructorDeclaration))
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
89 this.outer.inFunc = t_save;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
90 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
91 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
92
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
93 alias Enter!(ClassDeclaration) EnteredClass;
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
94 alias Enter!(InterfaceDeclaration) EnteredInterface;
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
95 alias Enter!(StructDeclaration) EnteredStruct;
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
96 alias Enter!(UnionDeclaration) EnteredUnion;
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
97 alias Enter!(FunctionDeclaration) EnteredFunction;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
98 alias Enter!(ConstructorDeclaration) EnteredConstructor;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
99
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
100 void printLoc(Node node)
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
101 {
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
102 auto loc = node.begin.getLocation();
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
103 put(indent).formatln("@({},{})",/+ loc.filePath,+/ loc.lineNum, loc.colNum);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
104 }
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
105
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
106 override:
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
107 D visit(ModuleDeclaration n)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
108 {
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
109 printLoc(n);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
110 put.format("Dies ist das Modul '{}'", n.moduleName.str);
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
111 if (n.packages.length)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
112 put.format(" im Paket '{}'", n.getPackageName('.'));
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
113 put(".").newline;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
114 return n;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
115 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
116
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
117 D visit(ImportDeclaration n)
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
118 {
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
119 printLoc(n);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
120 put("Importiert Symbole aus einem anderen Modul bzw. Module.").newline;
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
121 return n;
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
122 }
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
123
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
124 D visit(ClassDeclaration n)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
125 {
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
126 printLoc(n);
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
127 scope E = new EnteredClass(n);
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
128 put(indent).formatln("'{}' is eine Klasse mit den Eigenschaften:", n.name.str);
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
129 scope I = new Indent();
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
130 n.decls && visitD(n.decls);
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
131 return n;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
132 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
133
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
134 D visit(InterfaceDeclaration n)
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
135 {
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
136 printLoc(n);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
137 scope E = new EnteredInterface(n);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
138 put(indent).formatln("'{}' is ein Interface mit den Eigenschaften:", n.name.str);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
139 scope I = new Indent();
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
140 n.decls && visitD(n.decls);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
141 return n;
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
142 }
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
143
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
144 D visit(StructDeclaration n)
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
145 {
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
146 printLoc(n);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
147 scope E = new EnteredStruct(n);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
148 put(indent).formatln("'{}' is eine Datenstruktur mit den Eigenschaften:", n.name.str);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
149 scope I = new Indent();
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
150 n.decls && visitD(n.decls);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
151 return n;
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
152 }
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
153
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
154 D visit(UnionDeclaration n)
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
155 {
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
156 printLoc(n);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
157 scope E = new EnteredUnion(n);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
158 put(indent).formatln("'{}' is eine Datenunion mit den Eigenschaften:", n.name.str);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
159 scope I = new Indent();
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
160 n.decls && visitD(n.decls);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
161 return n;
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
162 }
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
163
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
164 D visit(VariableDeclaration n)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
165 {
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
166 printLoc(n);
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
167 char[] was;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
168 if (inAggregate)
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
169 was = "Membervariable";
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
170 else if (inFunc)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
171 was = "lokale Variable";
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
172 else
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
173 was = "globale Variable";
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
174 foreach (name; n.idents)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
175 {
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
176 put(indent).format("'{}' ist eine {} des Typs: ", name.str, was);
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
177 if (n.typeNode)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
178 visitT(n.typeNode);
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
179 else
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
180 put("auto");
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
181 put.newline;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
182 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
183 return n;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
184 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
185
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
186 D visit(FunctionDeclaration n)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
187 {
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
188 printLoc(n);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
189 char[] was;
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
190 if (inAggregate)
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
191 was = "Methode";
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
192 else if(inFunc)
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
193 was = "geschachtelte Funktion";
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
194 else
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
195 was = "Funktion";
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
196 scope E = new EnteredFunction(n);
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
197 put(indent).format("'{}' ist eine {} ", n.name.str, was);
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
198 if (n.params.length == 1)
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
199 put("mit dem Argument "), visitN(n.params);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
200 else if (n.params.length > 1)
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
201 put("mit den Argumenten "), visitN(n.params);
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
202 else
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
203 put("ohne Argumente");
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
204 put(".").newline;
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
205 scope I = new Indent();
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
206 return n;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
207 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
208
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
209 D visit(ConstructorDeclaration n)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
210 {
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
211 printLoc(n);
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
212 scope E = new EnteredConstructor(n);
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
213 put(indent)("Ein Konstruktor ");
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
214 if (n.params.length == 1)
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
215 put("mit dem Argument "), visitN(n.params);
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
216 else if (n.params.length > 1)
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
217 put("mit den Argumenten "), visitN(n.params);
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
218 else
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
219 put("ohne Argumente");
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
220 put(".").newline;
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
221 return n;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
222 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
223
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
224 D visit(StaticConstructorDeclaration n)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
225 {
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
226 printLoc(n);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
227 put(indent)("Ein statischer Konstruktor.").newline;
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
228 return n;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
229 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
230
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
231 D visit(DestructorDeclaration n)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
232 {
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
233 printLoc(n);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
234 put(indent)("Ein Destruktor.").newline;
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
235 return n;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
236 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
237
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
238 D visit(StaticDestructorDeclaration n)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
239 {
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
240 printLoc(n);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
241 put(indent)("Ein statischer Destruktor.").newline;
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
242 return n;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
243 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
244
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
245 D visit(InvariantDeclaration n)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
246 {
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
247 printLoc(n);
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
248 put(indent)("Eine Unveränderliche.").newline;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
249 return n;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
250 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
251
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
252 D visit(UnittestDeclaration n)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
253 {
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
254 printLoc(n);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
255 put(indent)("Ein Komponententest.").newline;
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
256 return n;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
257 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
258
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
259 Node visit(Parameter n)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
260 {
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
261 put.format("'{}' des Typs \"", n.name ? n.name.str : "unbenannt");
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
262 n.type && visitN(n.type);
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
263 put(\");
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
264 return n;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
265 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
266
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
267 Node visit(Parameters n)
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
268 {
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
269 if (n.length > 1)
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
270 {
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
271 visitN(n.children[0]);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
272 foreach (node; n.children[1..$])
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
273 put(", "), visitN(node);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
274 }
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
275 else
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
276 super.visit(n);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
277 return n;
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
278 }
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
279
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
280 TypeNode visit(ArrayType n)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
281 {
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
282 if (n.assocType)
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
283 put("assoziatives Array von ");
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
284 // visitT(n.assocType);
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
285 else if (n.e)
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
286 {
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
287 if (n.e2)
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
288 put("gescheibtes Array von ");
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
289 else
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
290 put("statisches Array von ");
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
291 // visitE(n.e), n.e2 && visitE(n.e2);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
292 }
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
293 else
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
294 put("dynamisches Array von ");
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
295 visitT(n.next);
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
296 return n;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
297 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
298
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
299 TypeNode visit(PointerType n)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
300 {
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
301 put("Zeiger auf "), visitT(n.next);
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
302 return n;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
303 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
304
670
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
305 TypeNode visit(QualifiedType n)
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
306 {
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
307 visitT(n.left);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
308 put(".");
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
309 visitT(n.right);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
310 return n;
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
311 }
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
312
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
313 TypeNode visit(IdentifierType n)
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
314 {
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
315 put(n.ident.str);
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
316 return n;
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
317 }
d8c32113afde Added command 'translate'.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents: 669
diff changeset
318
669
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
319 TypeNode visit(IntegralType n)
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
320 {
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
321 put(n.begin.srcText);
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
322 return n;
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
323 }
1e3c5967ef12 Added module dil.translator.German.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
diff changeset
324 }