valkyrie-antlr 0.0.0

The hand write parser of valkyrie language
Documentation
use super::*;

impl<'i> Extractor<ModifiersContext<'i>> for ModifiersNode {
    fn take_one(node: &ModifiersContextAll<'i>) -> Option<Self> {
        Some(Self { terms: IdentifierNode::take_many(&node.identifier_all()) })
    }
}

impl<'i> Extractor<Modified_identifierContextAll<'i>> for ModifiersNode {
    fn take_one(node: &Modified_identifierContextAll<'i>) -> Option<Self> {
        Some(Self { terms: IdentifierNode::take_many(&node.mods) })
    }
}
impl<'i> Extractor<Modified_identifierContextAll<'i>> for IdentifierNode {
    fn take_one(node: &Modified_identifierContextAll<'i>) -> Option<Self> {
        let id = node.id.clone()?;
        IdentifierNode::take_one(&*id)
    }
}

impl<'i> Extractor<Modified_namepathContextAll<'i>> for ModifiersNode {
    fn take_one(node: &Modified_namepathContextAll<'i>) -> Option<Self> {
        Some(Self { terms: IdentifierNode::take_many(&node.mods) })
    }
}

impl<'i> Extractor<Modified_namepathContextAll<'i>> for NamePathNode {
    fn take_one(node: &Modified_namepathContextAll<'i>) -> Option<Self> {
        Some(Self { names: IdentifierNode::take_many(&node.path) })
    }
}