Merge pull request #256 from vvakame/impl-ts
[jackhill/mal.git] / cpp / MAL.h
CommitLineData
8bd091e3
ST
1#ifndef INCLUDE_MAL_H
2#define INCLUDE_MAL_H
3
4#include "Debug.h"
5#include "RefCountedPtr.h"
6#include "String.h"
7#include "Validation.h"
8
9#include <vector>
10
11class malValue;
12typedef RefCountedPtr<malValue> malValuePtr;
13typedef std::vector<malValuePtr> malValueVec;
179e8eaf
ST
14typedef malValueVec::iterator malValueIter;
15
16class malEnv;
dc9b184b 17typedef RefCountedPtr<malEnv> malEnvPtr;
8bd091e3
ST
18
19// step*.cpp
179e8eaf 20extern malValuePtr APPLY(malValuePtr op,
494c1608 21 malValueIter argsBegin, malValueIter argsEnd);
dc9b184b 22extern malValuePtr EVAL(malValuePtr ast, malEnvPtr env);
cb252845 23extern malValuePtr readline(const String& prompt);
dc9b184b
ST
24extern String rep(const String& input, malEnvPtr env);
25
26// Core.cpp
27extern void installCore(malEnvPtr env);
8bd091e3
ST
28
29// Reader.cpp
30extern malValuePtr readStr(const String& input);
31
32#endif // INCLUDE_MAL_H