Remove LALRPOP parser
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
@@ -1,58 +0,0 @@
|
|||||||
use std::str::FromStr;
|
|
||||||
use crate::vm::{
|
|
||||||
common::Addr,
|
|
||||||
inst::*,
|
|
||||||
obj::syn::{unescape_string, ast::*},
|
|
||||||
reg::*,
|
|
||||||
};
|
|
||||||
|
|
||||||
grammar;
|
|
||||||
|
|
||||||
Label: String = {
|
|
||||||
r"[a-zA-Z_][a-zA-Z0-9_]*" => String::from(<>),
|
|
||||||
}
|
|
||||||
|
|
||||||
Number: u64 = {
|
|
||||||
<s:r"\$[0-9]+"> => u64::from_str(&s[1..]).unwrap(),
|
|
||||||
<s:r"\$0x[0-9a-fA-F]+"> => u64::from_str_radix(&s[3..], 16).unwrap(),
|
|
||||||
<s:r"\$0b[01]+"> => u64::from_str_radix(&s[3..], 2).unwrap(),
|
|
||||||
}
|
|
||||||
|
|
||||||
String: String = {
|
|
||||||
<s:r#""([^"\\]|\\[\\nrt0"])*""#> => {
|
|
||||||
let len = s.len();
|
|
||||||
unescape_string(&s[1..len-1])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Reg: Reg = {
|
|
||||||
r"%ip" => todo!(),
|
|
||||||
r"%sp" => todo!(),
|
|
||||||
r"%fp" => todo!(),
|
|
||||||
r"%flags" => todo!(),
|
|
||||||
r"%nil" => todo!(),
|
|
||||||
r"%status" => todo!(),
|
|
||||||
r"%r[0-9]{1,2}" => todo!(),
|
|
||||||
}
|
|
||||||
|
|
||||||
ValueDecl: ValueDecl = {
|
|
||||||
r"\.u64" <Number> => ValueDecl::U64(<>),
|
|
||||||
r"\.u32" <Number> => ValueDecl::U32(<>),
|
|
||||||
r"\.u16" <Number> => ValueDecl::U16(<>),
|
|
||||||
r"\.u8" <Number> => ValueDecl::U8(<>),
|
|
||||||
r"\.string" <String> => ValueDecl::String(<>),
|
|
||||||
r"\.zstring" <String> => ValueDecl::ZString(<>),
|
|
||||||
}
|
|
||||||
|
|
||||||
SectionOrg: SectionOrg = {
|
|
||||||
<start:Number> => SectionOrg::Start(start),
|
|
||||||
<start:Number> r"\.\." <end:Number> => SectionOrg::Range(start, end),
|
|
||||||
}
|
|
||||||
|
|
||||||
Section: SectionBlock = {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
pub Sections: Vec<SectionBlock> = {
|
|
||||||
<Section*> => <>,
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user