From 6a4dd3ce54d6306e86979ff3ae09669292988c28 Mon Sep 17 00:00:00 2001 From: notafile Date: Tue, 4 Jan 2022 17:28:43 +0100 Subject: [PATCH] reorganize typedef --- src/literals.rs | 2 +- src/main.rs | 5 +---- src/parser.rs | 10 +++++++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/literals.rs b/src/literals.rs index 4897277..becbf8d 100644 --- a/src/literals.rs +++ b/src/literals.rs @@ -6,7 +6,7 @@ use nom::{ sequence::{preceded, terminated}, }; -use crate::IResult; +use crate::parser::IResult; pub fn decimal(input: &str) -> IResult<&str, u64> { map_res( diff --git a/src/main.rs b/src/main.rs index a31568b..b68eeec 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,7 +2,7 @@ mod literals; mod parser; mod rtlil; -use nom::error::{convert_error, VerboseError}; +use nom::error::convert_error; use std::path::PathBuf; use std::fs::File; use std::io::prelude::*; @@ -16,9 +16,6 @@ struct Opt { input: PathBuf, } -// custom IResult type for verboseerror -pub type IResult> = nom::IResult; - fn main() { let opt = Opt::from_args(); let mut infile = File::open(opt.input).expect("could not open file"); diff --git a/src/parser.rs b/src/parser.rs index 37b71d8..c8f86d2 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -3,16 +3,20 @@ use nom::{ bytes::complete::tag, character::complete::{alpha1, alphanumeric1, char, multispace0, multispace1}, combinator::{map, opt, recognize}, - error::{context, ParseError}, + error::{context, ParseError, VerboseError}, multi::{many0, many1, separated_list0}, sequence::{delimited, pair, preceded, separated_pair, terminated, tuple}, }; use nom_locate::{position, LocatedSpan}; + +// custom span type for nom_locate type Span<'a> = LocatedSpan<&'a str>; +// custom IResult type for VerboseError +pub type IResult> = nom::IResult; + use crate::literals::{decimal, hexadecimal}; -use crate::IResult; fn ws0<'a, F: 'a, O, E: ParseError<&'a str>>( inner: F, @@ -207,7 +211,7 @@ pub fn module(input: &str) -> IResult<&str, Module> { )(input) } -fn parse(input: &str) -> IResult<&str, Module> { +pub fn parse(input: &str) -> IResult<&str, Module> { module(input) }