Skip to content

Commit

Permalink
libexpr: Rename "column" fields to offset
Browse files Browse the repository at this point in the history
... because that's what they are.
  • Loading branch information
roberth committed Jul 14, 2024
1 parent 72c8328 commit 8838d8a
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 21 deletions.
10 changes: 5 additions & 5 deletions src/libexpr/lexer-helpers.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

void nix::lexer::internal::initLoc(YYLTYPE * loc)
{
loc->first_column = loc->last_column = 0;
loc->beginOffset = loc->endOffset = 0;
}

void nix::lexer::internal::adjustLoc(yyscan_t yyscanner, YYLTYPE * loc, const char * s, size_t len)
Expand All @@ -16,15 +16,15 @@ void nix::lexer::internal::adjustLoc(yyscan_t yyscanner, YYLTYPE * loc, const ch
if (lexerState.docCommentDistance == 1) {
// Preceding token was a doc comment.
ParserLocation doc;
doc.first_column = lexerState.lastDocCommentLoc.first_column;
doc.beginOffset = lexerState.lastDocCommentLoc.beginOffset;
ParserLocation docEnd;
docEnd.first_column = lexerState.lastDocCommentLoc.last_column;
docEnd.beginOffset = lexerState.lastDocCommentLoc.endOffset;
DocComment docComment{lexerState.at(doc), lexerState.at(docEnd)};
PosIdx locPos = lexerState.at(*loc);
lexerState.positionToDocComment.emplace(locPos, docComment);
}
lexerState.docCommentDistance++;

loc->first_column = loc->last_column;
loc->last_column += len;
loc->beginOffset = loc->endOffset;
loc->endOffset += len;
}
4 changes: 2 additions & 2 deletions src/libexpr/lexer.l
Original file line number Diff line number Diff line change
Expand Up @@ -287,8 +287,8 @@ or { return OR_KW; }
\/\*\*[^/*]([^*]|\*+[^*/])*\*+\/ /* doc comments */ {
LexerState & lexerState = *yyget_extra(yyscanner);
lexerState.docCommentDistance = 0;
lexerState.lastDocCommentLoc.first_column = yylloc->first_column;
lexerState.lastDocCommentLoc.last_column = yylloc->last_column;
lexerState.lastDocCommentLoc.beginOffset = yylloc->beginOffset;
lexerState.lastDocCommentLoc.endOffset = yylloc->endOffset;
}


Expand Down
18 changes: 9 additions & 9 deletions src/libexpr/parser-state.hh
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,20 @@ struct StringToken

struct ParserLocation
{
int first_column;
int last_column;
int beginOffset;
int endOffset;

// backup to recover from yyless(0)
int stashed_first_column, stashed_last_column;
int stashedBeginOffset, stashedEndOffset;

void stash() {
stashed_first_column = first_column;
stashed_last_column = last_column;
stashedBeginOffset = beginOffset;
stashedEndOffset = endOffset;
}

void unstash() {
first_column = stashed_first_column;
last_column = stashed_last_column;
beginOffset = stashedBeginOffset;
endOffset = stashedEndOffset;
}

/** Latest doc comment position, or 0. */
Expand Down Expand Up @@ -305,12 +305,12 @@ inline Expr * ParserState::stripIndentation(const PosIdx pos,

inline PosIdx LexerState::at(const ParserLocation & loc)
{
return positions.add(origin, loc.first_column);
return positions.add(origin, loc.beginOffset);
}

inline PosIdx ParserState::at(const ParserLocation & loc)
{
return positions.add(origin, loc.first_column);
return positions.add(origin, loc.beginOffset);
}

}
10 changes: 5 additions & 5 deletions src/libexpr/parser.y
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,13 @@
do \
if (N) \
{ \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
(Current).beginOffset = YYRHSLOC (Rhs, 1).beginOffset; \
(Current).endOffset = YYRHSLOC (Rhs, N).endOffset; \
} \
else \
{ \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
(Current).beginOffset = (Current).endOffset = \
YYRHSLOC (Rhs, 0).endOffset; \
} \
while (0)

Expand Down Expand Up @@ -83,7 +83,7 @@ using namespace nix;
void yyerror(YYLTYPE * loc, yyscan_t scanner, ParserState * state, const char * error)
{
if (std::string_view(error).starts_with("syntax error, unexpected end of file")) {
loc->first_column = loc->last_column;
loc->beginOffset = loc->endOffset;
}
throw ParseError({
.msg = HintFmt(error),
Expand Down

0 comments on commit 8838d8a

Please sign in to comment.