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

Commit489951e

Browse files
committed
rewrite action parser to use sets
1 parent77d2a9c commit489951e

File tree

2 files changed

+32
-25
lines changed

2 files changed

+32
-25
lines changed

‎src/build/parser/actions.ts

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,30 @@
11
import{trimQuotes,trimCommandValue,trimArray}from'./cleanup';
22
import{isAction,isArray}from'./match';
33

4-
// TODO: change to use new Set ()
5-
6-
functiondoAction(
7-
type:CR.OutputAction,isArray,actionValue,result,line,
8-
{page, task}
9-
):CR.Output{
4+
functiondoAction({
5+
type, isArray, actionValue, result,
6+
index:{page, task}
7+
}):CR.Output{
108
// set to array
119
if(result.pages[page].tasks[task][type]===undefined){
1210
result.pages[page].tasks[task][type]=[];
1311
}
14-
letcurrent=result.pages[page].tasks[task][type];
12+
letcurrent=newSet(result.pages[page].tasks[task][type]);
1513
if(!!isArray){
1614
// array
1715
letvalues=trimArray(actionValue);
18-
values.forEach((value)=>{
19-
if(current.indexOf(value)===-1&&values.indexOf(value)===-1){
20-
result.pages[page].tasks[task][type].push(value);
21-
}
16+
values.forEach((v)=>{
17+
current.add(v);
2218
});
2319
}else{
2420
// string
25-
if(current.indexOf(actionValue)===-1){
26-
result.pages[page].tasks[task][type].push(actionValue);
27-
}
21+
current.add(actionValue);
2822
}
23+
result.pages[page].tasks[task][type]=Array.from(current);
2924
returnresult;
3025
}
3126

32-
exportfunctionaddToTasks(result,line,index){
27+
exportfunctionaddToTasks({result, line, index}){
3328
letaction:CR.TaskAction|string=isAction(line);// 'action'|'test'|'hint'|'openConsole'
3429
const{page, task}=index;
3530
letcurrentTask:CR.Task=result.pages[page].tasks[task];
@@ -38,10 +33,22 @@ export function addToTasks(result, line, index) {
3833
letisActionArray=isArray(trimQuotes(actionValue));
3934
switch(action){
4035
case'test':
41-
result=doAction('tests',isActionArray,actionValue,result,line,index);
36+
result=doAction({
37+
type:'tests',
38+
isArray:isActionArray,
39+
actionValue,
40+
result,
41+
index
42+
});
4243
break;
4344
case'hint':
44-
result=doAction('hints',isActionArray,actionValue,result,line,index);
45+
result=doAction({
46+
type:'hints',
47+
isArray:isActionArray,
48+
actionValue,
49+
result,
50+
index
51+
});
4552
break;
4653
case'continue':
4754
break;
@@ -51,8 +58,8 @@ export function addToTasks(result, line, index) {
5158
}
5259
if(!!isActionArray){
5360
vararrayOfActions:string[]=JSON.parse(isActionArray);
54-
arrayOfActions.forEach(function(value){
55-
value=trimCommandValue(trimQuotes(value.trim()));
61+
arrayOfActions.forEach((v)=>{
62+
letvalue=trimCommandValue(trimQuotes(v.trim()));
5663
result.pages[page].tasks[task].actions.push(value);
5764
});
5865
}else{

‎src/build/parser/task.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import*asMatchfrom'./match';
2-
import{page}from'./page';
3-
import{addToTasks}from'./actions';
4-
import{trimLeadingSpaces,bracketTracker,trimValue}from'./cleanup';
5-
import{loadImport}from'./import';
2+
import{page}from'./page';
3+
import{addToTasks}from'./actions';
4+
import{trimLeadingSpaces,bracketTracker,trimValue}from'./cleanup';
5+
import{loadImport}from'./import';
66

77
exportfunctiontask({
88
dir, result, lines, index
@@ -52,7 +52,7 @@ export function task({
5252
}else{
5353
// multi-line action finished
5454
currentAction+=line;
55-
result=addToTasks(result,currentAction,index);
55+
result=addToTasks({result,line:currentAction, index});
5656
currentAction=null;
5757
bracketCount=0;
5858
}
@@ -78,7 +78,7 @@ export function task({
7878
// TODO: bracket has completed bracket
7979
if(bracketCount===0){
8080
// if action complete, call addToTasks with merged lines
81-
result=addToTasks(result,currentAction,index);
81+
result=addToTasks({result,line:currentAction, index});
8282
currentAction=null;
8383
}
8484
continue;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp