The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

ncidef2asm.pl

Take an NCI library definition file and turn it into a

Sections

An NCI library definition file provides the information needed to generate a parrot wrapper for the named library (or libraries). Its format is simple, and looks like:

  [package]
  ncurses 

  [lib]
  libform.so

  [defs]
  p new_field i i i i i i

  [lib]
  libncurses.so

  [defs]
  i is_term_resized i i

Note that the assembly file is generated in the order you specify, so if there are library dependencies, make sure you have them in the correct order.

package

Declares the package that all subsequent sub PMCs will be put into. The name is a simple concatenation of the package name, double colon, and the routine name, with no preceding punctuation.

lib

The name of the library to be loaded. Should be as qualified as necessary for your platform--generally the full filename is required, though the directory generally isn't.

You may load multiple libraries here, but only the last one loaded will be exposed to subsequent defs.

defs

This section holds the definitions of functions. Each function is assumed to be in the immediate preceeding library. The definition of the function is:

  return_type name [param [param [param ...]]]

The param and return_type parameters use the NCI standard, which for reference is:

p

Parameter is a void pointer, taken from the PMC's data pointer. PMC is assumed to be an unmanagedstruct or child class.

Taken from a P register

c

Parameter is a character.

Taken from an I register

s

Parameter is a short

Taken from an I register

i

Parameter is an int

Taken from an I register

l

Parameter is a long

Taken from an I register

f

Paramter is a float

Taken from an N register.

d

Parameter is a double.

Taken from an N register.

t

Paramter is a char *, presumably a C string

Taken from an S register

v

Void. Only valid as a return type, noting that the function returns no data.

I

Interpreter pointer. The current interpreter pointer is passed in

P

PMC.

2

Pointer to short.

Taken from an I register.

3

Pointer to int.

Taken from an I register

4

Pointer to long

Taken from an I register

3 POD Errors

The following errors were encountered while parsing the POD:

Around line 121:

Expected text after =item, not a number

Around line 127:

Expected text after =item, not a number

Around line 133:

Expected text after =item, not a number