Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Quoted cell names absorb terminating whitespace #126

Closed
veripoolbot opened this issue Jan 5, 2007 · 0 comments
Closed

Quoted cell names absorb terminating whitespace #126

veripoolbot opened this issue Jan 5, 2007 · 0 comments
Assignees

Comments

@veripoolbot
Copy link
Collaborator


Author Name: Jeff Trull (@jefftrull)
Original Redmine Issue: 126 from https://www.veripool.org
Original Date: 2007-01-05
Original Assignee: Wilson Snyder (@wsnyder)


This bug was cloned from Perl-RT, rt24247.

Email addresses have have been truncated.

Id: 	24247
Status: 	resolved
Left: 	0 min
Queue: 	Verilog-Perl
Owner: 	Nobody
Requestors: 	jetrull <jetrull@>

Severity: 	Important
Broken in: 	2.361
Fixed in: 	3.000
X Attachments
cellname_space.diff

     * Fri Jan 05 18:32:25 2007 (499b) by jetrull

Fri Jan 05 18:32:25 2007 jetrull - Ticket created

Subject: 	Quoted cell names absorb terminating whitespace

A cell declaration like this:

modname \UU_cellname (...

gets stored in the parser as "\UU_cellname " (note trailing space).
This isn't a problem if the cell name is simply read in and then written
back out later, but if you want to use, for example, $mod->find_cell, it
will fail without the embedded space.

The solution is simple and a patch is attached.

Regards,
Jeff Trull

Subject: 	cellname_space.diff

[text/x-patch 499b]
--- Verilog-Perl-2.361/Parser.pm 2006-10-02 06:22:50.000000000 -0700
+++ Verilog-Perl-2.361-mrhack/Parser.pm 2007-01-05 15:06:32.924728000 -0800
@@ -406,7 +406,7 @@
$self->{inquote} = 1;
}
elsif (($text =~ s/^([a-zA-Z_\`\$][a-zA-Z0-9_\`\$]*)//)
- || ($text =~ s/^(\\\S+\s+)//)) { #cseddon - escaped identifiers
+ || ($text =~ s/^(\\\S+)\s+//)) { #cseddon - escaped identifiers
my $token = $1;
if (!$self->{inquote}) {
if (Verilog::Language::is_keyword($token)) {

Fri Jan 05 21:51:22 2007 jetrull - Correspondence added

From: 	jetrull@

I guess it's not as simple as I thought - once the trailing spaces are
no longer stored as part of the symbol (cell or net name) you need to
take extra care to add whitespace whenever you output a quoted symbol.
Minor changes to SigParser.pm and Netlist/Net.pm are required, which I
can provide if desired (need to separate out my other patches).

Jeff

Tue Jan 09 12:49:46 2007 WSNYDER - Correspondence added

Hmm, my approach of removing the \ and space, then having a function to
add back the quoting doesn't work, because of complicated pin connection
expressions. It would need to know exactly where each signal name
begins and ends.

Instead, I think if I remove the \ and space for symbols that don't need
it, it will all be consistent and cells will resolve properly.

Tue Jan 09 12:49:48 2007 RT_System - Status changed from 'new' to 'open'

Wed Jun 13 12:37:17 2007 WSNYDER - Fixed in 3.000 added

Wed Jun 13 12:37:20 2007 WSNYDER - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants