|
No matter how many times I go back to rewrite the thing, the LALR(1) parser I wrote falls down under the weight of its own contradictions as soon as I try to add error recovery and I have to go back and rewrite it again. I've lost count of how many times I've done this. At least three.
Broken As Designed. FML
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
Maybe you need to find something else to work on other than parsers........
|
|
|
|
|
I wrote an autoupdater the other day AutoUpdate: A GitHub Enabled autoupdater[^]
But I need to get PCK to something resembling stable or it's going to gnaw at me.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
Yuck!
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
i know you don't like updaters
I have a tool to switch between my alpha releases though because it makes it easier for me to resolve bugs that crop up when i'm regression testing. I don't have automated tests for much of this because parsing is complicated as hell to test extensively. (It's easy at the high level, but things like testing follows sets generation or LR(0) generation is damned tricky)
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
Have heard somewhere that Version 2 will be better and more robust than Version 1.
So, a suggestion here: Persevere and start working on Version 2, using the wisdom learnt from Version 1. This is less likely to fall down under the weight of its contradictions.
The best version, I've heard, will be Version 3, which will be much better than Version 2.
I'm hoping the requirements are not changing between versions. Only the design is changing.
|
|
|
|
|
This is the 3rd version of the LALR(1) parsing. The first was an initial creation of Newt that i never released. The second version I never released either, but it worked - at least as well as this one did, which is to say fine until the input has errors.
The trouble with this is LALR(1) is incredibly convoluted. The algorithm is ridiculous. If you saw it the first thing you'd think is "oh my gosh there has to be an easier way, anything is better than this" - and normally you'd be right. The trouble is, mathematically you'd be wrong in this case. LR parsing is just *complicated* like that. The table generation - let's just say even an RDBMS would find it really tough.
The parser, for all that is shockingly simple, but unintelligible because the parse table is unintelligible by the time it's crunched. Traversing it is easy because there's a formula to it, but it still doesn't make sense, if that makes sense. =)
But all this means is as long as everything works as expected, it's great. But when you start getting errors in your input, all of the sudden you have to take over from the normal parsing algorithm, preserve its state, potentially modifying its state to account for the error(s), interrupt the parse to report the errors, and then continue, all while managing to keep the parse table synced with the input. This is convoluted in an LL(1) parser, much less a LALR(1) parser.
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
There is a saying in Germany that you build your first house for your fiend, the second for your friend, and the third for you.
This must not only apply to house architecture, but also code architecture.
|
|
|
|
|
my 3rd house has a leaky roof!
When I was growin' up, I was the smartest kid I knew. Maybe that was just because I didn't know that many kids. All I know is now I feel the opposite.
|
|
|
|
|
This alone explains this whole thread
|
|
|
|
|
That doesn't always pan out.
Windows is on version 1906, and it's been getting progressively worse for the last 500-or-so versions.
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
Meanders and runs (6,3,7)
"We can't stop here - this is bat country" - Hunter S Thompson - RIP
|
|
|
|
|
SNAKES AND LADDERS!
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
You might need to lose the snakes.
|
|
|
|
|
Abbas A. Ali wrote: You might need to lose the snakes.
He can't, otherwise it is an abomination and not a game.
Michael Martin
Australia
"I controlled my laughter and simple said "No,I am very busy,so I can't write any code for you". The moment they heard this all the smiling face turned into a sad looking face and one of them farted. So I had to leave the place as soon as possible."
- Mr.Prakash One Fine Saturday. 24/04/2004
|
|
|
|
|
But ... but ... "Ladders and Ladders" is a good PC game (except there is a winner, and we can't have that - it's bad for the losers runners-up other players.
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
If I did that, then I wouldn't know where they were, and would have to worry all day in case I stepped on them.
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
What are you talking about?
Just to make sure we're on the same page, you are talking about Chutes and Ladders? The alternate name for Snakes and Dragons, which also makes sense with the given clues.
|
|
|
|
|
Seeing Dragons might make you pooh yourself, which could be called "the runs". Tenuous ...
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I see you've left "Tenuous" just hanging there.
|
|
|
|
|
Good man
"We can't stop here - this is bat country" - Hunter S Thompson - RIP
|
|
|
|
|
Hi All,
I have mentioned in the past I have had Jira landed on me, the general response from the learned crowd was 'Kill it, Kill it with Fire'. I didn't really follow that view as I used to have manage tests and documentation using a combo of Access, Excel & Word (fun times), Jira appeared to have it all in one place. However one thing struck me as weird is the 'prefered' way to get to tests is using the menu's Project -> Test -> Plan Test Cycle and then select from the appropriate tests down the side. Fine a little illogical but I can deal with it. This works if you have the 'frame' open, also if you execute a ticket with the Execute button you can execute a test outside of a test cycle, which will cause my Boss to meltdown...
|
|
|
|
|
|
It seems like it has been added to by different people, at different time, to do different things.
Now it can do various things some of which it was never meant to and it seems to be touted by people for various uses it can be be put to, like a Swiss Army Pen Knife, not the ideal tool but better than nothing.
|
|
|
|
|
Jira is a tool which is powerful and extensible.
That said, like any tool, it all depends on how you integrate it into your company, and how good the configured workflows match the real-life processes. If they do not match, as with any tool, you'll end up butthurt and crying - But that's not Jiras fault, but someone higherup ind the command chain not understanding how tools are supposed to help employees get work done effective and efficient rather than self-inflating a boss' ego about doing things the way he wants them done.
I only have a signature in order to let @DalekDave follow my posts.
|
|
|
|