24 if ( reader.
Status != std::errc(0) ) {
32 while ( (line= reader.
NextLine()).IsNotNull() ) {
46 Lox_Error(
"Error in exclamation file: Expected file name @ {}:{}:{} ",
47 filePath, lineNo+1, reader.
Line.Length() - line.
Length() )
54 Lox_Error(
"Error in exclamation file: Expected line number @ {}:{}:{} ",
55 filePath, lineNo+1, reader.
Line.Length() - line.
Length() )
62 Lox_Error(
"Error in exclamation file: Expected column number @ {}:{}:{} ",
63 filePath, reader.
Line.Length() - line.
Length(), lineNo+1 )
67 List.emplace_back(
Entry{file, exclLine, exclCol, lineNo} );
70 Lox_Info(
"Exclamation file {}:1 imported, {} rules read", filePath,
List.size() )
75 if ( filePath.
IndexOf(entry.FilePath) >= 0 )
76 result.push_back(&entry);
#define ALIB_LOCK_RECURSIVE_WITH(lock)
#define Lox_SetDomain(...)
constexpr integer Length() const
constexpr bool IsEmpty() const
TChar CharAtStart() const
integer IndexOf(const TString &needle, integer startIdx=0, integer endIdx=strings::MAX_LEN) const
bool StartsWith(const TString &needle) const
bool ConsumeDec(std::integral auto &result, TNumberFormat< TChar > *numberFormat=nullptr)
TSubstring & Trim(const TCString< TChar > &whiteSpaces=CStringConstantsTraits< TChar >::DefaultWhitespaces())
TString< TChar > ConsumeToken(TChar separator=',', lang::Inclusion includeSeparator=lang::Inclusion::Include)
An entry of the exclamation file.
RecursiveLock GLOBAL_ALLOCATOR_LOCK
strings::TString< PathCharType > PathString
strings::TCString< character > CString
files::TextFileLineReader< TLocalBufferSize > TextFileLineReader
strings::TString< character > String
strings::TSubstring< character > Substring
std::vector< T, StdMA< T > > StdVectorMA
NLocalString< TLocalBufferSize > Line
void Read(const alib::CString &filePath)
void Get(const alib::system::PathString &filePath, alib::StdVectorMA< Entry * > &result)
alib::ListMA< Entry > List
A simple linear list of entries.