pulls #2: merge fix for hanging on FIXEDMASK

This commit is contained in:
Thomas Kramer
2025-09-19 13:43:11 +00:00
3 changed files with 2955 additions and 1 deletions

View File

@@ -104,6 +104,12 @@ where
} else if tk.test_str("RECT")? {
let iterate = tk.test_str("ITERATE")?;
let mask_num: Option<u8> = if tk.test_str("MASK")? {
Some(tk.take_and_parse()?)
} else {
None
};
let (p1, p2) = read_rect(tk)?;
let step_pattern = if iterate {
@@ -617,11 +623,12 @@ where
loop {
if tk.test_str("END")? {
break;
} else if tk.test_str("FIXEDMASK")? {
tk.expect_str(";");
} else if tk.test_str("CLASS")? {
let class: MacroClass = tk.take_and_parse()?;
let with_sub_class = if !tk.test_str(";")? {
// Read sub class.
let with_sub_class = match class {
MacroClass::COVER(_) => {
let bump = tk.test_str("BUMP")?;

File diff suppressed because it is too large Load Diff

View File

@@ -20,6 +20,18 @@ fn test_read_lef_freepdk45() {
assert!(result.is_ok());
}
#[test]
fn test_read_lef_freepdk45_mask_test() {
let f = File::open("./tests/data/lef_examples/freepdk45/gscl45nm_mask_test.lef").unwrap();
let mut buf = BufReader::new(f);
let result = lef_parser::read_lef_bytes(&mut buf);
dbg!(&result);
assert!(result.is_ok());
}
#[test]
fn test_read_lef_asap7() {
let f = File::open("./tests/data/lef_examples/asap7/asap7_tech_4x_201209.lef").unwrap();