diff options
author | Aleksey Kladov <[email protected]> | 2018-01-28 11:30:59 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2018-01-28 11:30:59 +0000 |
commit | 60725def49834bb7dfd46c1a7b84d86f810e1d03 (patch) | |
tree | 08640bf8eb1cd8e7e36c65ba4266bdef87b7c628 /src/parser | |
parent | 3cd2b2473b034f290d65e3dc839c0530e55de75b (diff) |
Simplify
Diffstat (limited to 'src/parser')
-rw-r--r-- | src/parser/event_parser/grammar/mod.rs | 22 | ||||
-rw-r--r-- | src/parser/event_parser/parser.rs | 11 |
2 files changed, 5 insertions, 28 deletions
diff --git a/src/parser/event_parser/grammar/mod.rs b/src/parser/event_parser/grammar/mod.rs index b87f3ca8a..79a4c10d3 100644 --- a/src/parser/event_parser/grammar/mod.rs +++ b/src/parser/event_parser/grammar/mod.rs | |||
@@ -57,7 +57,7 @@ impl<'p> Parser<'p> { | |||
57 | err.complete(self, ERROR); | 57 | err.complete(self, ERROR); |
58 | } | 58 | } |
59 | 59 | ||
60 | pub(crate) fn expect(&mut self, kind: SyntaxKind) -> bool { | 60 | fn expect(&mut self, kind: SyntaxKind) -> bool { |
61 | if self.at(kind) { | 61 | if self.at(kind) { |
62 | self.bump(); | 62 | self.bump(); |
63 | true | 63 | true |
@@ -77,40 +77,24 @@ impl<'p> Parser<'p> { | |||
77 | 77 | ||
78 | trait Lookahead: Copy { | 78 | trait Lookahead: Copy { |
79 | fn is_ahead(self, p: &Parser) -> bool; | 79 | fn is_ahead(self, p: &Parser) -> bool; |
80 | fn consume(p: &mut Parser); | ||
81 | } | 80 | } |
82 | 81 | ||
83 | impl Lookahead for SyntaxKind { | 82 | impl Lookahead for SyntaxKind { |
84 | fn is_ahead(self, p: &Parser) -> bool { | 83 | fn is_ahead(self, p: &Parser) -> bool { |
85 | p.current() == self | 84 | p.current() == self |
86 | } | 85 | } |
87 | |||
88 | fn consume(p: &mut Parser) { | ||
89 | p.bump(); | ||
90 | } | ||
91 | } | 86 | } |
92 | 87 | ||
93 | impl Lookahead for [SyntaxKind; 2] { | 88 | impl Lookahead for [SyntaxKind; 2] { |
94 | fn is_ahead(self, p: &Parser) -> bool { | 89 | fn is_ahead(self, p: &Parser) -> bool { |
95 | p.current() == self[0] && p.raw_lookahead(1) == self[1] | 90 | p.current() == self[0] && p.raw_lookahead(1) == self[1] |
96 | } | 91 | } |
97 | |||
98 | fn consume(p: &mut Parser) { | ||
99 | p.bump(); | ||
100 | p.bump(); | ||
101 | } | ||
102 | } | 92 | } |
103 | 93 | ||
104 | impl Lookahead for [SyntaxKind; 3] { | 94 | impl Lookahead for [SyntaxKind; 3] { |
105 | fn is_ahead(self, p: &Parser) -> bool { | 95 | fn is_ahead(self, p: &Parser) -> bool { |
106 | p.current() == self[0] && p.raw_lookahead(1) == self[1] && p.raw_lookahead(2) == self[2] | 96 | p.current() == self[0] && p.raw_lookahead(1) == self[1] && p.raw_lookahead(2) == self[2] |
107 | } | 97 | } |
108 | |||
109 | fn consume(p: &mut Parser) { | ||
110 | p.bump(); | ||
111 | p.bump(); | ||
112 | p.bump(); | ||
113 | } | ||
114 | } | 98 | } |
115 | 99 | ||
116 | #[derive(Clone, Copy)] | 100 | #[derive(Clone, Copy)] |
@@ -121,8 +105,4 @@ impl<'a> Lookahead for AnyOf<'a> { | |||
121 | let curr = p.current(); | 105 | let curr = p.current(); |
122 | self.0.iter().any(|&k| k == curr) | 106 | self.0.iter().any(|&k| k == curr) |
123 | } | 107 | } |
124 | |||
125 | fn consume(p: &mut Parser) { | ||
126 | p.bump(); | ||
127 | } | ||
128 | } | 108 | } |
diff --git a/src/parser/event_parser/parser.rs b/src/parser/event_parser/parser.rs index d19663865..2507af6bf 100644 --- a/src/parser/event_parser/parser.rs +++ b/src/parser/event_parser/parser.rs | |||
@@ -136,13 +136,6 @@ impl<'t> Parser<'t> { | |||
136 | self.events | 136 | self.events |
137 | } | 137 | } |
138 | 138 | ||
139 | pub(crate) fn current(&self) -> SyntaxKind { | ||
140 | if self.pos == self.tokens.len() { | ||
141 | return EOF; | ||
142 | } | ||
143 | self.tokens[self.pos].kind | ||
144 | } | ||
145 | |||
146 | pub(crate) fn start(&mut self) -> Marker { | 139 | pub(crate) fn start(&mut self) -> Marker { |
147 | let m = Marker { | 140 | let m = Marker { |
148 | pos: self.events.len() as u32, | 141 | pos: self.events.len() as u32, |
@@ -175,6 +168,10 @@ impl<'t> Parser<'t> { | |||
175 | self.tokens.get(self.pos + n).map(|t| t.kind).unwrap_or(EOF) | 168 | self.tokens.get(self.pos + n).map(|t| t.kind).unwrap_or(EOF) |
176 | } | 169 | } |
177 | 170 | ||
171 | pub(crate) fn current(&self) -> SyntaxKind { | ||
172 | self.raw_lookahead(0) | ||
173 | } | ||
174 | |||
178 | fn event(&mut self, event: Event) { | 175 | fn event(&mut self, event: Event) { |
179 | self.events.push(event) | 176 | self.events.push(event) |
180 | } | 177 | } |