view sema/LiteralInterpreter.d @ 195:4e1a7265d620

Made a BuildTypes pass, to give all exp's a type.
author Anders Johnsen <skabet@gmail.com>
date Tue, 29 Jul 2008 15:50:24 +0200
parents fda35d57847e
children
line wrap: on
line source

module sema.LiteralInterpreter;

import sema.Visitor;

import basic.LiteralParsing,
       basic.Message;

class LiteralInterpreter : Visitor!(void)
{
    this(MessageHandler messages)
    {
        this.messages = messages;
    }

    void visit(Module[] modules)
    {
        super.visit(modules);
        messages.checkErrors();
    }
    
    void visitStringExp(StringExp exp)
    {
        auto str = parseString(exp.str, exp.loc, messages);
        exp.data = str;
    }

    void visitIntegerLit(IntegerLit exp)
    {
        exp.number = parseNumber(exp.name, exp.loc, messages);
    }

    MessageHandler messages;
}