The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
I envision our apocalypse having a very good chance of having limited technology, such as an EMP or solar-event.
Now if the ECU and and semi-conductor based sensors were in a Faraday cage or similarly shielded; this may not be a problem.
Mechanical systems would still function naturally, and old school points/condenser ignitions should be good too.
The thing about those diesels, is its easy to rip the computer out of them. You basically just have to replace the injector with a manual injector, and then it's a non E version of the engine. The E was just a retrofit to begin with. =)
Steve Wozniak is the only thing at Apple that isn't evil.
Two apps. Notification settings for both are configured the same. When one app gets a "message," it's icon is overlapped with a number. When the other app gets a "message", it's icon is not overlapped with a number, yet you can open the app and see the new "message." It did not used to be this way (i.e., the overlapped number used to display for both). Any idea(s) as to what is going on here?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
Greg Utas in particular, you may find this of interest. Sorry I forgot how to tag. Someone explained it once.
To recap, Slang is a subset of C# that is CodeDOM compliant. It's maybe 60-70% of the language.
So I originally was parsing Slang by hand.
I wrote the Parsley parser generator so I could write a grammar and generate a parser to parse Slang that way instead.
My generated parser was 939k vs about 100k for my initial hand rolled parser, and was about twice as slow, and took at least twice as much memory to execute, by my back of the napkin estimations. Still, it was fine for this scenario.
The trouble is, and Greg, as per our earlier exchanges, you may want to know this - the out of band "preprocessor directives" and comments - skipping them entirely is easy, but conditionally ignoring them is much more challenging for the generated parser.
In the end, I couldn't make the generated parser handle it. I tried skip lists and it didn't work, as it was eating trailings - I'm going to write an article that covers this in detail. Greg I think it's not feasible. You need an explicit preproc step.
In the end I decided to go back to a hand written parsing method, but I still had the problem of maintenance and intelligibility.
Well, fortunately, I have this generated parser with a grammar that goes with it. So I added a /noparser option to Parsley which goes through all the steps of processing the grammar, and generating any associated lexers and constants, but skips the actual parser generation.
Now I'm coding by hand, but to the grammar I made before which makes it much easier to understand where i am and what I'm doing.
I'm testing my parser *against the generated parser* woo! which really helps.
And so there it is. I've mitigated some of my hand rolled headaches by generating a parser even though I won't use that parser in production.
And I think Parsley won me a prize here so it isn't a failure scenario at all.
Greg, you might want to consider this approach in building your parsers, as having your grammar in front of you in a BNF variant form plus making that available as documentation can really help both you and whomever uses your parser.
Plus definitely using a lexer would cut your effort and make your error handling more robust, i pretty much guarantee you - that's why almost everyone does it.
Anyway, yay Parsley, even though I didn't use it for production code.
Last Visit: 18-Feb-20 6:51 Last Update: 18-Feb-20 6:51