Changing comments to use //, /*
This commit is contained in:
parent
ad8d2b22cd
commit
7a606980cb
@ -67,7 +67,7 @@ lazy_static! {
|
|||||||
"-" => (Func(bx!(Const(Int)), bx!(Func(bx!(Const(Int)), bx!(Const(Int))))), (), 10),
|
"-" => (Func(bx!(Const(Int)), bx!(Func(bx!(Const(Int)), bx!(Const(Int))))), (), 10),
|
||||||
"*" => (Func(bx!(Const(Int)), bx!(Func(bx!(Const(Int)), bx!(Const(Int))))), (), 20),
|
"*" => (Func(bx!(Const(Int)), bx!(Func(bx!(Const(Int)), bx!(Const(Int))))), (), 20),
|
||||||
"/" => (Func(bx!(Const(Int)), bx!(Func(bx!(Const(Int)), bx!(Const(Float))))), (), 20),
|
"/" => (Func(bx!(Const(Int)), bx!(Func(bx!(Const(Int)), bx!(Const(Float))))), (), 20),
|
||||||
"//" => (Func(bx!(Const(Int)), bx!(Func(bx!(Const(Int)), bx!(Const(Int))))), (), 20),
|
"//" => (Func(bx!(Const(Int)), bx!(Func(bx!(Const(Int)), bx!(Const(Int))))), (), 20), //TODO change this to `quot`
|
||||||
"%" => (Func(bx!(Const(Int)), bx!(Func(bx!(Const(Int)), bx!(Const(Int))))), (), 20),
|
"%" => (Func(bx!(Const(Int)), bx!(Func(bx!(Const(Int)), bx!(Const(Int))))), (), 20),
|
||||||
"++" => (Func(bx!(Const(StringT)), bx!(Func(bx!(Const(StringT)), bx!(Const(StringT))))), (), 30),
|
"++" => (Func(bx!(Const(StringT)), bx!(Func(bx!(Const(StringT)), bx!(Const(StringT))))), (), 30),
|
||||||
"^" => (Func(bx!(Const(Int)), bx!(Func(bx!(Const(Int)), bx!(Const(Int))))), (), 20),
|
"^" => (Func(bx!(Const(Int)), bx!(Func(bx!(Const(Int)), bx!(Const(Int))))), (), 20),
|
||||||
|
@ -550,6 +550,7 @@ impl Parser {
|
|||||||
Operator(op) => BinOp::get_precedence(&*op),
|
Operator(op) => BinOp::get_precedence(&*op),
|
||||||
Period => BinOp::get_precedence("."),
|
Period => BinOp::get_precedence("."),
|
||||||
Pipe => BinOp::get_precedence("|"),
|
Pipe => BinOp::get_precedence("|"),
|
||||||
|
Slash => BinOp::get_precedence("/"),
|
||||||
_ => break,
|
_ => break,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ pub enum TokenType {
|
|||||||
Pipe,
|
Pipe,
|
||||||
|
|
||||||
Comma, Period, Colon, Underscore,
|
Comma, Period, Colon, Underscore,
|
||||||
|
Slash,
|
||||||
|
|
||||||
Operator(Rc<String>),
|
Operator(Rc<String>),
|
||||||
DigitGroup(Rc<String>), HexLiteral(Rc<String>), BinNumberSigil,
|
DigitGroup(Rc<String>), HexLiteral(Rc<String>), BinNumberSigil,
|
||||||
@ -99,7 +100,7 @@ impl Token {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const OPERATOR_CHARS: [char; 19] = ['!', '$', '%', '&', '*', '+', '-', '.', '/', ':', '<', '>', '=', '?', '@', '^', '|', '~', '`'];
|
const OPERATOR_CHARS: [char; 18] = ['!', '$', '%', '&', '*', '+', '-', '.', ':', '<', '>', '=', '?', '@', '^', '|', '~', '`'];
|
||||||
fn is_operator(c: &char) -> bool {
|
fn is_operator(c: &char) -> bool {
|
||||||
OPERATOR_CHARS.iter().any(|x| x == c)
|
OPERATOR_CHARS.iter().any(|x| x == c)
|
||||||
}
|
}
|
||||||
@ -116,17 +117,20 @@ pub fn tokenize(input: &str) -> Vec<Token> {
|
|||||||
|
|
||||||
while let Some((line_idx, ch_idx, c)) = input.next() {
|
while let Some((line_idx, ch_idx, c)) = input.next() {
|
||||||
let cur_tok_type = match c {
|
let cur_tok_type = match c {
|
||||||
'#' => {
|
'/' => match input.peek() {
|
||||||
if let Some(&(_, _, '{')) = input.peek() {
|
Some(&(_, _, '/')) => {
|
||||||
} else {
|
|
||||||
while let Some((_, _, c)) = input.next() {
|
while let Some((_, _, c)) = input.next() {
|
||||||
if c == '\n' {
|
if c == '\n' {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
continue;
|
continue;
|
||||||
},
|
},
|
||||||
|
Some(&(_, _, '*')) => {
|
||||||
|
continue
|
||||||
|
},
|
||||||
|
_ => Slash
|
||||||
|
},
|
||||||
c if c.is_whitespace() && c != '\n' => continue,
|
c if c.is_whitespace() && c != '\n' => continue,
|
||||||
'\n' => Newline, ';' => Semicolon,
|
'\n' => Newline, ';' => Semicolon,
|
||||||
':' => Colon, ',' => Comma,
|
':' => Colon, ',' => Comma,
|
||||||
|
Loading…
Reference in New Issue
Block a user