MCPcopy Create free account
hub / github.com/dylan-sutton-chavez/edge-python / atom

Method atom

std/re/src/main/parser.rs:129–141  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

127 }
128
129 fn atom(&mut self) -> Result<Node, ParseError> {
130 match self.peek() {
131 Some('(') => self.group(),
132 Some('[') => self.class(),
133 Some('.') => { self.bump(); Ok(Node::AnyChar) }
134 Some('^') => { self.bump(); Ok(Node::Start) }
135 Some('$') => { self.bump(); Ok(Node::End) }
136 Some('\\') => self.escape(),
137 Some('*') | Some('+') | Some('?') => Err(self.err("nothing to repeat")),
138 Some(c) => { self.bump(); Ok(Node::Char(c)) }
139 None => Ok(Node::Empty),
140 }
141 }
142
143 fn group(&mut self) -> Result<Node, ParseError> {
144 self.bump(); // open paren

Callers 1

quantifiedMethod · 0.80

Calls 6

groupMethod · 0.80
classMethod · 0.80
bumpMethod · 0.80
escapeMethod · 0.80
peekMethod · 0.45
errMethod · 0.45

Tested by

no test coverage detected