Skip to content

Commit 87339a7

Browse files
committed
no upper case!
1 parent 04ce472 commit 87339a7

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

mcparser.ts

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ namespace microcode {
2222
return tok
2323
}
2424
return (
25-
"When " +
25+
"when " +
2626
toToken(rule.sensor) +
2727
" " +
2828
rule.filters.map(tileToString).join(" ") +
29-
" Do " +
29+
" do " +
3030
(rule.actuators.length
3131
? toToken(rule.actuators[0]) +
3232
" " +
@@ -40,7 +40,7 @@ namespace microcode {
4040
return res.join("\n")
4141
}
4242
const res = prog.pages.map(pageToString)
43-
progToStringRet = res.map((ps, i) => `Page ${i + 1}\n${ps}`).join("\n")
43+
progToStringRet = res.map((ps, i) => `page-${i}\n${ps}`).join("\n")
4444
}
4545

4646
enum Phase {
@@ -107,6 +107,7 @@ namespace microcode {
107107
const prog = new ProgramDefn()
108108
prog.pages = []
109109

110+
let nextPageNum = 1
110111
let currPage: PageDefn = undefined
111112
let currRule: RuleDefn = undefined
112113
let currTile: Tile = undefined
@@ -134,23 +135,34 @@ namespace microcode {
134135
continue
135136
}
136137
currTile = undefined
137-
if (tok == "Page") {
138+
if (tok.indexOf("page-") == 0) {
139+
control.assert(
140+
tok.length == 6,
141+
`expected page-[1-5], got page-`
142+
)
143+
const pageNum = parseInt(tok[5])
144+
control.assert(
145+
pageNum == nextPageNum,
146+
`expected page-${nextPageNum}, got page-${pageNum}`
147+
)
138148
if (currPage) {
139149
if (currRule) currPage.rules.push(currRule)
140150
prog.pages.push(currPage)
141151
currRule = undefined
142152
}
143153
currPage = new PageDefn()
144-
getToken() // consume page #
145-
} else if (tok == "When") {
146-
control.assert(currPage != undefined, `No Page defined`)
154+
nextPageNum++
155+
} else if (tok == "when") {
156+
control.assert(currPage != undefined, `No page defined`)
147157
if (currRule) currPage.rules.push(currRule)
148158
currRule = new RuleDefn()
149159
phase = Phase.Sensor
150-
} else if (tok == "Do") {
151-
control.assert(currRule != undefined, `No When defined`)
160+
} else if (tok == "do") {
161+
control.assert(currRule != undefined, `No when defined`)
152162
phase = Phase.Actuator
153163
} else {
164+
control.assert(currPage != undefined, `No page defined`)
165+
control.assert(currRule != undefined, `No when defined`)
154166
currTile = token2tile(tok)
155167
addTile(currRule, currTile)
156168
}

0 commit comments

Comments
 (0)