summaryrefslogtreecommitdiff
path: root/tex/context/base/java-ini.lua
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2011-02-04 00:30:00 +0100
committerHans Hagen <pragma@wxs.nl>2011-02-04 00:30:00 +0100
commit8e3049413845d8d8e1f7e672bc613d4e473ee868 (patch)
treed824102395daccfde2e2b35c09c2680b5d7c8d6a /tex/context/base/java-ini.lua
parentd463f115bfa8cbbf51ec921861fac46d0893ef06 (diff)
downloadcontext-8e3049413845d8d8e1f7e672bc613d4e473ee868.tar.gz
beta 2011.02.04 00:30
Diffstat (limited to 'tex/context/base/java-ini.lua')
-rw-r--r--tex/context/base/java-ini.lua15
1 files changed, 8 insertions, 7 deletions
diff --git a/tex/context/base/java-ini.lua b/tex/context/base/java-ini.lua
index a53c06adf..efe00ffce 100644
--- a/tex/context/base/java-ini.lua
+++ b/tex/context/base/java-ini.lua
@@ -8,7 +8,7 @@ if not modules then modules = { } end modules ['java-ini'] = {
local format = string.format
local concat = table.concat
-local lpegmatch, lpegP, lpegR, lpegS, lpegC = lpeg.match, lpeg.P, lpeg.R, lpeg.S, lpeg.C
+local lpegmatch, lpegP, lpegR, lpegS, lpegC, lpegCarg = lpeg.match, lpeg.P, lpeg.R, lpeg.S, lpeg.C, lpeg.Carg
local allocate = utilities.storage.allocate
local variables = interfaces.variables
@@ -30,8 +30,8 @@ local codes, preambles, functions = javascripts.codes, javascripts.preambles, ja
local preambled = { }
-local function storefunction(s)
- functions[s] = true
+local function storefunction(s,preamble)
+ functions[s] = preamble
end
local uses = lpegP("uses")
@@ -48,7 +48,7 @@ local script = lpegC(any^1)
local funct = lpegP("function")
local leftp = lpegP("(")
local rightp = lpegP(")")
-local fname = spaces * funct * spaces * (((1-space-left)^1)/storefunction) * spaces * leftp
+local fname = spaces * funct * spaces * (lpegC((1-space-left-leftp)^1) * lpegCarg(1) / storefunction) * spaces * leftp
local parsecode = name * ((uses * name) + lpeg.Cc("")) * spaces * script
local parsepreamble = name * ((used * name) + lpeg.Cc("")) * spaces * script
@@ -70,7 +70,7 @@ function javascripts.storepreamble(str) -- now later
if trace_javascript then
report_javascript("storing preamble '%s', state '%s', order '%s'",name,used,n)
end
- lpegmatch(parsefunctions,script)
+ lpegmatch(parsefunctions,script,1,n)
end
end
@@ -82,7 +82,7 @@ function javascripts.setpreamble(name,script) -- now later
if trace_javascript then
report_javascript("setting preamble '%s', state 'now', order '%s'",name,n)
end
- lpegmatch(parsefunctions,script)
+ lpegmatch(parsefunctions,script,1,n)
end
end
@@ -101,7 +101,7 @@ function javascripts.addtopreamble(name,script) -- now later
if trace_javascript then
report_javascript("storing preamble '%s', state 'now', order '%s'",name,n)
end
- lpegmatch(parsefunctions,script)
+ lpegmatch(parsefunctions,script,1,n)
end
end
end
@@ -155,6 +155,7 @@ function javascripts.code(name,arguments)
reported[name] = true
report_javascript("using function '%s'",name)
end
+preambles[f][2] = "now" -- automatically tag preambles that define the function (as later)
if arguments then
local args = lpegmatch(splitter,arguments)
for i=1,#args do -- can be a helper