@@ -64,21 +64,21 @@ case class LiquidTemplate(path: String, content: SourceFile) extends Template wi
64
64
val unexpected = LiquidTemplate .token(mm.getUnexpectedType)
65
65
val expected = LiquidTemplate .token(mm.expecting)
66
66
67
+ // mm.index is incorrect, let's compute the index manually
68
+ // mm.line starts at 1, not 0
69
+ val index = content.lineToOffset(mm.line- 1 ) + mm.charPositionInLine
67
70
ctx.error(
68
71
if (unexpected == " EOF" )
69
- s " unexpected end of file, expected: ' $expected' "
72
+ s " unexpected end of file, expected $expected"
70
73
else
71
- s " unexpected token ' $unexpected' , expected: ' $expected' " ,
72
- content atSpan Span (mm. index)
74
+ s " unexpected $unexpected, expected $expected" ,
75
+ content atSpan Span (index)
73
76
)
74
77
75
78
None
76
79
}
77
- case ex => {
78
- if (true || ctx.settings.Ydebug .value)
80
+ case _ => {
79
81
throw ex
80
-
81
- None
82
82
}
83
83
}
84
84
}
@@ -98,17 +98,37 @@ case class LiquidTemplate(path: String, content: SourceFile) extends Template wi
98
98
99
99
object LiquidTemplate {
100
100
import liqp .parser .LiquidParser
101
+ import scala .collection .mutable .HashMap
101
102
102
- private val _tokens : Map [ String , String ] = Map (
103
+ final val TokenSymbols = HashMap (
103
104
" TagStart" -> " {%" ,
104
- " TagEnd" -> " %}"
105
- )
105
+ " TagEnd" -> " %}" ,
106
+ " OutStart" -> " {{" ,
107
+ " OutEnd" -> " }}" ,
108
+ " Pipe" -> " |" ,
109
+ " DotDot" -> " .." ,
110
+ " Dot" -> " ." ,
111
+ " Eq" -> " ==" ,
112
+ " EqSign" -> " =" ,
113
+ " Gt" -> " >" ,
114
+ " GtEq" -> " >=" ,
115
+ " Lt" -> " <" ,
116
+ " LtEq" -> " <=" ,
117
+ " Minus" -> " -" ,
118
+ " Col" -> " :" ,
119
+ " Comma" -> " ," ,
120
+ " OPar" -> " (" ,
121
+ " CPar" -> " )" ,
122
+ " OBr" -> " [" ,
123
+ " CBr" -> " ]" ,
124
+ " QMark" -> " ?"
125
+ ).mapValuesInPlace((k,v) => s " ' $v' ( $k) " )
106
126
107
127
def token (i : Int ): String =
108
128
if (i == - 1 ) " EOF"
109
- else if (i >= LiquidParser .tokenNames.length)
110
- " non-existing token "
111
- else _tokens
112
- .get( LiquidParser .tokenNames(i) )
113
- .getOrElse( s " token $i " )
129
+ else if (i >= LiquidParser .tokenNames.length) " non-existing token "
130
+ else {
131
+ val name = LiquidParser .tokenNames(i)
132
+ TokenSymbols .getOrElse(name, name )
133
+ }
114
134
}
0 commit comments