From 7be3617083d820b927081a7dec8a2a62acbbfb82 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Mon, 21 Aug 2023 22:48:05 -0400 Subject: [PATCH] Runtime fixed --- project/auxillary/scanner.hpp | 12 +++++++++--- project/gen.cpp | 4 ++-- project/gen.dep.cpp | 4 ++-- project/gen.dep.hpp | 4 ++-- project/gen.hpp | 4 ++-- project/helpers/helper.hpp | 4 ++-- singleheader/singleheader.cpp | 2 +- 7 files changed, 20 insertions(+), 14 deletions(-) diff --git a/project/auxillary/scanner.hpp b/project/auxillary/scanner.hpp index a16dc06..01e5dd1 100644 --- a/project/auxillary/scanner.hpp +++ b/project/auxillary/scanner.hpp @@ -45,13 +45,21 @@ Code scan_file( char const* path, bool skip_header_includes = true ) if ( strncmp( scanner, tok.Ptr, tok.Len ) == 0 ) { scanner += tok.Len; - while ( current != '\r' && current != '\n' ) + while ( scanner < ( str.Data + str.length() ) && current != '\r' && current != '\n' ) { ++ scanner; } // Skip the line sptr skip_size = sptr( scanner - str.Data ); + if ( (scanner + 2) >= ( str.Data + str.length() ) ) + { + sptr new_length = sptr( str.get_header().Length ) - skip_size; + mem_move( str, scanner, new_length ); + str.get_header().Length = new_length; + break; + } + if ( current == '\r' ) { skip_size += 2; @@ -64,8 +72,6 @@ Code scan_file( char const* path, bool skip_header_includes = true ) } sptr new_length = sptr( str.get_header().Length ) - skip_size; - - // scanner -= skip_size; mem_move( str, scanner, new_length ); str.get_header().Length = new_length; diff --git a/project/gen.cpp b/project/gen.cpp index 9e230b9..693acc6 100644 --- a/project/gen.cpp +++ b/project/gen.cpp @@ -14,7 +14,7 @@ # include "gen.dep.cpp" #endif -namespace gen { +GEN_NS_BEGIN #include "components/static_data.cpp" @@ -27,6 +27,6 @@ namespace gen { #include "components/interface.parsing.cpp" #include "components/interface.untyped.cpp" -} +GEN_NS_END #include "helpers/pop_ignores.inline.hpp" diff --git a/project/gen.dep.cpp b/project/gen.dep.cpp index e22091f..16ad02f 100644 --- a/project/gen.dep.cpp +++ b/project/gen.dep.cpp @@ -3,7 +3,7 @@ #include "dependencies/src_start.cpp" -namespace gen { +GEN_NS_BEGIN #include "dependencies/debug.cpp" #include "dependencies/string_ops.cpp" @@ -14,4 +14,4 @@ namespace gen { #include "dependencies/filesystem.cpp" #include "dependencies/timing.cpp" -} +GEN_NS_END diff --git a/project/gen.dep.hpp b/project/gen.dep.hpp index c6c54a2..7a245a7 100644 --- a/project/gen.dep.hpp +++ b/project/gen.dep.hpp @@ -3,7 +3,7 @@ #include "dependencies/header_start.hpp" -namespace gen { +GEN_NS_BEGIN #include "dependencies/macros.hpp" #include "dependencies/basic_types.hpp" @@ -17,4 +17,4 @@ namespace gen { #include "dependencies/filesystem.hpp" #include "dependencies/timing.hpp" -} +GEN_NS_END diff --git a/project/gen.hpp b/project/gen.hpp index de7c851..b7158f3 100644 --- a/project/gen.hpp +++ b/project/gen.hpp @@ -11,7 +11,7 @@ #include "helpers/push_ignores.inline.hpp" #include "components/header_start.hpp" -namespace gen { +GEN_NS_BEGIN #include "components/types.hpp" #include "components/temp/ecode.hpp" @@ -27,6 +27,6 @@ namespace gen { #include "components/temp/ast_inlines.hpp" #include "components/header_end.hpp" -} +GEN_NS_END #include "helpers/pop_ignores.inline.hpp" diff --git a/project/helpers/helper.hpp b/project/helpers/helper.hpp index b83706f..cc492dd 100644 --- a/project/helpers/helper.hpp +++ b/project/helpers/helper.hpp @@ -2,9 +2,9 @@ #include "gen.hpp" -namespace gen { +GEN_NS_BEGIN #include "dependencies/parsing.hpp" -} +GEN_NS_END using namespace gen; diff --git a/singleheader/singleheader.cpp b/singleheader/singleheader.cpp index 774da02..c5b4e15 100644 --- a/singleheader/singleheader.cpp +++ b/singleheader/singleheader.cpp @@ -208,7 +208,7 @@ int gen_main() Code interface = scan_file( project_dir "components/interface.cpp" ); Code upfront = scan_file( project_dir "components/interface.upfront.cpp" ); Code parsing = scan_file( project_dir "components/interface.parsing.cpp" ); - Code untyped = scan_file( project_dir "components/untyped.cpp" ); + Code untyped = scan_file( project_dir "components/interface.untyped.cpp" ); CodeBody etoktype = gen_etoktype( project_dir "enums/ETokType.csv", project_dir "enums/AttributeTokens.csv" ); CodeNS parser_nspace = def_namespace( name(Parser), def_namespace_body( args(etoktype)) );