function test (aaaaa) {
var myTest1 = 1;
var myTest2 = 2, myTest3 = 3, myTest4;
var myTest5 = new Array(__QUOTE__,__QUOTE__), myTest6;
var myTest7 =__REGEX__;
var myTest8 = myTest5.x;
var myTest9 = myTest[0], myTest10 = myTest[0];
var myTest11 = (myTest1 == myTest2);
var myTest12 = (myTest1 == myTest2), myTest13 = 2;
var myTest14 = (myTest1 == myTest2), myTest15;
var myTest16 = new Array(1, 2);
var myTest17 = new(blah), myTest18 = new(blah,blah2), myTest19;
}
####
my (@localDeclaredVars) = ($strInput =~ m/\bvar\s+([^;]+)/g);
foreach my $localDeclaredVar (@localDeclaredVars) {
if ($localDeclaredVar =~ m/,/) {
# We have multiple variables declared in one line.
@localDeclaredSubVars = $localDeclaredVar =~ m{
(
# Grab the variable name
\w+
)
\s*
(?:
# Suck up any possible values of that variable
=
\s*
(?:
# A variable with parentheses and possible comma
(?:
\(
(?: \\. [^\)\\]* )*
\)
)
|
(?:
# A straight variable or value
[^,]+
)
)*
)?
,?
}gx;
print "\n$localDeclaredVar\n";
foreach my $localDeclaredSubVar (@localDeclaredSubVars) {
if ($localDeclaredSubVar =~ m/=/) {
($localDeclaredSubVar) = ($localDeclaredSubVar =~ m/\s*([^= ]+)\s*=/);
}
print " $localDeclaredSubVar\n";
push (@localVariables, $localDeclaredSubVar) if ($localDeclaredSubVar);
}
} else {
# We have a single variable declaration.
print "\n$localDeclaredVar\n";
if ($localDeclaredVar =~ m/=/) {
($localDeclaredVar) = ($localDeclaredVar =~ m/\s*([^= ]+)\s*=/);
}
print " $localDeclaredVar\n";
push (@localVariables, $localDeclaredVar) if ($localDeclaredVar);
}
}
####
myTest1 = 1
myTest1
myTest2 = 2, myTest3 = 3, myTest4
myTest2
myTest3
myTest4
myTest5 = new Array(__QUOTE__,__QUOTE__), myTest6
myTest5
__QUOTE__
myTest6
myTest7 =__REGEX__
myTest7
myTest8 = myTest5.x
myTest8
myTest9 = myTest[0], myTest10 = myTest[0]
myTest9
myTest10
myTest11 = (myTest1 == myTest2)
myTest11
myTest12 = (myTest1 == myTest2), myTest13 = 2
myTest12
myTest13
myTest14 = (myTest1 == myTest2), myTest15
myTest14
myTest15
myTest16 = new Array(1, 2)
myTest16
2
myTest17 = new(blah), myTest18 = new(blah,blah2), myTest19
myTest17
myTest18
blah2
myTest19