07 - December Adventure
Day 7, Sunday.
This morning I rode (one of) the current apartment building’s cargo bike(s) out to the hardware store to pick up a stapler. Then I went to the new apartment and did the little bit of plaster work for the new arch. Plastering is really hard. It took me a pretty tremendous amount of time to do the whole thing, and I’m slightly worried that it’s going to require some serious sanding to get into shape.
Hot tips (don’t follow this advice I’m bad):
- Using a stapler to attach corner beads works great! Do that!
- Paper tape is a tremendous fuck around, I can see why everyone uses mesh
- Make sure you have a trowel / float that matches the work you’re doing
- Extension of above, if you’re doing inner corners, maybe get a corner tool!
- Issues with your initial framework leads to issues with your drywall leads to issues with the plastering. So try to make sure everything is good from the start
- Try to minimize joins, and keep them aligned
- Hire a plasterer lol
We’ll see tomorrow how it all looks set, I will be a bit sad if it looks rough. The painters will also see my cursed creation tomorrow, so maybe they’ll get a laugh out of it at least.
On the coding front I’m typing out the AST and parser. And I re-worked the lexer to include diagnostic generation.
My intial version had the lexer emit error tokens, but that causes problems when we try to parse a file which contains errors. So now an error in the number literal scanner will emit a regular old number literal into the tokens output, while also emitting a diagnostic pointing to that token and to the precise error location. Nice!
Tokens [
0..9 Whitespace
9..16 FloatLiteral: '0x1.0p0'
16..25 Whitespace
25..28 FloatLiteral: '0e1'
28..37 Whitespace
37..40 FloatLiteral: '0.0'
40..49 Whitespace
49..54 FloatLiteral: '0.0e1'
54..63 Whitespace
63..69 FloatLiteral: '0x1.0p'
69..78 Whitespace
78..85 FloatLiteral: '0x1.0p-'
85..94 Whitespace
94..114 FloatLiteral: '0x1.921fb54442d18p+1'
114..123 Whitespace
123..145 FloatLiteral: '0x1.921fb54442d18p-999'
145..154 Whitespace
154..166 IntegerLiteral: '0b__________'
166..175 Whitespace
175..177 IntegerLiteral: '0b'
177..186 Whitespace
186..192 IntegerLiteral: '0b0102'
192..201 Whitespace
201..204 FloatLiteral: '2.2'
204..205 Period: '.'
205..207 Name(10): '_2'
207..216 Whitespace
Eof
]
Diagnostics [
Error parsing FloatLiteral at offset 69: NumberLiteralNoExponentDigit
Error parsing FloatLiteral at offset 85: NumberLiteralNoExponentDigit
Error parsing IntegerLiteral at offset 166: NumberLiteralNoValidDigit
Error parsing IntegerLiteral at offset 177: NumberLiteralNoValidDigit
Error parsing IntegerLiteral at offset 192: NumberLiteralInvalidDigit { radix: Binary }
]
I’ve also noticed that I’m randomly flipping between “scanner” / “scanning” and “lexer” / “lexing”. I should probably pick a lane there, but I can’t choose. lexer sounds better than scanner, but scan sounds better than tokenize or lex.
Unfortunately I didn’t get as far as I’d hoped on the coding adventure, but with any luck the housework will calm down a little bit now.
Hah!