# HG changeset patch # User rubidium # Date 1175344478 0 # Node ID 6a78470c53f3f6141bdce9db29e76c545850da07 # Parent e3e55bb09f123ed6f289bc3b0a4f87e0affd97de (svn r9535) [NoAI] -Codechange: don't export virtual classes, only their class signature for parameters. diff -r e3e55bb09f12 -r 6a78470c53f3 src/ai/api/squirrel_export.awk --- a/src/ai/api/squirrel_export.awk Wed Mar 28 09:11:09 2007 +0000 +++ b/src/ai/api/squirrel_export.awk Sat Mar 31 12:34:38 2007 +0000 @@ -22,6 +22,7 @@ struct_size = 0 method_size = 0 static_method_size = 0 + virtual_class = "false" cls = "" start_squirrel_define_on_next_line = "false" cls_level = 0 @@ -137,50 +138,52 @@ # TODO returning... print "}; // namespace SQConvert" - print ""; - - # Then do the registration functions of the class. */ - print "void SQ" cls "Register(Squirrel *engine) {" - print " DefSQClass <" cls "> SQ" cls "(\"" cls "\");" - print " SQ" cls ".PreRegister(engine);" - print " SQ" cls ".AddConstructor(engine);" - print "" - - # Enum values - mlen = 0 - for (i = 1; i <= enum_value_size; i++) { - if (mlen <= length(enum_value[i])) mlen = length(enum_value[i]) - } - for (i = 1; i <= enum_value_size; i++) { - print " SQ" cls ".DefSQConst(engine, " cls "::" enum_value[i] ", " substr(spaces, 1, mlen - length(enum_value[i])) "\"" enum_value[i] "\");" - delete enum_value[i] - } - if (enum_value_size != 0) print "" - # Static methods - mlen = 0 - for (i = 1; i <= static_method_size; i++) { - if (mlen <= length(static_methods[i, 0])) mlen = length(static_methods[i, 0]) - } - for (i = 1; i <= static_method_size; i++) { - print " SQ" cls ".DefSQStaticMethod(engine, &" cls "::" static_methods[i, 0] ", " substr(spaces, 1, mlen - length(static_methods[i, 0])) "\"" static_methods[i, 0] "\", " substr(spaces, 1, mlen - length(static_methods[i, 0])) "" static_methods[i, 1] ", \"" static_methods[i, 2] "\");" - delete static_methods[i] - } - if (static_method_size != 0) print "" + if (virtual_class == "false") { + print ""; + # Then do the registration functions of the class. */ + print "void SQ" cls "Register(Squirrel *engine) {" + print " DefSQClass <" cls "> SQ" cls "(\"" cls "\");" + print " SQ" cls ".PreRegister(engine);" + print " SQ" cls ".AddConstructor(engine);" + print "" - # Non-static methods - mlen = 0 - for (i = 1; i <= method_size; i++) { - if (mlen <= length(methods[i, 0])) mlen = length(methods[i, 0]) + # Enum values + mlen = 0 + for (i = 1; i <= enum_value_size; i++) { + if (mlen <= length(enum_value[i])) mlen = length(enum_value[i]) + } + for (i = 1; i <= enum_value_size; i++) { + print " SQ" cls ".DefSQConst(engine, " cls "::" enum_value[i] ", " substr(spaces, 1, mlen - length(enum_value[i])) "\"" enum_value[i] "\");" + delete enum_value[i] + } + if (enum_value_size != 0) print "" + + # Static methods + mlen = 0 + for (i = 1; i <= static_method_size; i++) { + if (mlen <= length(static_methods[i, 0])) mlen = length(static_methods[i, 0]) + } + for (i = 1; i <= static_method_size; i++) { + print " SQ" cls ".DefSQStaticMethod(engine, &" cls "::" static_methods[i, 0] ", " substr(spaces, 1, mlen - length(static_methods[i, 0])) "\"" static_methods[i, 0] "\", " substr(spaces, 1, mlen - length(static_methods[i, 0])) "" static_methods[i, 1] ", \"" static_methods[i, 2] "\");" + delete static_methods[i] + } + if (static_method_size != 0) print "" + + # Non-static methods + mlen = 0 + for (i = 1; i <= method_size; i++) { + if (mlen <= length(methods[i, 0])) mlen = length(methods[i, 0]) + } + for (i = 1; i <= method_size; i++) { + print " SQ" cls ".DefSQMethod(engine, &" cls "::" methods[i, 0] ", " substr(spaces, 1, mlen - length(methods[i, 0])) "\"" methods[i, 0] "\", " substr(spaces, 1, mlen - length(methods[i, 0])) "" methods[i, 1] ", \"" methods[i, 2] "\");" + delete methods[i] + } + if (method_size != 0) print "" + + print " SQ" cls ".PostRegister(engine);" + print "}" } - for (i = 1; i <= method_size; i++) { - print " SQ" cls ".DefSQMethod(engine, &" cls "::" methods[i, 0] ", " substr(spaces, 1, mlen - length(methods[i, 0])) "\"" methods[i, 0] "\", " substr(spaces, 1, mlen - length(methods[i, 0])) "" methods[i, 1] ", \"" methods[i, 2] "\");" - delete methods[i] - } - if (method_size != 0) print "" - - print " SQ" cls ".PostRegister(engine);" - print "}" print "#endif /* DEFINE_SQUIRREL_CLASS */" @@ -189,6 +192,7 @@ struct_size = 0 method_size = 0 static_method_size = 0 + virtual_class = "false" cls = "" start_squirrel_define_on_next_line = "false" cls_level = 0 @@ -211,6 +215,9 @@ if (cls_level != 1) next is_static = match($0, "static") + if (match($0, "virtual")) { + virtual_class = "true" + } gsub("virtual", "", $0) gsub("static", "", $0) gsub("const", "", $0) diff -r e3e55bb09f12 -r 6a78470c53f3 src/ai/api/squirrel_export.sh --- a/src/ai/api/squirrel_export.sh Wed Mar 28 09:11:09 2007 +0000 +++ b/src/ai/api/squirrel_export.sh Sat Mar 31 12:34:38 2007 +0000 @@ -10,6 +10,7 @@ awk -f squirrel_export.awk ${f} > ${f}.tmp if [ -n "`diff ${f} ${f}.tmp`" ]; then mv ${f}.tmp ${f} + echo "Updated: ${f}" else rm -f ${f}.tmp fi @@ -60,6 +61,7 @@ if [ -n "`diff ${f} ${f}.tmp`" ]; then mv ${f}.tmp ${f} + echo "Updated: ${f}" else rm -f ${f}.tmp fi