Skip to content

Commit

Permalink
Fix zero argument functions, Allow unicode symbols
Browse files Browse the repository at this point in the history
  • Loading branch information
meric committed Apr 6, 2012
1 parent d560435 commit a877550
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 4 deletions.
3 changes: 3 additions & 0 deletions README.markdown
@@ -1,3 +1,6 @@
-- Statistical Node Language Processor
-- Change Symbol Subsitution so Unicode is allowed

Lisp to Lua Compiler
====================

Expand Down
8 changes: 4 additions & 4 deletions l2l.lua
Expand Up @@ -199,7 +199,7 @@ LUAKEYWORDS ={
}

function Symbol:tohash()
local name = tostring(self.name):gsub("[-?!@#$%^&*=_+|\\/{}<>~`,]",
local name = tostring(self.name):gsub("[^a-zA-Z0-9.%[%]\"]",
function(a)
if a ~= "." then
return hash(a)
Expand Down Expand Up @@ -502,9 +502,9 @@ end)

lambda = Operator(function(arguments, ...)
local arglist = List.concat(map(function(a)
assert(getmetatable(a) == Symbol, "Expected Symbol: "..tostring(a))
assert(getmetatable(a) == Symbol, "Expected Symbol: "..tostring(arguments))
return a:tohash()
end, arguments), ",")
end, arguments or {}), ",")
local body = compile({...})
return "(function("..arglist..")\n"..indent(body).."\nend)"
end)
Expand All @@ -514,7 +514,7 @@ defun = Operator(function(name, arguments, ...)
local arglist = List.concat(map(function(a)
assert(getmetatable(a) == Symbol, "Expected Symbol: "..tostring(a))
return a:tohash()
end, arguments))
end, arguments or {}))
local body = compile({...})
name = name:tohash()
return "function "..name.."("..arglist..")\n"..indent(body).."\nend"
Expand Down
2 changes: 2 additions & 0 deletions test.lsp
Expand Up @@ -7,6 +7,8 @@

(print (! 100))

(defun Σ () (print "ΣΣΣ"))

; Example 2: Acccessing functions from Lua environment
(print "\n--- Example 2 ---\n")
(set hello-world "hello gibberish world")
Expand Down

0 comments on commit a877550

Please sign in to comment.