Skip to content

Commit 4fa2f47

Browse files
authored
Merge pull request #7 from twin-te/hosokawaR/fix-parser
春A-C、夏季、秋A-C、春季、通年の順番にマッチングするように変更
2 parents 602f083 + 9bf32b8 commit 4fa2f47

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "twinte-parser",
3-
"version": "1.3.1",
3+
"version": "1.3.2",
44
"description": "Twinte内部で使用するために開発されたKdBパーサ",
55
"private": false,
66
"main": "dist/index.js",

src/app.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import parse from './parser'
44
import * as colors from 'colors'
55
import * as commandLineArgs from 'command-line-args'
66

7-
console.log('twinte-parser v0.0.1'.green.bold)
7+
console.log('twinte-parser v1.3.2'.green.bold)
88

99
const ops = commandLineArgs([
1010
{ name: 'year', alias: 'y', defaultValue: undefined }

src/parser.ts

+10-5
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,7 @@ const analyzeDayAndPeriod = (str: string): { day: Day; period: number }[] => {
6161
const analyzeModule = (str: string): Module[] => {
6262
const result: Module[] = []
6363

64-
// 特殊系のマッチング(通年、夏季休業中、春季休業中)
65-
if (str.includes(Module.Annual)) result.push(Module.Annual)
66-
if (str.includes(Module.SpringVacation)) result.push(Module.SpringVacation)
67-
if (str.includes(Module.SummerVacation)) result.push(Module.SummerVacation)
68-
64+
6965
/*
7066
/春[ABC]*A/は春A 春AB 春ABCに
7167
/春[ABC]*B/は春B 春AB 春BCに
@@ -74,10 +70,19 @@ const analyzeModule = (str: string): Module[] => {
7470
if (/[ABC]*A/gm.test(str)) result.push(Module.SpringA)
7571
if (/[ABC]*B/gm.test(str)) result.push(Module.SpringB)
7672
if (/[ABC]*C/gm.test(str)) result.push(Module.SpringC)
73+
74+
// 夏季休業中、通年のマッチング
75+
if (str.includes(Module.SummerVacation)) result.push(Module.SummerVacation)
7776

7877
if (/[ABC]*A/gm.test(str)) result.push(Module.FallA)
7978
if (/[ABC]*B/gm.test(str)) result.push(Module.FallB)
8079
if (/[ABC]*C/gm.test(str)) result.push(Module.FallC)
80+
81+
// 春季休業中のマッチング
82+
if (str.includes(Module.SpringVacation)) result.push(Module.SpringVacation)
83+
84+
// 通年のマッチング
85+
if (str.includes(Module.Annual)) result.push(Module.Annual)
8186

8287
//どのモジュールにも判定されなかったが空文字ではない場合、仮にunknownとする
8388
if (str !== '' && result.length === 0) result.push(Module.Unknown)

0 commit comments

Comments
 (0)