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.
So in my Rolex lexer reboot, I'm potentially adding a way to specify lexer rules using eXtensible Backus-Noir Form instead of regex (although you can also use regex)
My parsers already allow for this. But I'm thinking of including this feature in my lexer directly.
This creates a strange problem for me, wherein as soon as I add this feature my lexer documents fit the exact same format as my parser documents.
Well, the what is that if you pass the same document to a parser that you pass to the lexer you'll get different results, and you shouldn't. You should get just the terminals rendered by the lexer generator. That way the parser can work with the lexer from the same spec document.
But if i pass one of these documents to my lexer, it will treat all of the elements as terminals! why would it not?
My options are to make a new file format specifically to distinguish between this one and XBNF, or to make Rolex only render parts of the XBNF document - the terminal parts. It's kind of counterintuitive that last bit, but it's the Right(TM) result.
Fortunately with the last option if you only use regex in it, none of the above matters. But if you start using BNF in it, it will get confused as to what's a terminal and what's not, forcing you to mark every terminal declaration with the terminal attribute.
I don't like that.
I might make a command line option to either force the document to be a lexer document, or to force it to be treated as a parser document.
This is confusing even to explain. There has to be a better way.
BNF has a much wider, fascinating, usage in the history of modern logic, and, computer science: [^]
The origin of BNF is not as important as its impact on programming language development. During the period immediately following the publication of the ALGOL 60 report BNF was the basis of many compiler-compiler systems. Some directly used BNF like "A Syntax Directed Compiler for ALGOL 60" developed by Edgar T. Irons and "A Compiler Building System" Developed by Brooker and Morris. Others changed it to a programming language. The Schorre Metacompilers made it a programming language with only a few changes. <class name=""> became symbol identifiers dropping the enclosing <,> and using quoted strings for symbols of the target language. Arithmetic like grouping provided simplification that removed using classes where grouping was its only value. The META II arithmetic expression rule shows grouping use. Output expressions placed in a META II rule are used to output code and labels in an assembly language. Rules in META II are equivalent to a class definitions in BNF. The Unix utility yacc is based on BNF with code production similar to META II. yacc is most commonly used as a parser generator, and its roots are obviously BNF. BNF today is one of the oldest computer-related languages still in use.
The way Panini nailed it some 2500+ years ago [^] fascinates me ... if i had another life, I'd study Sanskrit grammar.
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
Youtube covers a massively wide range of stuff, so I'm going to assume you are talking software development content rather than anything else.
For software tutorials, I hate videos. I have given up watching them entirely. (except Donald Knuths Christmas talks).
They just take too long and are too hard to navigate.
I guess, there are three specific use cases when I'll want explore content online:
3. I'm browsing articles on code project. General knowledge improvement, and industry awareness. In 30 seconds, I can decide whether I want to read this article in more detail. Is the intro well written, scroll down, good images, quick look at the code snippets and article structure and I decide if it's worth continuing. 30 seconds into a video, I've had a tile, a presenter introduction, and acknowledgement of the sponsor, a plug for the channel and a request to upvote. Still no idea if the content is any good.
Sorry to be down on videos, they have their place for other things (DIY house/car/garden maintenance, etc), but not software.
I'm #5, but first a suggestion. If you want to do a channel, my personal impression is that software vids are a pile of steaming elephant poop. Never seen one that was useful, never seen one where the person making it
1) Knew anything about making videos.
2) Knew more than any of his audience about the subject he was covering.
I'm sure there are some, somewhere - but there is so much total cr@p that nobody can find it. And total dross gets upvoted and subscribed because ... well, I suspect money has changed hands ...
So if it's a software channel, probably forget it.
If it isn't, then watch people who do know how to make a video. I strongly recommend ThisOldTony who is a hobby machinist: The progression from "really dull" early vids to "really watchable" in the mid and later ones is worth observing, even if you have no interest in welding, turning, routing, filing, or biting your way through solid steel or aluminium. I own none of eh kit he does, and I'm never going to get any - but his enthusiasm and verve to entertain and inform means he's subscribed so I never miss a video. Work out what and how he makes a vid, and yours should be vastly better than if you set up a GoPro and start typing...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
AntiTwitter: @DalekDave is now a follower!
after many otherwise intelligent sounding suggestions that achieved nothing the nice folks at Technet said the only solution was to low level format my hard disk then reinstall my signature. Sadly, this still didn't fix the issue!
Last Visit: 31-Dec-99 18:00 Last Update: 18-Apr-21 19:10