mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
Fix various interrogate issues with parsing PhysX headers
This commit is contained in:
parent
de0b0dd879
commit
38d02fadf9
@ -495,17 +495,21 @@ declaration:
|
|||||||
CPPDeclaration *getter = $5->find_symbol(current_scope, global_scope, current_lexer);
|
CPPDeclaration *getter = $5->find_symbol(current_scope, global_scope, current_lexer);
|
||||||
if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) {
|
if (getter == (CPPDeclaration *)NULL || getter->get_subtype() != CPPDeclaration::ST_function_group) {
|
||||||
yyerror("Reference to non-existent or invalid getter: " + $5->get_fully_scoped_name(), @1);
|
yyerror("Reference to non-existent or invalid getter: " + $5->get_fully_scoped_name(), @1);
|
||||||
}
|
|
||||||
|
|
||||||
CPPDeclaration *setter = $7->find_symbol(current_scope, global_scope, current_lexer);
|
} else {
|
||||||
if (setter == (CPPDeclaration *)NULL || setter->get_subtype() != CPPDeclaration::ST_function_group) {
|
CPPDeclaration *setter = $7->find_symbol(current_scope, global_scope, current_lexer);
|
||||||
yyerror("Reference to non-existent or invalid setter: " + $7->get_fully_scoped_name(), @1);
|
CPPFunctionGroup *setter_func = NULL;
|
||||||
}
|
|
||||||
|
|
||||||
CPPMakeProperty *make_property = new CPPMakeProperty($3, getter->as_function_group(),
|
if (setter == (CPPDeclaration *)NULL || setter->get_subtype() != CPPDeclaration::ST_function_group) {
|
||||||
setter->as_function_group(),
|
yyerror("Reference to non-existent or invalid setter: " + $7->get_fully_scoped_name(), @1);
|
||||||
current_scope, @1.file);
|
} else {
|
||||||
current_scope->add_declaration(make_property, global_scope, current_lexer, @1);
|
setter_func = setter->as_function_group();
|
||||||
|
}
|
||||||
|
|
||||||
|
CPPMakeProperty *make_property = new CPPMakeProperty($3, getter->as_function_group(),
|
||||||
|
setter_func, current_scope, @1.file);
|
||||||
|
current_scope->add_declaration(make_property, global_scope, current_lexer, @1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
| KW_MAKE_SEQ '(' name ',' name ',' name ')' ';'
|
| KW_MAKE_SEQ '(' name ',' name ',' name ')' ';'
|
||||||
{
|
{
|
||||||
@ -1662,6 +1666,24 @@ type_decl:
|
|||||||
}
|
}
|
||||||
| enum_keyword name ':' enum_element_type
|
| enum_keyword name ':' enum_element_type
|
||||||
{
|
{
|
||||||
|
CPPType *type = $2->find_type(current_scope, global_scope, false, current_lexer);
|
||||||
|
if (type != NULL) {
|
||||||
|
$$ = type;
|
||||||
|
} else {
|
||||||
|
CPPExtensionType *et =
|
||||||
|
CPPType::new_type(new CPPExtensionType($1, $2, current_scope, @1.file))
|
||||||
|
->as_extension_type();
|
||||||
|
CPPScope *scope = $2->get_scope(current_scope, global_scope);
|
||||||
|
if (scope != NULL) {
|
||||||
|
scope->define_extension_type(et);
|
||||||
|
}
|
||||||
|
$$ = et;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
| enum_keyword name
|
||||||
|
{
|
||||||
|
yywarning(string("C++ does not permit forward declaration of untyped enum ") + $2->get_fully_scoped_name(), @1);
|
||||||
|
|
||||||
CPPType *type = $2->find_type(current_scope, global_scope, false, current_lexer);
|
CPPType *type = $2->find_type(current_scope, global_scope, false, current_lexer);
|
||||||
if (type != NULL) {
|
if (type != NULL) {
|
||||||
$$ = type;
|
$$ = type;
|
||||||
|
@ -200,7 +200,7 @@ CPPPreprocessor() {
|
|||||||
|
|
||||||
_warning_count = 0;
|
_warning_count = 0;
|
||||||
_error_count = 0;
|
_error_count = 0;
|
||||||
_error_abort = true;
|
_error_abort = false;
|
||||||
#ifdef CPP_VERBOSE_LEX
|
#ifdef CPP_VERBOSE_LEX
|
||||||
_token_index = 0;
|
_token_index = 0;
|
||||||
#endif
|
#endif
|
||||||
|
@ -50,6 +50,7 @@
|
|||||||
|
|
||||||
|
|
||||||
// PhysX headers
|
// PhysX headers
|
||||||
|
#include "Nxp.h"
|
||||||
#include "NxPhysics.h"
|
#include "NxPhysics.h"
|
||||||
#include "NxExtended.h"
|
#include "NxExtended.h"
|
||||||
#include "NxStream.h"
|
#include "NxStream.h"
|
||||||
|
@ -46,9 +46,6 @@ PUBLISHED:
|
|||||||
static int size() { return 3; }
|
static int size() { return 3; }
|
||||||
gray operator [](int i) const { nassertr(i >= 0 && i < 3, 0); return *(&r + i); }
|
gray operator [](int i) const { nassertr(i >= 0 && i < 3, 0); return *(&r + i); }
|
||||||
gray &operator [](int i) { nassertr(i >= 0 && i < 3, r); return *(&r + i); }
|
gray &operator [](int i) { nassertr(i >= 0 && i < 3, r); return *(&r + i); }
|
||||||
#ifdef HAVE_PYTHON
|
|
||||||
void __setitem__(int i, gray v) { operator[](i) = v; }
|
|
||||||
#endif
|
|
||||||
pixel operator + (const pixel &other) const
|
pixel operator + (const pixel &other) const
|
||||||
{ return pixel(r + other.r, g + other.g, b + other.b); }
|
{ return pixel(r + other.r, g + other.g, b + other.b); }
|
||||||
pixel operator - (const pixel &other) const
|
pixel operator - (const pixel &other) const
|
||||||
|
Loading…
x
Reference in New Issue
Block a user