Skip to content

Commit 1893dff

Browse files
committed
redo syntax
1 parent 9b0c0b8 commit 1893dff

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

editor.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,7 @@ namespace microcode {
296296
this.progdef = ProgramDefn.fromBuffer(new BufferReader(buf))
297297
// to string
298298
const progAsString = this.progdef.toString()
299-
console.log(progAsString)
300-
// const progFromString = parse(progAsString)
299+
const progFromString = parse(progAsString)
301300
// const progAsBuf = progFromString.toBuffer()
302301
// // compare buffers
303302
// if (buf.length == progAsBuf.length) {

mcparser.ts

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,21 +38,28 @@ namespace microcode {
3838
if (tokens.length == 0 || !tokens[0]) continue
3939
console.log(`tok1 = ${tokens[0]}`)
4040
if (tokens[0] == "Page") {
41+
if (currPage) {
42+
if (currRule) currPage.rules.push(currRule)
43+
prog.pages.push(currPage)
44+
currRule = undefined
45+
}
4146
currPage = new PageDefn()
42-
} else if (tokens[0] == "EOP") {
43-
prog.pages.push(currPage)
44-
currPage = undefined
47+
continue
4548
} else if (tokens[0] == "When") {
49+
control.assert(currPage != undefined)
4650
if (currRule) currPage.rules.push(currRule)
47-
currRule = new RuleDefn()
48-
} else {
51+
currRule = undefined
52+
tokens.shift()
53+
}
54+
let tok = tokens.shift()
55+
while (tok) {
4956
if (!currRule) {
57+
currRule = new RuleDefn()
5058
currRule.sensors.push(token2tile(tokens[0]) as number)
5159
tokens.shift()
5260
}
53-
let tok = tokens.shift()
54-
while (tok) {
55-
console.log(`tok2 = ${tok}`)
61+
console.log(`tok2 = ${tok}`)
62+
if (tok !== "Do") {
5663
currTile = token2tile(tok)
5764
addTile(currTile, currRule)
5865
if (currTile instanceof IconEditor) {
@@ -68,10 +75,12 @@ namespace microcode {
6875
currTile = undefined
6976
break
7077
}
71-
tok = tokens.shift()
7278
}
79+
tok = tokens.shift()
7380
}
7481
}
82+
if (currRule) currPage.rules.push(currRule)
83+
prog.pages.push(currPage)
7584
return prog
7685
}
7786
}

0 commit comments

Comments
 (0)