annotate sema/LiteralInterpreter.d @ 106:89db676fbacb

Now able of understanding strings.
author Anders Johnsen <skabet@gmail.com>
date Thu, 22 May 2008 12:09:11 +0200
parents
children c658172ca8a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
106
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
1 module sema.LiteralInterpreter;
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
2
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
3 import sema.Visitor;
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
4
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
5 import basic.LiteralParsing,
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
6 basic.Message;
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
7
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
8 class LiteralInterpreter : Visitor!(void)
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
9 {
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
10 this(MessageHandler messages)
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
11 {
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
12 this.messages = messages;
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
13 }
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
14
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
15 void visit(Module[] modules)
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
16 {
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
17 super.visit(modules);
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
18 messages.checkErrors();
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
19 }
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
20
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
21 void visitStringExp(StringExp exp)
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
22 {
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
23 auto type = parseString(exp.str, exp.loc, messages);
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
24 }
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
25
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
26 MessageHandler messages;
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
27 }