xshade-parser 0.1.2

Parser and untyped AST for the xshade language.
Documentation
use nom::types::CompleteStr;
use nom_locate::LocatedSpan;
use ast::*;

type NomSpan<'a> = LocatedSpan<CompleteStr<'a>>;

#[derive(Debug, Eq, PartialEq, Serialize, Deserialize)]
pub struct Identifier {
    pub span: Span,
    pub name: String,
}

impl Identifier {
    pub fn new(name: &str, span: Span) -> Identifier {
        Identifier {
            span: span,
            name: name.to_string(),
        }
    }

    pub fn from_nom_span(span: &NomSpan) -> Identifier {
        Identifier {
            span: Span::new(span.offset, span.fragment.len(), span.line as usize, span.get_column() as usize),
            name: span.fragment.to_string(),
        }
    }
}

impl Spanned for Identifier {
    fn get_span(&self) -> Span {
        self.span
    }
}