Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 KB | None | 0 0
  1. #[derive(Debug, PartialEq, Clone)]
  2. enum Token {
  3. Ident(String),
  4. Int(i64),
  5. }
  6.  
  7. #[derive(Debug, PartialEq, Clone)]
  8. enum Expression {
  9. Ident(String),
  10. Int(i64),
  11. }
  12.  
  13. impl Expression {
  14. fn from_token(tok: Token) -> Expression {
  15. match tok {
  16. Token::Ident(ident) => Expression::Ident(ident),
  17. Token::Int(i64) => Expression::Int(i64),
  18. }
  19. }
  20. }
  21.  
  22. #[derive(Debug, PartialEq, Clone)]
  23. enum Statement {
  24. Let(Expression, Expression),
  25. }
  26.  
  27. fn main() {
  28. let ident = Token::Ident(String::from("aiueo"));
  29. let ident = Expression::from_token(ident);
  30. let int = Token::Int(7i64);
  31. let int = Expression::from_token(int);
  32. let h = Statement::Let(ident, int);
  33. println!("{:?}", h);
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement