LuisLang is a real, working scripting language -- hand-written lexer, recursive-descent parser, tree-walking interpreter, no external dependencies. Part of the LuisHae software family.
-- LuisLang really runs this tell app "Allacrity" to run command "echo test" let x to 5 print "x is " & x if x is greater than 3 then print "big" else print "small" end if loop 3 times print "hi" end loop func square with n give n * n end func print "5 squared is " & square(5)
Not a spec, not a toy grammar demo -- a real interpreter you run today with one command.
test x is 5 big hi hi hi 5 squared is 25
Multiple natural phrasings for the same thing -- you shouldn't have to memorize one exact keyword.
tell app "X" to run command "Y", set x to 5, say "hi", if x is greater than 3 then -- reads like a sentence, not symbol soup.
say/print/show, set/let/make, repeat/loop, define/func -- pick whichever word you'd naturally reach for.
define square with n ... return n * n end define, then call it as square(5) or call square with 5 -- both work.
tell app to run command genuinely runs a real shell command via subprocess and captures its output -- not simulated.
~110 real underlying implementations (math, strings, lists, files, JSON, random, dates) exposed under 500+ names via generous synonyms -- length/size/tally/item_count all do the same thing.
No install, no dependencies -- just Python 3 and two files.
This is a real hand-written interpreter (lexer, recursive-descent parser, tree-walking evaluator) -- not a fork of an existing language, not backed by a formal spec or standards committee. It's a genuinely working scripting language good for small scripts and toy programs like Snake, not a production-grade language with a JIT, static typing, or a package ecosystem. ask is blocking, line-based input -- there's no non-blocking keypress support yet, which is why Snake is turn-based rather than real-time.