| The "example-lang" directory contains a template for adding a language binding |
| to Lucy and its object model layer, Clownfish. See the DevGuide for an |
| overview of Lucy's layers: |
| |
| http://lucy.apache.org/docs/perl/Lucy/Docs/DevGuide.html |
| |
| To get started, copy "example-lang" to a directory named after the language |
| you'd like to bind to: |
| |
| cp -R example-lang xyz |
| |
| Most of the C files within the "example-lang/src" directory contain stubs for |
| routines whose interfaces are defined within "trunk/core". |
| |
| core/src/Lucy/Index/Inverter.cfh # Declares interface. |
| core/src/Lucy/Index/Inverter.c # all except Invert_Doc() |
| example-lang/src/Lucy/Index/Inverter.c # only Invert_Doc() |
| |
| Once all the stubs have been implemented correctly, Lucy will theoretically |
| build and pass its tests. |
| |
| There is one pair of files with an interface *not* defined in core. |
| |
| example-lang/src/CFBind.h |
| example-lang/src/CFBind.c |
| |
| The CFBind files are there to hold conversion routines which are specific to a |
| language binding. Since it is impractical to impose a generic interface, they |
| are not defined in core. |
| |
| You may wish to start by referencing a finished language binding to get a feel |
| for what should go in the CFBind files. |
| |
| Some of Lucy's classes really ought to be grouped with Clownfish, as they form |
| something similar to a free floating "standard library" and are not |
| search-related. At some point everything under Lucy::Object will probably |
| migrate to a new namespace: |
| |
| Lucy::Object::Obj => Clownfish::Obj |
| Lucy::Object::CharBuf => Clownfish::CharBuf |
| Lucy::Object::VArray => Clownfish::VArray |
| Lucy::Object::Hash => Clownfish::Hash |
| Lucy::Object::BitVector => Clownfish::BitVector |
| ... |
| |
| Other, search-related classes belong with Lucy itself, but are represented |
| here because they lack one or more implementing functions: |
| |
| Lucy::Document::Doc |
| Lucy::Analysis::RegexTokenizer |
| Lucy::Index::Inverter |
| ... |