File: make-invoke-macros.lua

package info (click to toggle)
nqp 2014.07-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 23,596 kB
  • ctags: 7,993
  • sloc: ansic: 22,689; java: 20,240; cpp: 4,956; asm: 3,976; perl: 950; python: 267; sh: 245; makefile: 14
file content (27 lines) | stat: -rw-r--r-- 606 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
require "config"
if mode == "ordered" then
  minargs = 0
end
local i
for i = minargs, maxargs do
  local line = "#define F" .. i .. "(ID,R"
  local argdef = ""
  local argset = ""
  if i > 0 then
    line = line .. ","
    local j
    for j = 0, i-1 do
      if j > 0 then 
        argdef = argdef .. ","
        argset = argset .. ","
      end
      argdef = argdef .. "A" .. j
      argset = argset .. "A[" .. j .. "].A" .. j
    end
  end
  line = line .. argdef .. ") void ID(void* addr) { Result.R = ((CONFIG_API R(*)("  .. argdef .. "))addr)(" .. argset .. ");}\n"
  io.write(line)
end
io.flush()