annotate sema/LiteralInterpreter.d @ 119:c0b531362ca6

Non compileing commit. Work on floating points and casts
author Anders Johnsen <skabet@gmail.com>
date Sun, 25 May 2008 19:13:07 +0200
parents c658172ca8a0
children 6cb2f4201e2a
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
111
c658172ca8a0 Parsing basic integers and floats.
Anders Johnsen <skabet@gmail.com>
parents: 106
diff changeset
26 void visitIntegerLit(IntegerLit exp)
c658172ca8a0 Parsing basic integers and floats.
Anders Johnsen <skabet@gmail.com>
parents: 106
diff changeset
27 {
119
c0b531362ca6 Non compileing commit. Work on floating points and casts
Anders Johnsen <skabet@gmail.com>
parents: 111
diff changeset
28 exp.number = parseNumber(exp.name, exp.loc, messages);
111
c658172ca8a0 Parsing basic integers and floats.
Anders Johnsen <skabet@gmail.com>
parents: 106
diff changeset
29 }
c658172ca8a0 Parsing basic integers and floats.
Anders Johnsen <skabet@gmail.com>
parents: 106
diff changeset
30
106
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
31 MessageHandler messages;
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
32 }