Mass import, losing history, from the Sourceforge Hg project. I was failing to get hg-git to work (ssh keys problems again). So screw it, the history isn't that valuable right now.
Enabling NuGet auto-load missing packages. This doesn't work for those that add .targets, such as meta sharp. So, now sure what I'm going to do about that one.
Updating the syntax examples some.
Checking in the NuGet dependencies. I want the source tree to stand alone and to be linked against a given set of binaries for the dependencies.
Another random work in progress checkpoint for trying to parse blocks.
Removing the Meta# NuGet package. Does not build.
Now it builds again. Finished hacking out all the Meta# stuff. It is in no way good, but it compiles cleanly, so I know that I'm done with the butchery.
Stopping doing NuGet auto-fetch on build. I want to just check in my dependencies and always require a specific version.
Also adding NuGet dependency on FluentAssertions.
Enable running tests with NCrunch.
Ignore the last test that depends on having a parser present (so was failing since that is currently throwing NI).
Don't need the old Meta# grammar files either.
I correctly tokenize the empty file. It is a single token, with an indentation level of 0, for the single line. Yes, there's always at least one "line" in a file, since EoF is a valid statement terminator.
Actually, this is the right parse for an empty file. The one line should have a statement end token as well as an initial indentation level.
Rename for clarity.
Tokenization now handles the one-character file.
Refactored tests for readability.
The tokenizer now handles multi-line files.
It will now handle a line with two identifiers separated by a space. Of course, it won't work for spaces around periods (and therefore inside of identifiers).
I've taken the current tokenization approach about as far as I can. Time for some refactoring to enable that next test.
Refactoring for clarity, and to encapsulate the stuff that I'm about to vary. The tests no longer directly specify how one uses the tokenizer. They just specify inputs and results.