blob: 5b9398a2ea302504ffc046ddd807b9b1723fdb28 [file] [log] [blame]
#!/usr/bin/perl
## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
# Extract tokens (will need more editting)
$/ = undef ;
$_ = <> ;
s!//.*!!g ;
# Not greedy to find end brace
@t = m/TOKEN\s*(?:\[IGNORE_CASE\])?\s*:\s*\n\{(.*?)\n\}/sg ;
#{\s*([^{}]*)}/sg ;
# Fixups:
for $t (@t)
{
$t =~ s/\r//g ;
#print "\nTEXT:\nT:",$t,":\n" ;
@s = split(/\n\|/,$t) ;
for $s (@s)
{
($name, $rule) = split(/:/,$s,2) ;
## Leading < and excess whitespace
$name =~ s/^\s*\<\s*// ;
$name =~ s/\s+$// ;
## Trailing > and excess whitespace
$rule =~ s/^\s+// ;
$rule =~ s/\s*\>\s*$// ;
$rule =~ s/\|\s*\n\s*/\|/sg ;
$rule =~ s/\n\s*\|/\|/sg ;
## print "NAME: /",$name , "/\n" ;
## print "--> ", $rule , "\n" ;
$spc = ' ' x (10-length($name)) ;
print "<",$name,">", $spc, " ::= ",$rule,"\n" ;
}
}