Clear up some code a bit
This commit is contained in:
parent
1f527f7949
commit
0af6fed505
@ -2,7 +2,6 @@ use std::rc::Rc;
|
|||||||
use std::convert::From;
|
use std::convert::From;
|
||||||
|
|
||||||
use source_map::{SourceMap};
|
use source_map::{SourceMap};
|
||||||
|
|
||||||
use builtin::{BinOp, PrefixOp};
|
use builtin::{BinOp, PrefixOp};
|
||||||
|
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq)]
|
||||||
|
@ -87,6 +87,7 @@ impl Parser {
|
|||||||
self.token_handler.next()
|
self.token_handler.next()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
fn next_mapped(&mut self) -> SourceMap<TokenKind> {
|
fn next_mapped(&mut self) -> SourceMap<TokenKind> {
|
||||||
let tt = self.next();
|
let tt = self.next();
|
||||||
SourceMap {
|
SourceMap {
|
||||||
@ -94,6 +95,7 @@ impl Parser {
|
|||||||
data: Some(SourceData { line_number: 420, char_idx: 69 })
|
data: Some(SourceData { line_number: 420, char_idx: 69 })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
pub fn parse(&mut self) -> ParseResult<AST> {
|
pub fn parse(&mut self) -> ParseResult<AST> {
|
||||||
self.program()
|
self.program()
|
||||||
@ -1024,24 +1026,21 @@ impl Parser {
|
|||||||
#[recursive_descent_method]
|
#[recursive_descent_method]
|
||||||
fn int_literal(&mut self) -> ParseResult<Expression> {
|
fn int_literal(&mut self) -> ParseResult<Expression> {
|
||||||
use self::ExpressionType::*;
|
use self::ExpressionType::*;
|
||||||
match self.next_mapped() {
|
match self.next() {
|
||||||
t => match t.get() {
|
BinNumberSigil => {
|
||||||
BinNumberSigil => {
|
let digits = self.digits()?;
|
||||||
let digits = self.digits()?;
|
let n = parse_binary(digits)?;
|
||||||
let n = parse_binary(digits)?;
|
Ok(Expression(NatLiteral(n), None))
|
||||||
Ok(Expression(NatLiteral(n), None))
|
},
|
||||||
},
|
HexLiteral(text) => {
|
||||||
HexLiteral(text) => {
|
let digits: String = text.chars().filter(|c| c.is_digit(16)).collect();
|
||||||
let digits: String = text.chars().filter(|c| c.is_digit(16)).collect();
|
let n = parse_hex(digits)?;
|
||||||
let n = parse_hex(digits)?;
|
Ok(Expression(NatLiteral(n), None))
|
||||||
Ok(Expression(NatLiteral(n), None))
|
},
|
||||||
},
|
_ => return ParseError::new("Expected '0x' or '0b'"),
|
||||||
_ => return ParseError::new("Expected '0x' or '0b'"),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#[recursive_descent_method]
|
#[recursive_descent_method]
|
||||||
fn float_literal(&mut self) -> ParseResult<Expression> {
|
fn float_literal(&mut self) -> ParseResult<Expression> {
|
||||||
use self::ExpressionType::*;
|
use self::ExpressionType::*;
|
||||||
|
@ -10,9 +10,11 @@ impl<T> SourceMap<T> {
|
|||||||
&self.node
|
&self.node
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
pub fn get_source_data(&self) -> Option<SourceData> {
|
pub fn get_source_data(&self) -> Option<SourceData> {
|
||||||
self.data.clone()
|
self.data.clone()
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
|
Loading…
Reference in New Issue
Block a user