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 1515
1616@if (result is not null )
1717{
18- <h2 >@result </h2 >
18+ <h3 >@result </h3 >
1919}
2020
2121@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