Porytiles
Loading...
Searching...
No Matches
tolerant_scan.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4#include <optional>
5#include <string>
6#include <unordered_set>
7#include <vector>
8
11
12namespace porytiles {
13
21 std::string name;
23 std::string reason;
24
25 bool operator==(const SkippedConstruct &) const = default;
26};
27
36 std::vector<DefineStatement> defines;
37 std::vector<SkippedConstruct> skipped;
38 std::unordered_set<std::string> ambiguous_values;
39};
40
47 std::string name;
48 std::optional<std::int64_t> value;
50};
51
54 std::optional<std::string> name;
55 std::vector<TolerantEnumMember> members;
57};
58
65 std::vector<TolerantEnum> enums;
66 std::vector<SkippedConstruct> skipped;
67};
68
69} // namespace porytiles
A construct the tolerant scanners recorded but could not fully evaluate.
bool operator==(const SkippedConstruct &) const =default
Represents a position within source content.
The result of a tolerant #define scan.
std::vector< DefineStatement > defines
std::unordered_set< std::string > ambiguous_values
std::vector< SkippedConstruct > skipped
One enum member from a tolerant enum scan.
std::optional< std::int64_t > value
The result of a tolerant enum scan.
std::vector< TolerantEnum > enums
std::vector< SkippedConstruct > skipped
One enum declaration from a tolerant enum scan.
std::optional< std::string > name
std::vector< TolerantEnumMember > members