partial start of implementation for interpreter
This commit is contained in:
parent
431367cb40
commit
00d0eac893
9
interpreter.cpp
Normal file
9
interpreter.cpp
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
//
|
||||||
|
// interpreter.cpp
|
||||||
|
// curly
|
||||||
|
//
|
||||||
|
// Created by Bob Polis at 2020-09-05
|
||||||
|
// Copyright (c) 2020 SwiftCoder. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "interpreter.hpp"
|
73
interpreter.hpp
Normal file
73
interpreter.hpp
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
//
|
||||||
|
// interpreter.hpp
|
||||||
|
// curly
|
||||||
|
//
|
||||||
|
// Created by Bob Polis at 2020-09-05
|
||||||
|
// Copyright (c) 2020 SwiftCoder. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef _interpreter_H_
|
||||||
|
#define _interpreter_H_
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
#include <map>
|
||||||
|
|
||||||
|
class interpreter {
|
||||||
|
public:
|
||||||
|
interpreter() = default;
|
||||||
|
|
||||||
|
std::string eval(std::istream& in);
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::vector<std::string> _ops;
|
||||||
|
std::map<std::string, std::vector<std::string>> _funs;
|
||||||
|
|
||||||
|
// integer operations
|
||||||
|
void add();
|
||||||
|
void sub();
|
||||||
|
void mul();
|
||||||
|
void div();
|
||||||
|
void mod();
|
||||||
|
void abs();
|
||||||
|
void neg();
|
||||||
|
void dup();
|
||||||
|
void inc();
|
||||||
|
void dec();
|
||||||
|
|
||||||
|
// string operations
|
||||||
|
void rev();
|
||||||
|
void slc();
|
||||||
|
void idx();
|
||||||
|
void cat();
|
||||||
|
void len();
|
||||||
|
void rot();
|
||||||
|
|
||||||
|
// tests
|
||||||
|
void teq();
|
||||||
|
void tne();
|
||||||
|
void tlt();
|
||||||
|
void tle();
|
||||||
|
void tgt();
|
||||||
|
void tge();
|
||||||
|
|
||||||
|
// blocks
|
||||||
|
void end();
|
||||||
|
|
||||||
|
// conditionals
|
||||||
|
void ift();
|
||||||
|
void els();
|
||||||
|
|
||||||
|
// loops
|
||||||
|
void whl();
|
||||||
|
|
||||||
|
// functions
|
||||||
|
void fun();
|
||||||
|
void run();
|
||||||
|
|
||||||
|
// solution
|
||||||
|
void sol();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // _interpreter_H_
|
Loading…
x
Reference in New Issue
Block a user