Split up PrimitiveOrStringType into PrimitiveType and StringType in the Web IDL parser

This commit is contained in:
JustOff 2019-03-13 19:05:08 +02:00 • committed by Roy Tam
commit f953e2ad26

View file

@ -6360,7 +6360,7 @@ class Parser(Tokenizer):
def p_NonAnyType(self, p): def p_NonAnyType(self, p):
""" """
NonAnyType : PrimitiveOrStringType Null NonAnyType : PrimitiveType Null
| ARRAYBUFFER Null | ARRAYBUFFER Null
| SHAREDARRAYBUFFER Null | SHAREDARRAYBUFFER Null
| OBJECT Null | OBJECT Null
@ -6376,6 +6376,12 @@ class Parser(Tokenizer):
p[0] = self.handleNullable(type, p[2]) p[0] = self.handleNullable(type, p[2])
def p_NonAnyTypeStringType(self, p):
"""
NonAnyType : StringType Null
"""
p[0] = self.handleNullable(p[1], p[2])
def p_NonAnyTypeSequenceType(self, p): def p_NonAnyTypeSequenceType(self, p):
""" """
NonAnyType : SEQUENCE LT Type GT Null NonAnyType : SEQUENCE LT Type GT Null
@ -6445,7 +6451,7 @@ class Parser(Tokenizer):
def p_ConstType(self, p): def p_ConstType(self, p):
""" """
ConstType : PrimitiveOrStringType Null ConstType : PrimitiveType Null
""" """
type = BuiltinTypes[p[1]] type = BuiltinTypes[p[1]]
p[0] = self.handleNullable(type, p[2]) p[0] = self.handleNullable(type, p[2])
@ -6459,69 +6465,75 @@ class Parser(Tokenizer):
type = IDLUnresolvedType(self.getLocation(p, 1), identifier) type = IDLUnresolvedType(self.getLocation(p, 1), identifier)
p[0] = self.handleNullable(type, p[2]) p[0] = self.handleNullable(type, p[2])
def p_PrimitiveOrStringTypeUint(self, p): def p_PrimitiveTypeUint(self, p):
""" """
PrimitiveOrStringType : UnsignedIntegerType PrimitiveType : UnsignedIntegerType
""" """
p[0] = p[1] p[0] = p[1]
def p_PrimitiveOrStringTypeBoolean(self, p): def p_PrimitiveTypeBoolean(self, p):
""" """
PrimitiveOrStringType : BOOLEAN PrimitiveType : BOOLEAN
""" """
p[0] = IDLBuiltinType.Types.boolean p[0] = IDLBuiltinType.Types.boolean
def p_PrimitiveOrStringTypeByte(self, p): def p_PrimitiveTypeByte(self, p):
""" """
PrimitiveOrStringType : BYTE PrimitiveType : BYTE
""" """
p[0] = IDLBuiltinType.Types.byte p[0] = IDLBuiltinType.Types.byte
def p_PrimitiveOrStringTypeOctet(self, p): def p_PrimitiveTypeOctet(self, p):
""" """
PrimitiveOrStringType : OCTET PrimitiveType : OCTET
""" """
p[0] = IDLBuiltinType.Types.octet p[0] = IDLBuiltinType.Types.octet
def p_PrimitiveOrStringTypeFloat(self, p): def p_PrimitiveTypeFloat(self, p):
""" """
PrimitiveOrStringType : FLOAT PrimitiveType : FLOAT
""" """
p[0] = IDLBuiltinType.Types.float p[0] = IDLBuiltinType.Types.float
def p_PrimitiveOrStringTypeUnrestictedFloat(self, p): def p_PrimitiveTypeUnrestictedFloat(self, p):
""" """
PrimitiveOrStringType : UNRESTRICTED FLOAT PrimitiveType : UNRESTRICTED FLOAT
""" """
p[0] = IDLBuiltinType.Types.unrestricted_float p[0] = IDLBuiltinType.Types.unrestricted_float
def p_PrimitiveOrStringTypeDouble(self, p): def p_PrimitiveTypeDouble(self, p):
""" """
PrimitiveOrStringType : DOUBLE PrimitiveType : DOUBLE
""" """
p[0] = IDLBuiltinType.Types.double p[0] = IDLBuiltinType.Types.double
def p_PrimitiveOrStringTypeUnrestictedDouble(self, p): def p_PrimitiveTypeUnrestictedDouble(self, p):
""" """
PrimitiveOrStringType : UNRESTRICTED DOUBLE PrimitiveType : UNRESTRICTED DOUBLE
""" """
p[0] = IDLBuiltinType.Types.unrestricted_double p[0] = IDLBuiltinType.Types.unrestricted_double
def p_PrimitiveOrStringTypeDOMString(self, p): def p_StringType(self, p):
""" """
PrimitiveOrStringType : DOMSTRING StringType : BuiltinStringType
"""
p[0] = BuiltinTypes[p[1]]
def p_BuiltinStringTypeDOMString(self, p):
"""
BuiltinStringType : DOMSTRING
""" """
p[0] = IDLBuiltinType.Types.domstring p[0] = IDLBuiltinType.Types.domstring
def p_PrimitiveOrStringTypeBytestring(self, p): def p_BuiltinStringTypeBytestring(self, p):
""" """
PrimitiveOrStringType : BYTESTRING BuiltinStringType : BYTESTRING
""" """
p[0] = IDLBuiltinType.Types.bytestring p[0] = IDLBuiltinType.Types.bytestring
def p_PrimitiveOrStringTypeUSVString(self, p): def p_BuiltinStringTypeUSVString(self, p):
""" """
PrimitiveOrStringType : USVSTRING BuiltinStringType : USVSTRING
""" """
p[0] = IDLBuiltinType.Types.usvstring p[0] = IDLBuiltinType.Types.usvstring