update lua class documentation scripts
authorRobin Gareus <robin@gareus.org>
Sun, 10 Apr 2016 21:34:00 +0000 (23:34 +0200)
committerRobin Gareus <robin@gareus.org>
Sun, 10 Apr 2016 21:34:00 +0000 (23:34 +0200)
tools/fmt-luadoc.php
tools/update_luadoc.sh

index 2656b7e330b5a95d5d90e6b81f2c163a9f5f92e3..defe706b519ad66fce65a50a0d8a4f9d1cd2d5ef 100755 (executable)
@@ -34,6 +34,7 @@ foreach (json_decode ($json, true) as $b) {
                if (isset ($b['version'])) { $ardourversion = $b['version']; }
                continue;
        }
+       $b ['lua'] = preg_replace ('/:_end/', ':end', $b ['lua']);
        $b ['ldec'] = preg_replace ('/ const/', '', preg_replace ('/ const&/', '', $b['decl']));
        if (isset ($b['ret'])) {
                $b['ret'] = preg_replace ('/ const/', '', preg_replace ('/ const&/', '', $b['ret']));
@@ -125,7 +126,7 @@ function stripclass ($classname, $name) {
 function datatype ($decl) {
        # TODO handle spaces in type. Works because
        # we don't yet have templated types (with_space <here >)
-       return substr ($decl, 0, strpos ($decl, ' '));
+       return substr ($decl, 0, strrpos ($decl, ' '));
 }
 
 function luafn2class ($lua) {
@@ -342,6 +343,18 @@ foreach ($doc as $b) {
                        'cand' => canonical_decl ($b)
                );
                break;
+       case "Free C Function":
+               $funclist[luafn2class ($b['lua'])][] = array (
+                       'bind' => $b,
+                       'name' => $b['lua'],
+                       'args' => $args,
+                       'ret'  => $ret,
+                       'ref'  => false,
+                       'ext'  => true,
+                       'cand' => str_replace (':', '::', $b['lua']).'(lua_State*)'
+               );
+               fwrite (STDERR, print_r ($b, true));
+               break;
        case "Free Function":
        case "Free Function RefReturn":
                $funclist[luafn2class ($b['lua'])][] = array (
@@ -947,6 +960,7 @@ echo '</ul>'.NL;
 
 # see how far there is still to go...
 fwrite (STDERR, "Found $dox_found annotations. missing: $dox_miss\n");
+echo '<!-- '.$dox_found.' / '.$dox_miss.' !-->'.NL;
 
 ?>
 </div>
index e1a5e24eb83e4d59d7bff804897b34fbd9584c33..048374d835297fe109430ab8812121e3708e6ad0 100755 (executable)
@@ -2,23 +2,24 @@
 ## ardour needs to be configured with  --luadoc and build should be up-to date.
 
 cd `dirname $0`
+DIR=`pwd`
 set -e
 test -f ../libs/ardour/ardour/ardour.h
 test -e ../gtk2_ardour/arluadoc
 test -e ../build/gtk2_ardour/luadoc
 
-# generate ../doc/luadoc.json.gz
-../gtk2_ardour/arluadoc
-
 # generate ../doc/ardourapi.json.gz
 ./doxy2json/ardourdoc.sh
 
+# generate ../doc/luadoc.json.gz
+$DIR/../gtk2_ardour/arluadoc
+
 if test -f $HOME/src/ardour-manual/_manual/24_lua-scripting/02_class_reference.html; then
-       php fmt-luadoc.php -m > $HOME/src/ardour-manual/_manual/24_lua-scripting/02_class_reference.html
+       php $DIR/fmt-luadoc.php -m > $HOME/src/ardour-manual/_manual/24_lua-scripting/02_class_reference.html
        ls -l $HOME/src/ardour-manual/_manual/24_lua-scripting/02_class_reference.html
        cd $HOME/src/ardour-manual/
        ./build.rb
 else
-       php fmt-luadoc.php > /tmp/luadoc.html
+       php $DIR/fmt-luadoc.php > /tmp/luadoc.html
        ls -l /tmp/luadoc.html
 fi