aboutsummaryrefslogtreecommitdiffstats
path: root/src/parse
diff options
context:
space:
mode:
authorJonas Maier <jonas@x77.dev>2026-05-31 19:36:01 +0200
committerJonas Maier <jonas@x77.dev>2026-05-31 19:36:01 +0200
commit789bea635f6b566af6d2793fee484ce129c33caa (patch)
tree585f323b909f90fade205f61bdbd36f9d8c16c40 /src/parse
parent81759dd51eb1f6f9a7dc8af9b2b8126ff7dfab24 (diff)
downloadpish-789bea635f6b566af6d2793fee484ce129c33caa.tar.gz
comment parsing
Diffstat (limited to 'src/parse')
-rw-r--r--src/parse/mod.rs20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/parse/mod.rs b/src/parse/mod.rs
index 5815730..b475943 100644
--- a/src/parse/mod.rs
+++ b/src/parse/mod.rs
@@ -1537,8 +1537,26 @@ impl<'a> Cursor<'a> {
matches!(self.buf[0], b' ' | b'\t' | b'\n' | b'\r')
}
+ fn peek_comment(&self) -> bool {
+ self.has() && self.peek() == b'#'
+ }
+
+ fn consume_comment(&mut self) {
+ assert_eq!(self.adv(), b'#');
+ while self.has() && self.peek() != b'\n' {
+ self.adv();
+ }
+ }
+
fn spaces(&mut self) {
- while self.peek_space() {
+ while {
+ if self.peek_comment() {
+ self.consume_comment();
+ true
+ } else {
+ self.peek_space()
+ }
+ } {
self.adv();
self.spaced = true;
}