view sema/LiteralInterpreter.d @ 167:cbebde9ba2c8

proper patch for llvm bindings
author dan amlund <danamlund@gmail.com>
date Wed, 23 Jul 2008 00:31:11 +0200
parents 6cb2f4201e2a
children fda35d57847e
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.data;
    }

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

    MessageHandler messages;
}