aboutsummaryrefslogtreecommitdiff
path: root/MoonParser/moon_parser.h
blob: 07380cc21edc000bb6d7a5b0490697ba97169ca6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#pragma once

#include <string>
#include <codecvt>
#include <unordered_set>
#include <stack>
#include <algorithm>
#include <vector>
#include "ast.hpp"
using namespace parserlib;

namespace MoonP {

struct State {
	State() {
		indents.push(0);
		stringOpen = -1;
	}
	std::string buffer;
	size_t stringOpen;
	std::stack<int> indents;
	std::stack<bool> doStack;
	static std::unordered_set<std::string> luaKeywords;
	static std::unordered_set<std::string> keywords;
};

} // namespace MoonP