private bool ParseNewFile() { if (this.sr == null) { return(false); } while (true) { Token currToken = tok.Next(); if (currToken.Value == "module") { bkmrks = DFFModule.ParseModuleHeader(tok); this.moduleName = bkmrks[0].Value; bkmrks.RemoveAt(0); } if (currToken.Kind == TokenKind.EOF) { break; } if (currToken.Kind == TokenKind.EOL) { while (currToken.Kind == TokenKind.EOL) { currToken = tok.Next(); } string currWord = currToken.Value; if (currWord == "module") { bkmrks = DFFModule.ParseModuleHeader(tok); this.moduleName = bkmrks[0].Value; bkmrks.RemoveAt(0);//Remove module name bookmark } else if (currWord.StartsWith("dff")) { DFFModule dff = DFFModule.ParseDFF(tok); numDffsTopModule += dff.numDFFs; dffs.Add(dff); } else { foreach (VerilogFile subModule in this.subModules) { if (currWord == subModule.moduleName) { subPortBkmrks.Add(ParseSubmodule(tok, subModule)); } } } } } return(true); }
private bool WriteShadowDffs(StreamWriter sw, StreamReader sr) { string fileText; fileText = sr.ReadToEnd(); StringTokenizer tok = new StringTokenizer(fileText); tok.IgnoreWhiteSpace = true; int totalDFFs = 0; List <DFFModule> dffs = new List <DFFModule>(); List <Token> bkmrks = new List <Token>(); while (true) { Token currToken = tok.Next(); if (currToken.Value == "module") { bkmrks = DFFModule.ParseModuleHeader(tok); } if (currToken.Kind == TokenKind.EOF) { break; } if (currToken.Kind == TokenKind.EOL) { while (currToken.Kind == TokenKind.EOL) { currToken = tok.Next(); } string currWord = currToken.Value; if (currWord == "module") { bkmrks = DFFModule.ParseModuleHeader(tok); } if (currWord.StartsWith("dff")) { DFFModule dff = DFFModule.ParseDFF(tok); totalDFFs += dff.numDFFs; dffs.Add(dff); progressBar1.PerformStep(); } } } logBox.Text += "Total DFFs Detected: " + dffs.Count() + "\r\n"; logBox.Text += "Total DFF bits detected: " + totalDFFs + "\r\n"; logBox.Text += "DFF Output Names:" + "\r\n"; foreach (DFFModule dff in dffs) { logBox.Text += "\t" + dff.numDFFs + ": " + dff.qName + "\r\n"; progressBar1.PerformStep(); } bool writeSuccess = WriteShadowFile(sw, fileText, bkmrks, dffs, totalDFFs); return(writeSuccess); }