From 84c7ec41455e9f7b9bdd7a7336a877fb04e4bd3a Mon Sep 17 00:00:00 2001 From: NanoTech Date: Tue, 6 Dec 2016 09:42:42 +0000 Subject: Read and parse stdin --- src/main.rs | 9 ++++++--- src/parser.rs | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index aebbad9..e5238dc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,12 +9,15 @@ mod grammar_util; pub mod lexer; pub mod parser; +use std::io::{self, Read}; + fn main() { - println!("Hello, world!"); + let mut buffer = String::new(); + io::stdin().read_to_string(&mut buffer).unwrap(); + let r = parser::parse_expr(&buffer); + println!("{:?}", r); /* - inText <- Data.Text.Lazy.IO.getContents - expr <- case exprFromText (Directed "(stdin)" 0 0 0 0) inText of Left err -> Control.Exception.throwIO err Right expr -> return expr diff --git a/src/parser.rs b/src/parser.rs index 1561230..1ecf040 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -6,7 +6,7 @@ use lexer::{Lexer, LexicalError, Tok}; pub type ParseError = lalrpop_util::ParseError; -fn parse_expr(s: &str) -> Result { +pub fn parse_expr(s: &str) -> Result { grammar::parse_Expr(Lexer::new(s)) } -- cgit v1.2.3