Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2ccbfc4

Browse files
committed
Web: Descriptions in transformations
1 parent885a13d commit2ccbfc4

File tree

6 files changed

+74
-64
lines changed

6 files changed

+74
-64
lines changed

‎app/src/pages/CFGBin.tsx‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ export class CFGBin extends CFGTransformation {
77
protectedtext:React.ReactNode=<p>Provide a context free grammar, and click the button to perform the<i>bin</i> transformation.</p>;
88
protectedbutton:React.ReactNode=<span>Bin Transform</span>
99

10-
protectedproduceSteps():Array<CFG.ContextFreeGrammar>{
11-
conststeps=newArray<CFG.ContextFreeGrammar>();
12-
this.state.cfg.bin(cfg=>steps.push(cfg));
10+
protectedproduceSteps():Array<[CFG.ContextFreeGrammar,string]>{
11+
conststeps=newArray<[CFG.ContextFreeGrammar,string]>();
12+
this.state.cfg.bin((cfg,desc)=>steps.push([cfg,desc]));
1313
returnsteps;
1414
}
1515
}

‎app/src/pages/CFGCNF.tsx‎

Lines changed: 51 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import TeX from "@matejmazur/react-katex";
66
interfaceState{
77
cfg:CFG.ContextFreeGrammar;
88
steps:{
9-
bin:Array<CFG.ContextFreeGrammar>;
10-
del:Array<CFG.ContextFreeGrammar>;
11-
unit:Array<CFG.ContextFreeGrammar>;
12-
term:Array<CFG.ContextFreeGrammar>;
9+
bin:Array<[CFG.ContextFreeGrammar,string]>;
10+
del:Array<[CFG.ContextFreeGrammar,string]>;
11+
unit:Array<[CFG.ContextFreeGrammar,string]>;
12+
term:Array<[CFG.ContextFreeGrammar,string]>;
1313
};
1414
}
1515

@@ -30,22 +30,22 @@ export class CFGCNF extends Component<{}, State> {
3030
}
3131

3232
privatetransform():void{
33-
constbin=newArray<CFG.ContextFreeGrammar>();
34-
letdel=null;
35-
letunit=null
36-
letterm=null;
33+
constbin=newArray<[CFG.ContextFreeGrammar,string]>();
34+
letdel:Array<[CFG.ContextFreeGrammar,string]>=null;
35+
letunit:Array<[CFG.ContextFreeGrammar,string]>=null
36+
letterm:Array<[CFG.ContextFreeGrammar,string]>=null;
3737

3838
try{
39-
letcfg=this.state.cfg.bin(s=>bin.push(s));
39+
letcfg=this.state.cfg.bin((cfg,desc)=>bin.push([cfg,desc]));
4040
if(cfg!=null){
41-
del=newArray<CFG.ContextFreeGrammar>();
42-
cfg=cfg.del(s=>del.push(s));
41+
del=newArray<[CFG.ContextFreeGrammar,string]>();
42+
cfg=cfg.del((cfg,desc)=>del.push([cfg,desc]));
4343
if(cfg!=null){
44-
unit=newArray<CFG.ContextFreeGrammar>();
45-
cfg=cfg.unit(s=>unit.push(s));
44+
unit=newArray<[CFG.ContextFreeGrammar,string]>();
45+
cfg=cfg.unit((cfg,desc)=>unit.push([cfg,desc]));
4646
if(cfg!=null){
47-
term=newArray<CFG.ContextFreeGrammar>();
48-
cfg.term(s=>term.push(s));
47+
term=newArray<[CFG.ContextFreeGrammar,string]>();
48+
cfg.term((cfg,desc)=>term.push([cfg,desc]));
4949
}
5050
}
5151
}
@@ -69,10 +69,10 @@ export class CFGCNF extends Component<{}, State> {
6969
switch(type){
7070
caseCopyType.LaTeX:
7171
text=[
72-
this.state.steps.bin.map(cfg=>cfg.formatLaTeX()).join(" \\\\[1em]\n"),
73-
this.state.steps.del.map(cfg=>cfg.formatLaTeX()).join(" \\\\[1em]\n"),
74-
this.state.steps.unit.map(cfg=>cfg.formatLaTeX()).join(" \\\\[1em]\n"),
75-
this.state.steps.term.map(cfg=>cfg.formatLaTeX()).join(" \\\\[1em]\n"),
72+
this.state.steps.bin.map(([cfg,_])=>cfg.formatLaTeX()).join(" \\\\[1em]\n"),
73+
this.state.steps.del.map(([cfg,_])=>cfg.formatLaTeX()).join(" \\\\[1em]\n"),
74+
this.state.steps.unit.map(([cfg,_])=>cfg.formatLaTeX()).join(" \\\\[1em]\n"),
75+
this.state.steps.term.map(([cfg,_])=>cfg.formatLaTeX()).join(" \\\\[1em]\n"),
7676
].join(" \\\\[3em]\n\n");
7777
break;
7878
default:
@@ -130,12 +130,14 @@ export class CFGCNF extends Component<{}, State> {
130130
<>
131131
<h4>Bin</h4>
132132
{
133-
this.state.steps.bin.map((cfg,i)=>
134-
<CFGTable
135-
key={i}
136-
cfg={cfg}
137-
readonly={true}
138-
/>
133+
this.state.steps.bin.map(([cfg,desc],i)=>
134+
<divkey={i}>
135+
<p>{desc}</p>
136+
<CFGTable
137+
cfg={cfg}
138+
readonly={true}
139+
/>
140+
</div>
139141
)
140142
}
141143
<br/>
@@ -147,12 +149,14 @@ export class CFGCNF extends Component<{}, State> {
147149
<>
148150
<h4>Del</h4>
149151
{
150-
this.state.steps.del.map((cfg,i)=>
151-
<CFGTable
152-
key={i}
153-
cfg={cfg}
154-
readonly={true}
155-
/>
152+
this.state.steps.del.map(([cfg,desc],i)=>
153+
<divkey={i}>
154+
<p>{desc}</p>
155+
<CFGTable
156+
cfg={cfg}
157+
readonly={true}
158+
/>
159+
</div>
156160
)
157161
}
158162
<br/>
@@ -164,12 +168,14 @@ export class CFGCNF extends Component<{}, State> {
164168
<>
165169
<h4>Unit</h4>
166170
{
167-
this.state.steps.unit.map((cfg,i)=>
168-
<CFGTable
169-
key={i}
170-
cfg={cfg}
171-
readonly={true}
172-
/>
171+
this.state.steps.unit.map(([cfg,desc],i)=>
172+
<divkey={i}>
173+
<p>{desc}</p>
174+
<CFGTable
175+
cfg={cfg}
176+
readonly={true}
177+
/>
178+
</div>
173179
)
174180
}
175181
<br/>
@@ -181,12 +187,14 @@ export class CFGCNF extends Component<{}, State> {
181187
<>
182188
<h4>Term</h4>
183189
{
184-
this.state.steps.term.map((cfg,i)=>
185-
<CFGTable
186-
key={i}
187-
cfg={cfg}
188-
readonly={true}
189-
/>
190+
this.state.steps.term.map(([cfg,desc],i)=>
191+
<divkey={i}>
192+
<p>{desc}</p>
193+
<CFGTable
194+
cfg={cfg}
195+
readonly={true}
196+
/>
197+
</div>
190198
)
191199
}
192200
<br/>

‎app/src/pages/CFGDel.tsx‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ export class CFGDel extends CFGTransformation {
77
protectedtext:React.ReactNode=<p>Provide a context free grammar, and click the button to perform the<i>del</i> transformation.</p>;
88
protectedbutton:React.ReactNode=<span>Del Transform</span>
99

10-
protectedproduceSteps():Array<CFG.ContextFreeGrammar>{
11-
conststeps=newArray<CFG.ContextFreeGrammar>();
12-
this.state.cfg.del(cfg=>steps.push(cfg));
10+
protectedproduceSteps():Array<[CFG.ContextFreeGrammar,string]>{
11+
conststeps=newArray<[CFG.ContextFreeGrammar,string]>();
12+
this.state.cfg.del((cfg,desc)=>steps.push([cfg,desc]));
1313
returnsteps;
1414
}
1515
}

‎app/src/pages/CFGTerm.tsx‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ export class CFGTerm extends CFGTransformation {
77
protectedtext:React.ReactNode=<p>Provide a context free grammar, and click the button to perform the<i>term</i> transformation.</p>;
88
protectedbutton:React.ReactNode=<span>Term Transform</span>
99

10-
protectedproduceSteps():Array<CFG.ContextFreeGrammar>{
11-
conststeps=newArray<CFG.ContextFreeGrammar>();
12-
this.state.cfg.term(cfg=>steps.push(cfg));
10+
protectedproduceSteps():Array<[CFG.ContextFreeGrammar,string]>{
11+
conststeps=newArray<[CFG.ContextFreeGrammar,string]>();
12+
this.state.cfg.term((cfg,desc)=>steps.push([cfg,desc]));
1313
returnsteps;
1414
}
1515
}

‎app/src/pages/CFGTransformation.tsx‎

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { CFGTable } from "../components/CFGTable";
44

55
interfaceState{
66
cfg:CFG.ContextFreeGrammar;
7-
steps:Array<CFG.ContextFreeGrammar>;
7+
steps:Array<[CFG.ContextFreeGrammar,string]>;
88
}
99

1010
exportabstractclassCFGTransformationextendsComponent<{},State>{
@@ -17,13 +17,13 @@ export abstract class CFGTransformation extends Component<{}, State> {
1717

1818
this.state={
1919
cfg:newCFG.ContextFreeGrammar(),
20-
steps:newArray<CFG.ContextFreeGrammar>(),
20+
steps:newArray<[CFG.ContextFreeGrammar,string]>(),
2121
};
2222

2323
this.transform=this.transform.bind(this);
2424
}
2525

26-
protectedabstractproduceSteps():Array<CFG.ContextFreeGrammar>;
26+
protectedabstractproduceSteps():Array<[CFG.ContextFreeGrammar,string]>;
2727
privatetransform():void{
2828
this.setState({
2929
steps:this.produceSteps(),
@@ -53,12 +53,14 @@ export abstract class CFGTransformation extends Component<{}, State> {
5353
<section>
5454
<h3>Transformation Steps</h3>
5555
{
56-
this.state.steps.map((cfg,i)=>
57-
<CFGTable
58-
key={i}
59-
cfg={cfg}
60-
readonly={true}
61-
/>
56+
this.state.steps.map(([cfg,desc],i)=>
57+
<divkey={i}>
58+
<p>{desc}</p>
59+
<CFGTable
60+
cfg={cfg}
61+
readonly={true}
62+
/>
63+
</div>
6264
)
6365
}
6466
</section>

‎app/src/pages/CFGUnit.tsx‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ export class CFGUnit extends CFGTransformation {
77
protectedtext:React.ReactNode=<p>Provide a context free grammar, and click the button to perform the<i>unit</i> transformation.</p>;
88
protectedbutton:React.ReactNode=<span>Unit Transform</span>
99

10-
protectedproduceSteps():Array<CFG.ContextFreeGrammar>{
11-
conststeps=newArray<CFG.ContextFreeGrammar>();
12-
this.state.cfg.unit(cfg=>steps.push(cfg));
10+
protectedproduceSteps():Array<[CFG.ContextFreeGrammar,string]>{
11+
conststeps=newArray<[CFG.ContextFreeGrammar,string]>();
12+
this.state.cfg.unit((cfg,desc)=>steps.push([cfg,desc]));
1313
returnsteps;
1414
}
1515
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp