I am writing a compiler and I am on the tail end of finishing the lexer. i am trying to make this cross platform, so I'm looking for people to test this on multiple platforms (windows, multiple flavors of linux (tested and works on linux mint 16), and unix flavors including mac osx). It would also be great if you could document any bugs you find with this lexer. If you want to test this here is what you are going to need: cmake (the build system used for this project), windows.h (if you are on windows. i believe this ships with mingw and vc++), ncurses (libncurses5-dev)(only needed on *nix), termios (libtermcap-dev) (once again only needed on *nix), and an implementation of the stl. Here is the source: https://github.com/DragonToothSoftware/SLang/tree/lexer-mod i am aware that it is not on the master branch. i would not like to merge it until i have properly tested it. Thank you in advance and happy coding!
Edit:
The only known bug i know of is LineNumber and LineColumn arent working properly and will take a look at that after i finish overloading operator << for enum Token::Lexeme
It would have been a little more helpful if you would have to us what the compiler was for. Originally I thought you meant one for c++ and I was trying to figure out what the benefits would be over clang or mingw. Then, I clicked on the link and read that it is for a new language you are creating called "SLang."
SLang is a language that is meant to be fun and easy to learn for beginners, yet is also capable of scaling to larger projects, which is apparently a feature it shares with lisp.
You may also wish to post a small documentation on the language you have created. Figuring out the keywords is pretty straight forward you can just open the "grammar" file https://github.com/DragonToothSoftware/SLang/blob/lexer-mod/grammar but, this does not tell the syntax. I'm not sure about anyone else but I'd rather not have to try and figure out the syntax myself looking at your lexer file. The only code you provided was
1 2 3 4 5 6 7
import io;
import io.read as pause;
function main(var args) {
io.println("Hello, world!");
pause();
}
which is fairly easy to understand but what are the other headers? How are the loops setup? How are overloaded functions setup? How are functions that return something setup? How are new variables created; like var num = newint(); or what?
If you would provide more details I wouldn't mind testing it out (if I have time).
im sorry... yes slang is a language im designing. i can make a list of valid tokens if you like, however, syntax is irrelevant right now since the lexer just generates tokens. the parser captures the statements and verifies that the syntax is correct
yeah... im sorry i wasnt more clear. really what im looking for is validation that so far it compiles fine on systems. (there are some problems in the code for vc++ that i didnt realize that were fixed. ill do a push when i get home. namely pause returns things and the range based case.) the prompt is for quick testing ie throwing while(x) { x++; } at it to test the lexer/parser quickly. as of v0.1.0 it will only take input from files.