Skip to content

Commit bc5e00f

Browse files
domenicsideshowbarker
authored andcommitted
Remove unused parts of .pre-process-main.pl
Part of #234.
1 parent 97daf29 commit bc5e00f

File tree

1 file changed

+4
-167
lines changed

1 file changed

+4
-167
lines changed

.pre-process-main.pl

Lines changed: 4 additions & 167 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424
# actual work
2525
my $currentRepresents = '';
2626
my $represents = {};
27-
my $parserExpanderState = undef;
28-
my $parserExpanderMode = 'passthrough';
2927

3028
while (@lines) {
3129
my $line = shift @lines;
@@ -82,176 +80,15 @@
8280
}
8381
$line =~ s|<!--REPRESENTS ([^>]+)-->| if (exists $represents->{$1}) { $represents->{$1} } else { die "\nUnknown element <$1> used in REPRESENTS pragma.\n" }|gose;
8482

85-
$line = parserExpander($line);
83+
# This seems to be necessary due to the file substitutions, for some reason.
84+
$line = normalizeNewlines($line);
8685

8786
print "$line";
8887
}
8988
report "\n";
9089

91-
sub expand {
92-
my($val) = @_;
93-
return 'a <span>space character</span>' if $val eq 'space character';
94-
return 'a U+002D HYPHEN-MINUS character (-)' if $val eq '-';
95-
return 'a U+002E FULL STOP character (.)' if $val eq '.';
96-
return 'an <span data-x="ASCII digits">ASCII digit</span>' if $val eq '0-9';
97-
return 'a U+0045 LATIN CAPITAL LETTER E character or a U+0065 LATIN SMALL LETTER E character' if $val eq 'e/E';
98-
return 'an <span data-x="uppercase ASCII letters">uppercase ASCII letter</span> or a <span data-x="lowercase ASCII letters">lowercase ASCII letter</span>' if $val eq 'letter';
99-
return 'EOF' if $val eq 'eof';
100-
die "unknown value type: '$val'";
101-
}
102-
103-
sub parserExpander {
90+
sub normalizeNewlines {
10491
$_ = shift;
10592
chomp;
106-
my $output = '';
107-
if ($parserExpanderMode eq 'passthrough') {
108-
if (m/^( *)<pre>parse/gs) {
109-
$parserExpanderState = {
110-
indent => $1,
111-
variables => {},
112-
actions => {},
113-
refs => {},
114-
mode => '',
115-
prefix => '',
116-
level => 0,
117-
};
118-
if (m/\G using /gs) {
119-
while (m/\G(.+?)(, |$)/gs) {
120-
die if exists $parserExpanderState->{variables}->{$1};
121-
$parserExpanderState->{variables}->{$1} = 1;
122-
}
123-
}
124-
$output .= "$parserExpanderState->{indent}<dl class=\"switch\">\n";
125-
$parserExpanderMode = 'parser';
126-
} else {
127-
$output .= "$_\n";
128-
}
129-
} elsif ($parserExpanderMode eq 'parser') {
130-
die unless $parserExpanderState;
131-
if (m/^$parserExpanderState->{indent}([^ ]+)ing to: (.+)$/s) {
132-
die if exists $parserExpanderState->{actions}->{$1};
133-
$parserExpanderState->{actions}->{$1} = $2;
134-
} elsif (m/^$parserExpanderState->{indent}switch using (.+)/s) {
135-
die if length $parserExpanderState->{mode};
136-
$parserExpanderState->{mode} = $1;
137-
} elsif (m/^$parserExpanderState->{indent}defined above: /gs) {
138-
while (m/\G(.+?)(, |$)/gs) {
139-
die if exists $parserExpanderState->{refs}->{$1};
140-
$parserExpanderState->{refs}->{$1} = 1;
141-
}
142-
} elsif (m/^$parserExpanderState->{indent}prefix xrefs with "(.+)"$/gs) {
143-
die if length $parserExpanderState->{prefix};
144-
$parserExpanderState->{prefix} = $1;
145-
} elsif (m/^$parserExpanderState->{indent} case (.+):/s) {
146-
if ($parserExpanderState->{level} >= 3) {
147-
$output .= "$parserExpanderState->{indent} </dd>\n";
148-
}
149-
if ($parserExpanderState->{level} >= 2) {
150-
$output .= "$parserExpanderState->{indent} </dl>\n";
151-
}
152-
if ($parserExpanderState->{level} >= 1) {
153-
$output .= "$parserExpanderState->{indent} </dd>\n";
154-
}
155-
$output .= "$parserExpanderState->{indent} <dt>If <var data-x=\"$parserExpanderState->{prefix} $parserExpanderState->{mode}\">$parserExpanderState->{mode}</var> is \"<dfn data-x=\"$parserExpanderState->{prefix} $parserExpanderState->{mode}: $1\">$1</dfn>\"</dt>\n";
156-
$output .= "$parserExpanderState->{indent} <dd>\n";
157-
$parserExpanderState->{level} = 1;
158-
} elsif (m/^$parserExpanderState->{indent} (.+?)=(.+?)(?: (?:(unless) (.+)|(if numbers are coming)|(if numbers are not coming)))?:/s) {
159-
my $var = $1;
160-
my $val = $2;
161-
my $parserExpanderMode = $3 || $5 || $6;
162-
my $flag = $4;
163-
die "unknown variable $var" unless $parserExpanderState->{variables}->{$var};
164-
die "unknown variable $flag" if defined $flag and not $parserExpanderState->{variables}->{$flag};
165-
die if $parserExpanderState->{level} < 1;
166-
if ($parserExpanderState->{level} >= 3) {
167-
$output .= "$parserExpanderState->{indent} </dd>\n";
168-
} elsif ($parserExpanderState->{level} < 2) {
169-
$output .= "$parserExpanderState->{indent} <p>Run the appropriate substeps from the following list:</p>\n";
170-
$output .= "$parserExpanderState->{indent} <dl class=\"switch\">\n";
171-
}
172-
$val = expand($val);
173-
my $condition = "If <var>$var</var> is $val";
174-
if ($parserExpanderMode) {
175-
if ($parserExpanderMode eq 'unless') {
176-
$condition .= " and <var>$flag</var> is false";
177-
} elsif ($parserExpanderMode eq 'if numbers are coming') {
178-
$condition .= " and any of the characters in <var>value</var> past the <var>index</var>th character are <span>ASCII digits</span>";
179-
} elsif ($parserExpanderMode eq 'if numbers are not coming') {
180-
$condition .= " and none of the characters in <var>value</var> past the <var>index</var>th character are <span>ASCII digits</span>";
181-
} else {
182-
die "unknown token case conditional: '$parserExpanderMode'";
183-
}
184-
}
185-
$output .= "$parserExpanderState->{indent} <dt>$condition</dt>\n";
186-
$output .= "$parserExpanderState->{indent} <dd>\n";
187-
$parserExpanderState->{level} = 3;
188-
} elsif (m/^$parserExpanderState->{indent} otherwise:/s) {
189-
die if $parserExpanderState->{level} < 2;
190-
if ($parserExpanderState->{level} >= 3) {
191-
$output .= "$parserExpanderState->{indent} </dd>\n";
192-
}
193-
$output .= "$parserExpanderState->{indent} <dt>Otherwise</dt>\n";
194-
$output .= "$parserExpanderState->{indent} <dd>\n";
195-
$parserExpanderState->{level} = 3;
196-
} elsif (m/^$parserExpanderState->{indent} (.+?) := (.+)/s) {
197-
my $var = $1;
198-
my $val = $2;
199-
die "unknown variable $var" unless $parserExpanderState->{variables}->{$var} or $parserExpanderState->{mode} eq $var;
200-
die if $parserExpanderState->{level} < 3;
201-
if ($parserExpanderState->{mode} eq $var) {
202-
$var = "<var data-x=\"$parserExpanderState->{prefix} $parserExpanderState->{mode}\">$var</var>";
203-
$val = "\"<span data-x=\"$parserExpanderState->{prefix} $parserExpanderState->{mode}: $val\">$val</span>\"";
204-
} else {
205-
$var = "<var>$var</var>";
206-
if ($parserExpanderState->{variables}->{$val}) {
207-
$val = "the value of <var>$val</var>";
208-
} else {
209-
die unless $val eq 'false' or $val eq 'true';
210-
}
211-
}
212-
$output .= "$parserExpanderState->{indent} <p>Set $var to $val.</p>\n";
213-
} elsif ((m/^$parserExpanderState->{indent} (.+?) (.+)/s) and ($parserExpanderState->{actions}->{$1})) {
214-
my $action = $1;
215-
my $var = $2;
216-
die "unknown variable $var" unless $parserExpanderState->{variables}->{$var};
217-
die if $parserExpanderState->{level} < 3;
218-
$var = "<var>$var</var>";
219-
$output .= "$parserExpanderState->{indent} <p>Append $var to $parserExpanderState->{actions}->{$action}.</p>\n";
220-
} elsif (m/^$parserExpanderState->{indent} (dec) (.+)/s) {
221-
my $action = $1;
222-
my $var = $2;
223-
die unless $parserExpanderState->{variables}->{$var};
224-
die if $parserExpanderState->{level} < 3;
225-
$var = "<var>$var</var>";
226-
$output .= "$parserExpanderState->{indent} <p>Decrement $var by one.</p>\n";
227-
} elsif (m/^$parserExpanderState->{indent} nop/s) {
228-
die if $parserExpanderState->{level} < 3;
229-
$output .= "$parserExpanderState->{indent} <p>Do nothing.</p>\n";
230-
} elsif ((m/^$parserExpanderState->{indent} (.+)/s) and ($parserExpanderState->{refs}->{$1})) {
231-
my $ref = $1;
232-
die if $parserExpanderState->{level} < 3;
233-
$output .= "$parserExpanderState->{indent} <p><span data-x=\"$parserExpanderState->{prefix} $ref\">\u$ref</span>.</p>\n";
234-
} elsif (m/^$parserExpanderState->{indent}<\/pre>$/s) {
235-
if ($parserExpanderState->{level} >= 3) {
236-
$output .= "$parserExpanderState->{indent} </dd>\n";
237-
}
238-
if ($parserExpanderState->{level} >= 2) {
239-
$output .= "$parserExpanderState->{indent} </dl>\n";
240-
}
241-
if ($parserExpanderState->{level} >= 1) {
242-
$output .= "$parserExpanderState->{indent} </dd>\n";
243-
}
244-
$output .= "$parserExpanderState->{indent}</dl>\n";
245-
$parserExpanderMode = 'passthrough';
246-
$parserExpanderState = undef;
247-
} elsif (m/^$parserExpanderState->{indent}( )*.+/s) {
248-
my $level = (length $1) / 2;
249-
die "syntax error in '$_' at level $level; you are actually at level $parserExpanderState->{level}";
250-
} else {
251-
die "syntax error in '$_'";
252-
}
253-
} else {
254-
die;
255-
}
256-
return $output;
93+
return "$_\n";
25794
}

0 commit comments

Comments
 (0)