Browse Source

VRMLLoader: Allow node names as identifiers.

Mugen87 5 years ago
parent
commit
9cd9d869e3
2 changed files with 52 additions and 8 deletions
  1. 26 4
      examples/js/loaders/VRMLLoader.js
  2. 26 4
      examples/jsm/loaders/VRMLLoader.js

+ 26 - 4
examples/js/loaders/VRMLLoader.js

@@ -329,13 +329,13 @@ THREE.VRMLLoader = ( function () {
 
 
 					def: function ( ctx ) {
 					def: function ( ctx ) {
 
 
-						return ctx.Identifier[ 0 ].image;
+						return ( ctx.Identifier || ctx.NodeName )[ 0 ].image;
 
 
 					},
 					},
 
 
 					use: function ( ctx ) {
 					use: function ( ctx ) {
 
 
-						return { USE: ctx.Identifier[ 0 ].image };
+						return { USE: ( ctx.Identifier || ctx.NodeName )[ 0 ].image };
 
 
 					},
 					},
 
 
@@ -3020,14 +3020,36 @@ THREE.VRMLLoader = ( function () {
 		$.RULE( 'def', function () {
 		$.RULE( 'def', function () {
 
 
 			$.CONSUME( DEF );
 			$.CONSUME( DEF );
-			$.CONSUME( Identifier );
+			$.OR( [
+				{ ALT: function () {
+
+					$.CONSUME( Identifier );
+
+				} },
+				{ ALT: function () {
+
+					$.CONSUME( NodeName );
+
+				} }
+			] );
 
 
 		} );
 		} );
 
 
 		$.RULE( 'use', function () {
 		$.RULE( 'use', function () {
 
 
 			$.CONSUME( USE );
 			$.CONSUME( USE );
-			$.CONSUME( Identifier );
+			$.OR( [
+				{ ALT: function () {
+
+					$.CONSUME( Identifier );
+
+				} },
+				{ ALT: function () {
+
+					$.CONSUME( NodeName );
+
+				} }
+			] );
 
 
 		} );
 		} );
 
 

+ 26 - 4
examples/jsm/loaders/VRMLLoader.js

@@ -365,13 +365,13 @@ var VRMLLoader = ( function () {
 
 
 					def: function ( ctx ) {
 					def: function ( ctx ) {
 
 
-						return ctx.Identifier[ 0 ].image;
+						return ( ctx.Identifier || ctx.NodeName )[ 0 ].image;
 
 
 					},
 					},
 
 
 					use: function ( ctx ) {
 					use: function ( ctx ) {
 
 
-						return { USE: ctx.Identifier[ 0 ].image };
+						return { USE: ( ctx.Identifier || ctx.NodeName )[ 0 ].image };
 
 
 					},
 					},
 
 
@@ -3056,14 +3056,36 @@ var VRMLLoader = ( function () {
 		$.RULE( 'def', function () {
 		$.RULE( 'def', function () {
 
 
 			$.CONSUME( DEF );
 			$.CONSUME( DEF );
-			$.CONSUME( Identifier );
+			$.OR( [
+				{ ALT: function () {
+
+					$.CONSUME( Identifier );
+
+				} },
+				{ ALT: function () {
+
+					$.CONSUME( NodeName );
+
+				} }
+			] );
 
 
 		} );
 		} );
 
 
 		$.RULE( 'use', function () {
 		$.RULE( 'use', function () {
 
 
 			$.CONSUME( USE );
 			$.CONSUME( USE );
-			$.CONSUME( Identifier );
+			$.OR( [
+				{ ALT: function () {
+
+					$.CONSUME( Identifier );
+
+				} },
+				{ ALT: function () {
+
+					$.CONSUME( NodeName );
+
+				} }
+			] );
 
 
 		} );
 		} );