50 |
# delete everything except the grammar lines |
# delete everything except the grammar lines |
51 |
splice(@yacc_in, $in_marker_end, $#yacc_in - $in_marker_end); |
splice(@yacc_in, $in_marker_end, $#yacc_in - $in_marker_end); |
52 |
splice(@yacc_in, 0, $in_marker_begin + 1); |
splice(@yacc_in, 0, $in_marker_begin + 1); |
53 |
|
|
54 |
|
# remove C++ code |
55 |
|
$scalar_yacc_in = join("", @yacc_in); |
56 |
|
$scalar_yacc_in =~ s/'\{'|'\}'//mg; |
57 |
|
$scalar_yacc_in =~ s/\{(\d|[a-z]|[A-Z]|\#|;|:|<|>|\(|\)|\$|\[|\]|=|\+|-|\"|'|_|\\|\/|\.|,|\s|\n|\r)*\}//mgix; |
58 |
|
# remove surving '}' character ;-) |
59 |
|
#$scalar_yacc_in =~ s/\}/\n/g; |
60 |
|
|
61 |
|
# convert scalar, long string into a line array |
62 |
|
@yacc_in = split(/\n/, $scalar_yacc_in); |
63 |
|
|
64 |
# do the XML transformation |
# do the XML transformation |
65 |
$i = 0; |
$i = 0; |
66 |
foreach $line (@yacc_in) { |
foreach $line (@yacc_in) { |
67 |
$_ = $line; |
$_ = $line . "\n"; |
68 |
# remove C++ code |
# remove C++ code |
69 |
s/\{\p{IsASCII}*\}//g; |
s/\{\p{IsASCII}*\}//g; |
70 |
s/\/\/\p{IsASCII}*$/\r\n/g; |
s/\/\/\p{IsASCII}*$/\r\n/g; |