Mercurial > projects > dil
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 |
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 } |