Add support for hash notation in the elisp parser.
This commit is contained in:
parent
cf0991fdff
commit
f7afcec824
@ -167,8 +167,12 @@ fn vector<'s>(input: &'s str) -> Res<&'s str, Token<'s>> {
|
|||||||
#[cfg_attr(feature = "tracing", tracing::instrument(ret, level = "debug"))]
|
#[cfg_attr(feature = "tracing", tracing::instrument(ret, level = "debug"))]
|
||||||
fn atom<'s>(input: &'s str) -> Res<&'s str, Token<'s>> {
|
fn atom<'s>(input: &'s str) -> Res<&'s str, Token<'s>> {
|
||||||
not(peek(one_of(")]")))(input)?;
|
not(peek(one_of(")]")))(input)?;
|
||||||
// TODO: Add calls to hash notation
|
alt((
|
||||||
alt((text_with_properties, quoted_atom, unquoted_atom))(input)
|
text_with_properties,
|
||||||
|
hash_notation,
|
||||||
|
quoted_atom,
|
||||||
|
unquoted_atom,
|
||||||
|
))(input)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg_attr(feature = "tracing", tracing::instrument(ret, level = "debug"))]
|
#[cfg_attr(feature = "tracing", tracing::instrument(ret, level = "debug"))]
|
||||||
@ -196,6 +200,18 @@ fn quoted_atom<'s>(input: &'s str) -> Res<&'s str, Token<'s>> {
|
|||||||
Ok((remaining, Token::Atom(source)))
|
Ok((remaining, Token::Atom(source)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg_attr(feature = "tracing", tracing::instrument(ret, level = "debug"))]
|
||||||
|
fn hash_notation<'s>(input: &'s str) -> Res<&'s str, Token<'s>> {
|
||||||
|
let (remaining, _) = tag("#<")(input)?;
|
||||||
|
let (remaining, _body) = take_till1(|c| match c {
|
||||||
|
'>' => true,
|
||||||
|
_ => false,
|
||||||
|
})(remaining)?;
|
||||||
|
let (remaining, _) = tag(">")(remaining)?;
|
||||||
|
let source = get_consumed(input, remaining);
|
||||||
|
Ok((remaining, Token::Atom(source)))
|
||||||
|
}
|
||||||
|
|
||||||
fn text_with_properties<'s>(input: &'s str) -> Res<&'s str, Token<'s>> {
|
fn text_with_properties<'s>(input: &'s str) -> Res<&'s str, Token<'s>> {
|
||||||
let (remaining, _) = tag("#(")(input)?;
|
let (remaining, _) = tag("#(")(input)?;
|
||||||
let (remaining, (text, props)) = delimited(
|
let (remaining, (text, props)) = delimited(
|
||||||
|
Loading…
Reference in New Issue
Block a user