54 Lox_Info(
"Reading source file {!Q} of size {}",
60 srcFileNode.AssembleRealPath(path, lang::Inclusion::Include); }
68 Lox_Info(
"Reading source file: {}", path )
73 }
catch (std::exception&) {
85 size_t lineStartRemaining= mfc.
Remaining();
89 while ( !mfc.
IsEOF() ) {
90 char c= char( mfc.
Next<
NC>() );
91 if (c ==
'\n') { lineNo++; lineStartRemaining= mfc.
Remaining();
continue; }
92 if (c !=
'#' ) {
continue; }
103 if (c ==
'#' ) {
continue;}
114 if ( !isalpha(c) &&
String(
".%^_<").IndexOf(c) < 0 ) {
120 int colNo= int(lineStartRemaining - mfc.
Remaining() - 2);
123 {
auto exclIt= exclamations.begin();
124 for (; exclIt!=exclamations.end(); ++exclIt )
125 if ( (*exclIt)->Matches(lineNo, colNo ) )
127 if (exclIt != exclamations.end()) {
132 bool suppressedAnchor;
133 linkString.
Reset(c); {
134 bool foundEnd=
false;
137 if ( c ==
'\\') { linkString.
_<
NC>(c); linkString.
_<
NC>(char(mfc.
Next()));
continue; }
138 if ( c ==
'\"') { foundEnd=
true;
break;}
139 if ( c ==
'\n') { lineNo++;
break; }
141 if (linkString.
Length() == 511 ) {
142 Lox_Warning(
"Found unterminated XLink pattern {!Q} in source file {}:{}:{}",
143 linkString, path, lineNo, colNo )
148 if ( !foundEnd )
continue;
149 if (suppressedAnchor)
155 XLink* xLink=
dxl.RegisterXLink(linkString);
157 if (verbosity >= Verbosity::Info)
158 Lox_Info(
"Found XLink pattern {!Q} in source file {}:{}:{}",
159 linkString, path, lineNo, colNo )
173 dxl.Stats.SourceFileLines.fetch_add(lineNo);