File tree Expand file tree Collapse file tree 2 files changed +41
-1
lines changed
BooleanExpressionParser.Web/Client/Pages Expand file tree Collapse file tree 2 files changed +41
-1
lines changed Original file line number Diff line number Diff line change 15
15
16
16
@if (result is not null )
17
17
{
18
- <h2 >@result </h2 >
18
+ <h3 >@result </h3 >
19
19
}
20
20
21
21
@code {
Original file line number Diff line number Diff line change
1
+ @page " /notation-converter"
2
+ @using BooleanExpressionParser .Formatters ;
3
+ @using BooleanExpressionParser .Web .Client .Components
4
+
5
+ <PageTitle >Notation Converter</PageTitle >
6
+
7
+ <h1 >Notation Converter</h1 >
8
+ <p >Converts a boolean expression into postfix (reverse Polish) notation.</p >
9
+
10
+ <ExpressionInput ButtonLabel =" Convert" ButtonClicked =" ConvertExpression" ExpressionChanged =" ExpressionChanged" />
11
+
12
+ @if (postfix is not null )
13
+ {
14
+ <h3 >@postfix </h3 >
15
+ }
16
+
17
+ @code {
18
+ private string ? postfix ;
19
+ private BasicFormatter formatter = new ();
20
+
21
+ private void ExpressionChanged (string _ )
22
+ {
23
+ postfix = null ;
24
+ }
25
+
26
+ private void ConvertExpression (string ? expression )
27
+ {
28
+ if (string .IsNullOrWhiteSpace (expression )) return ;
29
+ var wrapper = new ExpressionWrapper (expression );
30
+
31
+ var tokeniser = new Tokeniser (wrapper .Expression );
32
+ var infixTokens = tokeniser .Tokenise ();
33
+
34
+ var parser = new Parser ();
35
+ var postfixTokens = parser .InfixToPostfix (infixTokens );
36
+
37
+ postfix = formatter .FormatTokens (postfixTokens );
38
+ }
39
+
40
+ }
You can’t perform that action at this time.
0 commit comments