2
2
from .stream import ParserStream
3
3
from .errors import ParseError
4
4
5
+
6
+ ws = (' ' , '\t ' , '\n ' )
7
+
8
+
5
9
class FTLParserStream (ParserStream ):
6
- def peek_line_ws (self ):
10
+ def peek_ws (self ):
11
+ ch = self .current_peek ()
12
+ while ch :
13
+ if ch not in ws :
14
+ break
15
+ ch = self .peek ()
16
+
17
+ def peek_inline_ws (self ):
7
18
ch = self .current_peek ()
8
19
while ch :
9
20
if ch != ' ' and ch != '\t ' :
10
21
break
11
22
ch = self .peek ()
12
23
13
- def skip_ws_lines (self ):
24
+ def skip_ws (self ):
14
25
while True :
15
- self .peek_line_ws ()
26
+ self .peek_inline_ws ()
16
27
17
28
if self .current_peek_is ('\n ' ):
18
29
self .skip_to_peek ()
@@ -21,7 +32,7 @@ def skip_ws_lines(self):
21
32
self .reset_peek ()
22
33
break
23
34
24
- def skip_line_ws (self ):
35
+ def skip_inline_ws (self ):
25
36
while self .ch :
26
37
if self .ch != ' ' and self .ch != '\t ' :
27
38
break
@@ -66,6 +77,16 @@ def is_number_start(self):
66
77
67
78
return (cc >= 48 and cc <= 57 ) or cc == 45
68
79
80
+ def is_peek_placeable_start (self ):
81
+ self .peek_ws ()
82
+
83
+ if self .current_peek_is ('{' ):
84
+ self .reset_peek ()
85
+ return True
86
+
87
+ self .reset_peek ()
88
+ return False
89
+
69
90
def is_peek_next_line_indented (self ):
70
91
if not self .current_peek_is ('\n ' ):
71
92
return False
@@ -87,7 +108,7 @@ def is_peek_next_line_variant_start(self):
87
108
88
109
ptr = self .get_peek_index ()
89
110
90
- self .peek_line_ws ()
111
+ self .peek_inline_ws ()
91
112
92
113
if (self .get_peek_index () - ptr == 0 ):
93
114
self .reset_peek ()
@@ -111,7 +132,7 @@ def is_peek_next_line_attribute_start(self):
111
132
112
133
ptr = self .get_peek_index ()
113
134
114
- self .peek_line_ws ()
135
+ self .peek_inline_ws ()
115
136
116
137
if (self .get_peek_index () - ptr == 0 ):
117
138
self .reset_peek ()
@@ -132,7 +153,7 @@ def is_peek_next_line_pattern(self):
132
153
133
154
ptr = self .get_peek_index ()
134
155
135
- self .peek_line_ws ()
156
+ self .peek_inline_ws ()
136
157
137
158
if (self .get_peek_index () - ptr == 0 ):
138
159
self .reset_peek ()
@@ -158,7 +179,7 @@ def is_peek_next_line_tag_start(self):
158
179
159
180
ptr = self .get_peek_index ()
160
181
161
- self .peek_line_ws ()
182
+ self .peek_inline_ws ()
162
183
163
184
if (self .get_peek_index () - ptr == 0 ):
164
185
self .reset_peek ()
0 commit comments