Skip to content

Commit 56b03a7

Browse files
Scan a '$' inside interpolations (#146)
1 parent fc7c3ff commit 56b03a7

File tree

4 files changed

+53
-26
lines changed

4 files changed

+53
-26
lines changed

internal/syntax/scanner/scanner.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,10 @@ func scanOpenInterp(s *Scanner) stateFn {
479479
func scanInsideInterp(s *Scanner) stateFn {
480480
s.skip(isLineSpace)
481481

482+
if s.take("$") {
483+
s.emit(token.Dollar)
484+
}
485+
482486
// TODO(@FollowTheProcess): Handle more than just idents
483487
//
484488
// That's the whole reason I'm rewriting the scanner, to make this easier
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
-- src.http --
2+
@id = {{ $guid }}
3+
4+
### Test
5+
GET https://example.com/{{ id }}
6+
-- tokens.txt --
7+
<Token::At start=0, end=1>
8+
<Token::Ident start=1, end=3>
9+
<Token::Eq start=4, end=5>
10+
<Token::OpenInterp start=6, end=8>
11+
<Token::Dollar start=9, end=10>
12+
<Token::Ident start=10, end=14>
13+
<Token::CloseInterp start=15, end=17>
14+
<Token::Separator start=19, end=22>
15+
<Token::Comment start=23, end=27>
16+
<Token::MethodGet start=28, end=31>
17+
<Token::Text start=32, end=52>
18+
<Token::OpenInterp start=52, end=54>
19+
<Token::Ident start=55, end=57>
20+
<Token::CloseInterp start=58, end=60>
21+
<Token::EOF start=61, end=61>

internal/syntax/token/kind.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const (
1414
At // At
1515
Ident // Ident
1616
Eq // Eq
17+
Dollar // Dollar
1718
Colon // Colon
1819
LeftAngle // LeftAngle
1920
RightAngle // RightAngle

internal/syntax/token/kind_string.go

Lines changed: 27 additions & 26 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)