From 8e2aa51d68578298555eef48a737ee7b6805982d Mon Sep 17 00:00:00 2001 From: David Rose Date: Tue, 6 Mar 2001 17:04:45 +0000 Subject: [PATCH] *** empty log message *** --- direct/src/dcparse/dcAtomicField.cxx | 26 +++++-------------- direct/src/dcparse/dcAtomicField.h | 6 ++--- direct/src/dcparse/dcLexer.lxx | 34 +++++++++++++++++++----- direct/src/dcparse/dcParser.yxx | 36 ++++++++++++++++++++------ direct/src/dcparse/dcSubatomicType.cxx | 15 +++++++++++ direct/src/dcparse/dcSubatomicType.h | 7 ++++- 6 files changed, 84 insertions(+), 40 deletions(-) diff --git a/direct/src/dcparse/dcAtomicField.cxx b/direct/src/dcparse/dcAtomicField.cxx index c7b9a269c6..e898f08724 100644 --- a/direct/src/dcparse/dcAtomicField.cxx +++ b/direct/src/dcparse/dcAtomicField.cxx @@ -144,25 +144,14 @@ is_clrecv() const { } //////////////////////////////////////////////////////////////////// -// Function: DCAtomicField::is_aisend +// Function: DCAtomicField::is_ownsend // Access: Public -// Description: Returns true if the "aisend" flag is set for this +// Description: Returns true if the "ownsend" flag is set for this // field, false otherwise. //////////////////////////////////////////////////////////////////// bool DCAtomicField:: -is_aisend() const { - return (_flags & F_aisend) != 0; -} - -//////////////////////////////////////////////////////////////////// -// Function: DCAtomicField::is_airecv -// Access: Public -// Description: Returns true if the "airecv" flag is set for this -// field, false otherwise. -//////////////////////////////////////////////////////////////////// -bool DCAtomicField:: -is_airecv() const { - return (_flags & F_airecv) != 0; +is_ownsend() const { + return (_flags & F_ownsend) != 0; } //////////////////////////////////////////////////////////////////// @@ -219,11 +208,8 @@ write(ostream &out, int indent_level) const { if ((_flags & F_clrecv) != 0) { out << " clrecv"; } - if ((_flags & F_aisend) != 0) { - out << " aisend"; - } - if ((_flags & F_airecv) != 0) { - out << " airecv"; + if ((_flags & F_ownsend) != 0) { + out << " ownsend"; } out << "; // field " << _number << "\n"; diff --git a/direct/src/dcparse/dcAtomicField.h b/direct/src/dcparse/dcAtomicField.h index f51ea35c59..1175602694 100644 --- a/direct/src/dcparse/dcAtomicField.h +++ b/direct/src/dcparse/dcAtomicField.h @@ -34,8 +34,7 @@ PUBLISHED: bool is_db() const; bool is_clsend() const; bool is_clrecv() const; - bool is_aisend() const; - bool is_airecv() const; + bool is_ownsend() const; public: DCAtomicField(); @@ -61,8 +60,7 @@ public: F_db = 0x0010, F_clsend = 0x0020, F_clrecv = 0x0040, - F_aisend = 0x0080, - F_airecv = 0x0100 + F_ownsend = 0x0080, }; int _flags; // A bitmask union of any of the above values. diff --git a/direct/src/dcparse/dcLexer.lxx b/direct/src/dcparse/dcLexer.lxx index c73b9eb099..8226d16bd4 100644 --- a/direct/src/dcparse/dcLexer.lxx +++ b/direct/src/dcparse/dcLexer.lxx @@ -323,6 +323,31 @@ REALNUM ([+-]?(([0-9]+[.])|([0-9]*[.][0-9]+))([eE][+-]?[0-9]+)?) return KW_STRING; } +"blob" { + accept(); + return KW_BLOB; +} + +"int16array" { + accept(); + return KW_INT16ARRAY; +} + +"int32array" { + accept(); + return KW_INT32ARRAY; +} + +"uint16array" { + accept(); + return KW_UINT16ARRAY; +} + +"uint32array" { + accept(); + return KW_UINT32ARRAY; +} + mol[0-9]+ { // A molecular keyword. accept(); @@ -366,14 +391,9 @@ mol[0-9]+ { return KW_CLRECV; } -"aisend" { +"ownsend" { accept(); - return KW_AISEND; -} - -"airecv" { - accept(); - return KW_AIRECV; + return KW_OWNSEND; } {INTEGERNUM} { diff --git a/direct/src/dcparse/dcParser.yxx b/direct/src/dcparse/dcParser.yxx index 69a0260dfa..ee0b22dcbb 100644 --- a/direct/src/dcparse/dcParser.yxx +++ b/direct/src/dcparse/dcParser.yxx @@ -57,6 +57,11 @@ dc_cleanup_parser() { %token KW_UINT64 %token KW_FLOAT64 %token KW_STRING +%token KW_BLOB +%token KW_INT16ARRAY +%token KW_INT32ARRAY +%token KW_UINT16ARRAY +%token KW_UINT32ARRAY %token KW_MOL @@ -67,8 +72,7 @@ dc_cleanup_parser() { %token KW_DB %token KW_CLSEND %token KW_CLRECV -%token KW_AISEND -%token KW_AIRECV +%token KW_OWNSEND %type dclass_name %type atomic_name @@ -228,6 +232,26 @@ type_token: | KW_STRING { $$ = ST_string; +} + | KW_BLOB +{ + $$ = ST_blob; +} + | KW_INT16ARRAY +{ + $$ = ST_int16array; +} + | KW_INT32ARRAY +{ + $$ = ST_int32array; +} + | KW_UINT16ARRAY +{ + $$ = ST_uint16array; +} + | KW_UINT32ARRAY +{ + $$ = ST_uint32array; } ; @@ -261,13 +285,9 @@ atomic_flags: { current_atomic->_flags |= DCAtomicField::F_clrecv; } - | atomic_flags KW_AISEND + | atomic_flags KW_OWNSEND { - current_atomic->_flags |= DCAtomicField::F_aisend; -} - | atomic_flags KW_AIRECV -{ - current_atomic->_flags |= DCAtomicField::F_airecv; + current_atomic->_flags |= DCAtomicField::F_ownsend; } ; diff --git a/direct/src/dcparse/dcSubatomicType.cxx b/direct/src/dcparse/dcSubatomicType.cxx index ed68daaee7..0d65bdc42c 100644 --- a/direct/src/dcparse/dcSubatomicType.cxx +++ b/direct/src/dcparse/dcSubatomicType.cxx @@ -37,6 +37,21 @@ operator << (ostream &out, DCSubatomicType type) { case ST_string: return out << "string"; + + case ST_blob: + return out << "blob"; + + case ST_int16array: + return out << "int16array"; + + case ST_int32array: + return out << "int32array"; + + case ST_uint16array: + return out << "uint16array"; + + case ST_uint32array: + return out << "uint32array"; } return out << "invalid type: " << (int)type; diff --git a/direct/src/dcparse/dcSubatomicType.h b/direct/src/dcparse/dcSubatomicType.h index 1ff431c22c..f8573dd18c 100644 --- a/direct/src/dcparse/dcSubatomicType.h +++ b/direct/src/dcparse/dcSubatomicType.h @@ -29,7 +29,12 @@ enum DCSubatomicType { ST_float64, - ST_string, + ST_string, // a human-printable string + ST_blob, // any variable length message, stored as a string + ST_int16array, + ST_int32array, + ST_uint16array, + ST_uint32array, }; END_PUBLISH