diff --git a/schala-lang/language/src/ast.rs b/schala-lang/language/src/ast.rs index 973389d..19e28d2 100644 --- a/schala-lang/language/src/ast.rs +++ b/schala-lang/language/src/ast.rs @@ -1,4 +1,7 @@ use std::rc::Rc; +use std::convert::From; + +use source_map::{SourceMap}; use builtin::{BinOp, PrefixOp}; @@ -63,6 +66,12 @@ pub enum Variant { #[derive(Debug, PartialEq, Clone)] pub struct Expression(pub ExpressionType, pub Option); +impl From for SourceMap { + fn from(node: Expression) -> Self { + SourceMap { node, data: None } + } +} + #[derive(Debug, PartialEq, Clone)] pub enum TypeIdentifier { Tuple(Vec), @@ -116,6 +125,13 @@ pub enum ExpressionType { }, ListLiteral(Vec), } + +impl From for SourceMap { + fn from(node: ExpressionType) -> Self { + SourceMap { node, data: None } + } +} + #[derive(Debug, PartialEq, Clone)] pub enum Discriminator { Simple(Expression),