summaryrefslogtreecommitdiff
path: root/src/chomp
diff options
context:
space:
mode:
Diffstat (limited to 'src/chomp')
-rw-r--r--src/chomp/ast/mod.rs9
-rw-r--r--src/chomp/typed/infer.rs8
2 files changed, 8 insertions, 9 deletions
diff --git a/src/chomp/ast/mod.rs b/src/chomp/ast/mod.rs
index 9a159e4..e4ed2fc 100644
--- a/src/chomp/ast/mod.rs
+++ b/src/chomp/ast/mod.rs
@@ -1,7 +1,6 @@
use std::fmt::{self, Display};
use proc_macro2::Span;
-use syn::Token;
use super::Name;
@@ -16,9 +15,9 @@ pub type Literal = String;
#[derive(Clone, Debug)]
pub struct Cat {
pub first: Box<NamedExpression>,
- pub punct: Option<Token![.]>,
+ pub punct: Option<Span>,
pub second: Box<NamedExpression>,
- pub rest: Vec<(Option<Token![.]>, NamedExpression)>,
+ pub rest: Vec<(Option<Span>, NamedExpression)>,
}
impl Display for Cat {
@@ -49,9 +48,9 @@ impl Eq for Cat {}
#[derive(Clone, Debug)]
pub struct Alt {
pub first: Box<NamedExpression>,
- pub punct: Option<Token![|]>,
+ pub punct: Option<Span>,
pub second: Box<NamedExpression>,
- pub rest: Vec<(Option<Token![|]>, NamedExpression)>
+ pub rest: Vec<(Option<Span>, NamedExpression)>
}
impl Display for Alt {
diff --git a/src/chomp/typed/infer.rs b/src/chomp/typed/infer.rs
index 0161471..8095103 100644
--- a/src/chomp/typed/infer.rs
+++ b/src/chomp/typed/infer.rs
@@ -48,11 +48,11 @@ impl Folder for TypeInfer<'_> {
let rest = rest
.into_iter()
.map(|(punct, term)| -> Result<_, TypeError> {
- Ok((punct.map(|p| p.span), term.fold(&mut infer)?))
+ Ok((punct, term.fold(&mut infer)?))
})
.collect::<Result<Vec<_>, _>>()?;
Ok(TypedExpression {
- inner: super::Cat::new(first, punct.map(|p| p.span), second, rest)?.into(),
+ inner: super::Cat::new(first, punct, second, rest)?.into(),
name,
span,
})
@@ -71,11 +71,11 @@ impl Folder for TypeInfer<'_> {
let rest = rest
.into_iter()
.map(|(punct, term)| -> Result<_, TypeError> {
- Ok((punct.map(|p| p.span), term.fold(&mut infer)?))
+ Ok((punct, term.fold(&mut infer)?))
})
.collect::<Result<Vec<_>, _>>()?;
Ok(TypedExpression {
- inner: super::Alt::new(first, punct.map(|p| p.span), second, rest)?.into(),
+ inner: super::Alt::new(first, punct, second, rest)?.into(),
name,
span,
})