aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeLines
* Fix crash for empty/invalid/not-found filepaths Spartan3222024-08-03-39/+47
| | | | | | Add tests to validate empty string path Add tests to validate non-existent string path Add tests to validate nullptr buffer parser
* Remove pointless append in conversionclean/useless-append Spartan3222024-08-03-3/+0
|
* Add `\x8F` to `Ę` conversion for Windows-1252fix/polish-todos Spartan3222024-08-02-44/+66
| | | | | | | | | To support special vanilla Polish TODOs that break utf8 Add CSV Win1252->Utf8 conversion tests Fix map_value warning not triggering Optimize for ascii characters
* Add backslash identifier support to v2scriptadd/backslash-identifier Spartan3222024-07-22-56/+61
| | | | | | | | Add buffer::char_type size multiplier to max file size of string intern buffer Fix list grammar segfaults Fix diagnostic logger intern segfaults from buffer reallocation Fix non-string-supported CSV parser not supporting Victoria 2 CSV escaping behavior
* Add find_intern to v2script Parseradd/find_intern Spartan3222024-07-06-0/+8
|
* Fix string interning pointer invalidity for ASTsimplify-string-interning Spartan3222024-07-05-22/+80
| | | | | | | | | | | | | | | | | | Fix errorneous string intern compare Add symbol interning tests Optimize non-conversion identifier cases Add `File::size()` Add InstanceOf concept Remove `FlatValue::value(const symbol_interner_type&)` Add `AbstractSyntaxTree::intern/intern_cst(lexy::lexeme)` overload Add `DiagnosticLogger::intern/intern_cstr(lexy::lexeme)` overload Use pinned_vector to maintain string interning pointer validity for buffers Add vmcontainer submodule for pinned_vector pinned_vector reserves virtual memory at runtime using OS APIs to maintain pointer validity Remove Exception and RTTI requirement from range-v3 submodule
* Add unit testsadd/unit-testing Spartan3222024-06-22-9/+30
| | | | | | | | | | | | | Make github action tests run explicit Fix dropping annotation list for Errors Fix potential empty get_errors crashes Fix incorrect csv error behavior Add use_sep for `LineObject` and `std::vector<LineObject>` Remove constexpr of load_from_buffer and load_from_string for parsers Add snitch-org/snitch@d6632123cc8d13bdbc5cd60fd6741b9e0f635e82 Make versioned submodules ignore dirty Add tests/bin/* to gitignore
* Add runtime encoding detection and conversionfix/char-detection Spartan3222024-06-18-724/+3860
| | | | | | | | | | | | | | | | | | | | | | | | | | Win-1251/1252 detection is a reduced C++ version of https://github.com/hsivonen/chardetng Add manually-specified encoding fallback Add default system encoding fallback Add error recovery to v2script Add unknown encoding detection warning Remove csv::Parser templating Fix lua files dropping data Update lexy to foonathan/lexy@1e5d99fa3826b1c3c8628d3a11117fb4fb4cc0d0 Remove exclusive reliance on lexy::default_encoding for v2script Move internal concepts to src/openvic-detail/InternalConcepts.hpp Move contents of DetectUtf8.hpp to src/detail/Detect.hpp Move openvic-dataloader/AbstractSyntaxTree.hpp to src Move DiagnosticLogger.hpp to src Move File.hpp to src Move openvic-dataloader/detail/utlity files to openvic-dataloader/detail Add ovdl::utility::type_concat Add ovdl::utility::type_prepend Add ovdl::utility::is_instance_of Overhaul parse error messages
* Expose dataloader includesfix/includes Spartan3222024-05-15-2/+31
| | | | | Fix dataloader file includes Fix leaking lexy includes
* Fix bugs in #37fix/error-handling Spartan3222024-05-11-22/+50
| | | | | | Fix error handling dropping errors Fix error handling segfaults Improve error messages
* Add `deps/dryad` -> https://github.com/Spartan322/dryadadd/dryad Spartan3222024-05-09-1301/+1554
| | | | | | | | | Add `deps/fmt` -> https://github.com/fmtlib/fmt Add `deps/range-v3` -> https://github.com/ericniebler/range-v3 Improve parser error and warning support Update .clang-format Update `deps/SCsub`
* Fixed BasicParser::_file_path relying on externally controlled memory hop3112024-01-22-7/+20
|
* Expanded v2script character list to support Windows-1251windows-1251 hop3112024-01-22-1/+12
|
* Fix includes Spartan3222024-01-18-16/+1
|
* Fix MSVC CL-19.38 bug hop3112023-12-11-1/+1
|
* Fix early termination on newline in CSV file hop3112023-12-10-3/+3
|
* Change nodes to support list checks: Spartan3222023-11-04-3/+3
| | | | | | | EventNode DecisionNode EventMtthModifierNode ExecutionListNode
* Add grammar support for BEL, HT, LF, and CR characters Spartan3222023-10-20-14/+33
| | | | Add stripping of LF and CR characters if `v2script::grammar::StringExpression`'s `Options::NoStringEscape` is false
* Make values optional for CSV lines Spartan3222023-10-13-2/+4
|
* Simplify csv grammar to one file Spartan3222023-10-13-180/+220
| | | | Remove hacky include behavior for CSVGrammar
* Add Lua Defines parsing Spartan3222023-10-12-0/+174
|
* Make File contents optional Spartan3222023-10-05-1/+10
| | | | Add lexy::nullopt support to String and List nodes
* Fix BufferHandler assuming buffers of size 0 are invalid Spartan3222023-10-05-1/+1
|
* Update lexy to main branch Spartan3222023-09-26-8/+7
| | | | | Cleanup and simplify SimpleGrammar data_specifier Add compile_commands.json to gitignore
* StatementListBlocks no longer require key = {...} Hop3112023-09-16-1/+2
|
* Add ParseOptions: Spartan3222023-09-15-76/+99
| | | | | | | | NoEscapeString to true to prevent escape behavior in strings Event and Decision grammars use string escaping (for now) Update lexy to latest master: Use `git submodule update --init --recursive`
* Overhaul CSV parsing and align with Victoria 2 CSVs Spartan3222023-09-14-241/+183
| | | | | | | | | | Fix "" not being converted into " in Csv files Move duplicated Grammar in CsvGrammar.hpp to Grammar.inc Add ParseOptions to simplify template options Add StringValue disable option: Inlines value escapes Add strings namespace to grammars for `ParseOptions.SupportStrings = true` Add string parse handling to parse_csv via argument
* Add requirement comments Spartan3222023-09-10-2/+35
| | | | | | | | | | | Moved compound value expression to ValueExpression rule Fulfills: DAT-23, DAT-26, DAT-28, DAT-29, DAT-626, DAT-627, DAT-628, DAT-630, DAT-631, DAT-632, DAT-633, DAT-634, DAT-635, DAT-636, DAT-638, DAT-639, DAT-640, DAT-641, DAT-642, DAT-643
* Add Node Line/Column Generator Spartan3222023-09-05-36/+156
| | | | | | | | | | | | Fix Errors.hpp dependency on v2script/Parser.hpp Add node location print to headless/main.cpp Add Node::line_col << operator Add Node::cast_to WARNING: Takes advantage of non-standard behavior in unordered_multimap THIS IS A HACK FOR NOW Only GCC unordered_multimap::equal_range sees elements backwards Prefer moving off of unordered_multimap to something like EASTL hash_multimap
* Add Windows-1252 CSV Parser Spartan3222023-09-04-50/+309
| | | | | | | | | | | | Fix CsvGrammar counting behavior Add csv parse argument to headless/main.cpp Change LineObject contained value type to pair Add ostream print to LineObject Add vscode tasks.json Add vscode launch.json Move csv::Parser template class specialization to end of Parser.cpp Add detail/ClassExport.hpp to assist compiler export
* Add csv::Parser.get_lines() implementation Spartan3222023-09-03-0/+4
| | | | Change csv::Parser.get_lines() return type to const ref vector
* Add github actions and workflow Spartan3222023-09-02-3/+4
|
* Rework Grammar and Parser Spartan3222023-09-02-75/+1721
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add proper headless binary construction: Includes basic validation Add Error and Warning structs to Parser Add FileNode pointer getter to Parser Change all `char8_t*` and `const char8_t` to `const char*` in Parser Add Parser move operators and Parser deconstructor Add BufferHandler PIMPL object to Parser Add UTF-8 file Warning to v2script Add proper Grammar value retrieval Add AbstractSyntaxTree for v2script data parser: Has compile-time embedded type information accessible at compile-time and runtime Has Tab-based print functionality Fix wrong environment reference for headless construction in SConstruct Add error retrieval Add BasicCallbackOStreamBuffer for callback streaming Add CallbackStreamBuffer for char Add CallbackWStreamBuffer for wchar_t Add BasicCallbackStream Add CallbackStream for char Add CallbackWStream for wchar_t Add grammar for events and decisions Add event_parse to Parser Add decision_parse to Parser Add .clang-format Ignore dirty lexy module Add CSV parser and grammar: Creates std::vector<csv::LineObject> for a list of lines Add BasicParser and BasicBufferHandler to reduce code reduplication
* Initial structural commit Spartan3222023-07-26-0/+77