Line 1700... |
Line 1700... |
if ( $this->{linebuf} =~
|
if ( $this->{linebuf} =~
|
s%^(.*?)((/\*)| # anything followed by /* comment
|
s%^(.*?)((/\*)| # anything followed by /* comment
|
(//)| # or // comment
|
(//)| # or // comment
|
(\(\*(?!\s*\)))| # or (* attribute (but not (*)
|
(\(\*(?!\s*\)))| # or (* attribute (but not (*)
|
(\`include\s)| # or `include
|
(\`include\s)| # or `include
|
(\")) # or start of string
|
(\")| # or start of string
|
|
(import\s)) # import package
|
|
|
|
|
%$2%ox ) {
|
%$2%ox ) {
|
$chunk->{isEnd} = 1;
|
$chunk->{isEnd} = 1;
|
$chunk->{text} = $1;
|
$chunk->{text} = $1;
|
if (defined($3)) {
|
if (defined($3)) {
|
$this->{state} = 1; # long comment
|
$this->{state} = 1; # long comment
|
}
|
}
|
elsif (defined($4)) {
|
elsif (defined($4) ||defined($8) ) {
|
$this->{state} = 2; # short comment
|
$this->{state} = 2; # short comment
|
}
|
}
|
elsif (defined($5)) {
|
elsif (defined($5)) {
|
$this->{state} = 3; # attribute
|
$this->{state} = 3; # attribute
|
}
|
}
|
Line 3316... |
Line 3319... |
{
|
{
|
stateName => 'PARAM_AFTER_EQUALS',
|
stateName => 'PARAM_AFTER_EQUALS',
|
allowAnything => 1,
|
allowAnything => 1,
|
search =>
|
search =>
|
[
|
[
|
{ arcName => 'CONCAT', regexp => '{' ,
|
{ arcName => 'CONCAT', regexp => '\{' ,
|
nextState => ['IN_CONCAT','PARAM_AFTER_EQUALS'] , },
|
nextState => ['IN_CONCAT','PARAM_AFTER_EQUALS'] , },
|
{ arcName => 'COMMA', regexp => ',' ,
|
{ arcName => 'COMMA', regexp => ',' ,
|
nextState => ['PARAM_NAME'] , },
|
nextState => ['PARAM_NAME'] , },
|
{ arcName => 'SEMICOLON', regexp => ';' , },
|
{ arcName => 'SEMICOLON', regexp => ';' , },
|
@$vid_vnum_or_string,
|
@$vid_vnum_or_string,
|
Line 3329... |
Line 3332... |
{
|
{
|
stateName => 'IN_CONCAT',
|
stateName => 'IN_CONCAT',
|
allowAnything => 1,
|
allowAnything => 1,
|
search =>
|
search =>
|
[
|
[
|
{ arcName => 'CONCAT' , regexp => '{' ,
|
{ arcName => 'CONCAT' , regexp => '\{' ,
|
nextState => ['IN_CONCAT','IN_CONCAT'] , },
|
nextState => ['IN_CONCAT','IN_CONCAT'] , },
|
{ arcName => 'END' , regexp => '}' , }, # pop up
|
{ arcName => 'END' , regexp => '}' , }, # pop up
|
@$vid_vnum_or_string,
|
@$vid_vnum_or_string,
|
]
|
]
|
},
|
},
|
Line 3442... |
Line 3445... |
allowAnything => 1,
|
allowAnything => 1,
|
search =>
|
search =>
|
[
|
[
|
{ arcName=>'COMMA', regexp => ',',
|
{ arcName=>'COMMA', regexp => ',',
|
nextState => ['ASSIGN'],},
|
nextState => ['ASSIGN'],},
|
{ arcName=>'CONCAT', regexp => '{',
|
{ arcName=>'CONCAT', regexp => '\{',
|
nextState => ['IN_CONCAT','ASSIGN_AFTER_EQUALS'],},
|
nextState => ['IN_CONCAT','ASSIGN_AFTER_EQUALS'],},
|
# don't get confused by function calls (which can also contain commas)
|
# don't get confused by function calls (which can also contain commas)
|
{ arcName=>'BRACKET', regexp => '\(',
|
{ arcName=>'BRACKET', regexp => '\(',
|
nextState => ['IN_BRACKET','ASSIGN_AFTER_EQUALS'],},
|
nextState => ['IN_BRACKET','ASSIGN_AFTER_EQUALS'],},
|
{ arcName=>'END', regexp => ';',
|
{ arcName=>'END', regexp => ';',
|
Line 3498... |
Line 3501... |
stateName => 'SIGNAL_AFTER_EQUALS' ,
|
stateName => 'SIGNAL_AFTER_EQUALS' ,
|
allowAnything => 1,
|
allowAnything => 1,
|
search =>
|
search =>
|
[
|
[
|
{ regexp => ',', nextState => ['SIGNAL_NAME'],},
|
{ regexp => ',', nextState => ['SIGNAL_NAME'],},
|
{ regexp => '{', nextState => ['IN_CONCAT','SIGNAL_AFTER_EQUALS'],},
|
{ regexp => '\{', nextState => ['IN_CONCAT','SIGNAL_AFTER_EQUALS'],},
|
{ regexp => '\(', nextState => ['IN_BRACKET','SIGNAL_AFTER_EQUALS'],},
|
{ regexp => '\(', nextState => ['IN_BRACKET','SIGNAL_AFTER_EQUALS'],},
|
{ arcName => 'END', regexp => ';', }, # pop up
|
{ arcName => 'END', regexp => ';', }, # pop up
|
@$vid_vnum_or_string,
|
@$vid_vnum_or_string,
|
],
|
],
|
},
|
},
|
Line 3661... |
Line 3664... |
# like a normal assign as hierarchical nets/signals will confuse downstream code
|
# like a normal assign as hierarchical nets/signals will confuse downstream code
|
{ arcName => 'HIER_ASSIGN_OR_TASK', regexp => '$HVID' ,
|
{ arcName => 'HIER_ASSIGN_OR_TASK', regexp => '$HVID' ,
|
nextState => ['STMNT_ASSIGN_OR_TASK'] , },
|
nextState => ['STMNT_ASSIGN_OR_TASK'] , },
|
{ arcName => 'ASSIGN_OR_TASK', regexp => '$VID' ,
|
{ arcName => 'ASSIGN_OR_TASK', regexp => '$VID' ,
|
nextState => ['STMNT_ASSIGN_OR_TASK'] , },
|
nextState => ['STMNT_ASSIGN_OR_TASK'] , },
|
{ arcName => 'CONCAT', regexp => '{' ,
|
{ arcName => 'CONCAT', regexp => '\{' ,
|
nextState => ['IN_CONCAT','STMNT_ASSIGN'] , },
|
nextState => ['IN_CONCAT','STMNT_ASSIGN'] , },
|
{ arcName => 'NULL', regexp => ';' ,
|
{ arcName => 'NULL', regexp => ';' ,
|
}, # pop up
|
}, # pop up
|
{ arcName => 'POINTY_THING', regexp => '->' , # not sure what this is!
|
{ arcName => 'POINTY_THING', regexp => '->' , # not sure what this is!
|
nextState => ['POINTY_THING_NAME'] , },
|
nextState => ['POINTY_THING_NAME'] , },
|
Line 3936... |
Line 3939... |
{ # v2001 module_parameter_port_list (A.1.3)
|
{ # v2001 module_parameter_port_list (A.1.3)
|
stateName => 'PPL_AFTER_EQUALS',
|
stateName => 'PPL_AFTER_EQUALS',
|
allowAnything => 1,
|
allowAnything => 1,
|
search =>
|
search =>
|
[
|
[
|
{ arcName => 'CONCAT', regexp => '{' ,
|
{ arcName => 'CONCAT', regexp => '\{' ,
|
nextState => ['IN_CONCAT','PPL_AFTER_EQUALS'] , },
|
nextState => ['IN_CONCAT','PPL_AFTER_EQUALS'] , },
|
{ arcName => 'BRACKET', regexp => '\(' ,
|
{ arcName => 'BRACKET', regexp => '\(' ,
|
nextState => ['IN_BRACKET','PPL_AFTER_EQUALS'] , },
|
nextState => ['IN_BRACKET','PPL_AFTER_EQUALS'] , },
|
{ arcName => 'COMMA', regexp => ',' ,
|
{ arcName => 'COMMA', regexp => ',' ,
|
nextState => ['PPL_PARAM_OR_NAME'] , },
|
nextState => ['PPL_PARAM_OR_NAME'] , },
|