README

Areo-Joe/webidl/parser does not have a README file

#
Tokens

An ArrayView represents a view into a section of an array without copying the data. It stores its own start offset and length when it is created, so iteration over a view keeps using those bounds even if the underlying array is later structurally modified.

Example

test {
let arr = [1, 2, 3, 4, 5]
let view = arr[1:4] // Creates a view of elements at indices 1,2,3
@test.assert_eq(view[0], 2)
@test.assert_eq(view.length(), 3)
}

#
Argument

pub struct Argument {
extended_attribute_list : ExtendedAttributeList
argument_rest : ArgumentRest
}

#
ArgumentList

pub enum ArgumentList {
Some(Argument, Arguments)
None
}

#
ArgumentList::iter

fn ArgumentList::iter(self : ArgumentList) -> Iter[Argument]

#
ArgumentName

pub enum ArgumentName {
ArgumentNameKeyword(ArgumentNameKeyword)
Identifier(StringView)
}

#
ArgumentNameKeyword

pub enum ArgumentNameKeyword {
Attribute
Callback
Const
Constructor
Deleter
Dictionary
Enum
Getter
Includes
Inherit
Interface
Iterable
Maplike
Mixin
Namespace
Partial
Readonly
Required
Setlike
Setter
Static
Stringifier
Typedef
Unrestricted
} derive(
Debug
)

#
ArgumentRest

pub enum ArgumentRest {
Optional(TypeWithExtendedAttributes, ArgumentName, Default)
Ellipsisable(Type, Ellipsis, ArgumentName)
}

#
Arguments

pub enum Arguments {
Some(Argument, Arguments)
None
}

#
Arguments::iter

fn Arguments::iter(self : Arguments) -> Iter[Argument]

#
AsyncIterable

pub struct AsyncIterable {
type_with_extended_attributes : TypeWithExtendedAttributes
optional_type : OptionalType
optional_argument_list : OptionalArgumentList
}

#
AttributeName

pub enum AttributeName {
AttributeNameKeyword(AttributeNameKeyword)
Identifier(StringView)
}

#
AttributeNameKeyword

pub enum AttributeNameKeyword {
Required
}

#
AttributeRest

pub struct AttributeRest {
type_with_extended_attributes : TypeWithExtendedAttributes
attribute_name : AttributeName
}

#
BooleanLiteral

pub enum BooleanLiteral {
True
False
}

#
BufferRelatedType

pub enum BufferRelatedType {
ArrayBuffer
SharedArrayBuffer
DataView
Int8Array
Int16Array
Int32Array
Uint8Array
Uint16Array
Uint32Array
Uint8ClampedArray
BigInt64Array
BigUint64Array
Float16Array
Float32Array
Float64Array
} derive(
Debug
)

#
CallbackInterfaceMember

pub enum CallbackInterfaceMember {
Const(Const)
RegularOperation(RegularOperation)
}

#
CallbackInterfaceMembers

pub enum CallbackInterfaceMembers {
Some(ExtendedAttributeList, CallbackInterfaceMember, CallbackInterfaceMembers)
None
}

#
CallbackOrInterfaceOrMixin

pub enum CallbackOrInterfaceOrMixin {
Callback(CallbackRestOrInterface)
Interface(InterfaceOrMixin)
}

#
CallbackRest

pub struct CallbackRest {
identifier : StringView
type_ : Type
argument_list : ArgumentList
}

#
CallbackRestOrInterface

pub enum CallbackRestOrInterface {
CallbackRest(CallbackRest)
Interface(StringView, CallbackInterfaceMembers)
}

#
Const

pub struct Const {
const_type : ConstType
identifier : StringView
const_value : ConstValue
}

#
ConstType

pub enum ConstType {
PrimitiveType(PrimitiveType)
Identifier(StringView)
}

#
ConstValue

pub enum ConstValue {
BooleanLiteral(BooleanLiteral)
FloatLiteral(FloatLiteral)
Integer(StringView)
}

#
Constructor

pub struct Constructor {
argument_list : ArgumentList
}

#
Default

pub enum Default {
Some(DefaultValue)
None
}

#
DefaultValue

pub enum DefaultValue {
ConstValue(ConstValue)
String(StringView)
Brackets
Braces
Null
Undefined
}

#
Definition

pub enum Definition {
CallbackOrInterfaceOrMixin(CallbackOrInterfaceOrMixin)
Namespace(Namespace)
Partial(Partial)
Dictionary(Dictionary)
Enum(Enum)
Typedef(Typedef)
IncludesStatement(IncludesStatement)
}

#
Definitions

pub enum Definitions {
Some(ExtendedAttributeList, Definition, Definitions)
None
}

#
Definitions::iter

#
Definitions::parse

#as_free_fn(parse, visibility="pub")
fn Definitions::parse(input : ArrayView[(
TokenType
, StringView)]) -> (Definitions, ArrayView[(
TokenType
, StringView)])

#
Dictionary

pub struct Dictionary {
identifier : StringView
inheritance : Inheritance
dictionary_members : DictionaryMembers
}

#
DictionaryMember

pub struct DictionaryMember {
extended_attribute_list : ExtendedAttributeList
dictionary_member_rest : DictionaryMemberRest
}

#
DictionaryMemberRest

pub enum DictionaryMemberRest {
Required(TypeWithExtendedAttributes, StringView)
Optional(Type, StringView, Default)
}

#
DictionaryMembers

pub enum DictionaryMembers {
Some(DictionaryMember, DictionaryMembers)
None
}

#
DistinguishableType

pub enum DistinguishableType {
PrimitiveType(PrimitiveType, Null)
StringType(StringType, Null)
Identifier(StringView, Null)
Sequence(TypeWithExtendedAttributes, Null)
AsyncSequence(TypeWithExtendedAttributes, Null)
Object(Null)
Symbol(Null)
BufferRelatedType(BufferRelatedType, Null)
FrozenArray(TypeWithExtendedAttributes, Null)
ObservableArray(TypeWithExtendedAttributes, Null)
RecordType(RecordType, Null)
Undefined(Null)
}

#
Ellipsis

pub enum Ellipsis {
Some
None
}

#
Enum

pub struct Enum {
identifier : StringView
enum_value_list : EnumValueList
}

#
EnumValueList

pub struct EnumValueList {
string : StringView
enum_value_list_comma : EnumValueListComma
}

#
EnumValueList::iter

fn EnumValueList::iter(self : EnumValueList) -> Iter[StringView]

#
EnumValueListComma

pub enum EnumValueListComma {
Some(EnumValueListString)
None
}

#
EnumValueListString

pub enum EnumValueListString {
Some(StringView, EnumValueListComma)
None
}

#
ExtendedAttributeArgList

pub struct ExtendedAttributeArgList {
identifier : StringView
argument_list : ArgumentList
}

#
ExtendedAttributeDecimal

pub struct ExtendedAttributeDecimal {
identifier : StringView
value : StringView
}

#
ExtendedAttributeIdent

pub struct ExtendedAttributeIdent {
identifier : StringView
value : StringView
}

#
ExtendedAttributeIdentList

pub struct ExtendedAttributeIdentList {
identifier : StringView
identifier_list : IdentifierList
}

#
ExtendedAttributeInteger

pub struct ExtendedAttributeInteger {
identifier : StringView
value : StringView
}

#
ExtendedAttributeIntegerList

pub struct ExtendedAttributeIntegerList {
identifier : StringView
integer_list : IntegerList
}

#
ExtendedAttributeList

pub enum ExtendedAttributeList {
Some(ExtendedAttribute, ExtendedAttributes)
None
} derive(
Debug
)

#
ExtendedAttributeNamedArgList

pub struct ExtendedAttributeNamedArgList {
identifier : StringView
value : StringView
argument_list : ArgumentList
}

#
ExtendedAttributeNoArgs

pub struct ExtendedAttributeNoArgs {
identifier : StringView
}

#
ExtendedAttributeRest

pub enum ExtendedAttributeRest {
ExtendedAttribute(ExtendedAttribute)
None
} derive(
Debug
)

#
ExtendedAttributeString

pub struct ExtendedAttributeString {
identifier : StringView
value : StringView
}

#
ExtendedAttributeWildcard

pub struct ExtendedAttributeWildcard {
identifier : StringView
}

#
ExtendedAttributes

pub enum ExtendedAttributes {
Some(ExtendedAttribute, ExtendedAttributes)
None
} derive(
Debug
)

#
FloatLiteral

pub enum FloatLiteral {
Decimal(StringView)
NegativeInfinity
Infinity
NaN
}

#
FloatType

pub enum FloatType {
Float
Double
}

#
IdentifierList

pub struct IdentifierList {
identifier : StringView
identifiers : Identifiers
}

#
IdentifierList::iter

fn IdentifierList::iter(self : IdentifierList) -> Iter[StringView]

#
Identifiers

pub enum Identifiers {
Some(StringView, Identifiers)
None
}

#
Identifiers::iter

fn Identifiers::iter(self : Identifiers) -> Iter[StringView]

#
IncludesStatement

pub struct IncludesStatement {
interface_identifier : StringView
mixin_identifier : StringView
}

#
InheritAttribute

pub struct InheritAttribute {
attribute_rest : AttributeRest
}

#
Inheritance

pub enum Inheritance {
Some(StringView)
None
}

#
IntegerList

pub struct IntegerList {
integer : StringView
integers : Integers
}

#
IntegerList::iter

fn IntegerList::iter(self : IntegerList) -> Iter[StringView]

#
IntegerType

pub enum IntegerType {
Short
Long(OptionalLong)
}

#
Integers

pub enum Integers {
Some(StringView, Integers)
None
}

#
Integers::iter

fn Integers::iter(self : Integers) -> Iter[StringView]

#
InterfaceMember

pub enum InterfaceMember {
PartialInterfaceMember(PartialInterfaceMember)
Constructor(Constructor)
}

#
InterfaceMembers

pub enum InterfaceMembers {
Some(ExtendedAttributeList, InterfaceMember, InterfaceMembers)
None
}

#
InterfaceOrMixin

pub enum InterfaceOrMixin {
InterfaceRest(InterfaceRest)
MixinRest(MixinRest)
}

#
InterfaceRest

pub struct InterfaceRest {
identifier : StringView
inheritance : Inheritance
interface_members : InterfaceMembers
}

#
Iterable

pub struct Iterable {
type_with_extended_attributes : TypeWithExtendedAttributes
optional_type : OptionalType
}

#
MaplikeRest

pub struct MaplikeRest {
key_type : TypeWithExtendedAttributes
value_type : TypeWithExtendedAttributes
}

#
MixinMember

pub enum MixinMember {
Const(Const)
RegularOperation(RegularOperation)
Stringifier(Stringifier)
Attribute(OptionalReadOnly, AttributeRest)
}

#
MixinMembers

pub enum MixinMembers {
Some(ExtendedAttributeList, MixinMember, MixinMembers)
None
}

#
MixinRest

pub struct MixinRest {
identifier : StringView
mixin_members : MixinMembers
}

#
Namespace

pub struct Namespace {
identifier : StringView
namespace_members : NamespaceMembers
}

#
NamespaceMember

pub enum NamespaceMember {
RegularOperation(RegularOperation)
ReadOnlyAttribute(AttributeRest)
Const(Const)
}

#
NamespaceMembers

pub enum NamespaceMembers {
Some(ExtendedAttributeList, NamespaceMember, NamespaceMembers)
None
}

#
Null

pub enum Null {
Some
None
} derive(
Debug
)

#
Operation

pub enum Operation {
RegularOperation(RegularOperation)
SpecialOperation(SpecialOperation)
}

#
OperationName

pub enum OperationName {
OperationNameKeyword(OperationNameKeyword)
Identifier(StringView)
}

#
OperationNameKeyword

pub enum OperationNameKeyword {
Includes
}

#
OperationRest

pub struct OperationRest {
optional_operation_name : OptionalOperationName
argument_list : ArgumentList
}

#
OptionalArgumentList

pub enum OptionalArgumentList {
Some(ArgumentList)
None
}

#
OptionalLong

pub enum OptionalLong {
Long
None
}

#
OptionalOperationName

pub enum OptionalOperationName {
Some(OperationName)
None
}

#
OptionalReadOnly

pub enum OptionalReadOnly {
ReadOnly
None
} derive(
Debug
)

#
OptionalType

pub enum OptionalType {
Some(TypeWithExtendedAttributes)
None
}

#
Other

pub enum Other {
Integer(StringView)
Decimal(StringView)
Identifier(StringView)
String(StringView)
Other(StringView)
Minus
NegativeInfinity
Dot
Ellipsis
Colon
Semicolon
LessThan
Equal
GreaterThan
QuestionMark
Asterisk
ByteString
DOMString
FrozenArray
Infinity
NaN
ObservableArray
Promise
USVString
Any
Bigint
Boolean
Byte
Double
False
Float
Long
Null
Object
Octet
Or
Optional
Record
Sequence
Short
Symbol
True
Unsigned
Undefined
ArgumentNameKeyword(ArgumentNameKeyword)
BufferRelatedType(BufferRelatedType)
} derive(
Debug
)

#
OtherOrComma

pub enum OtherOrComma {
Other(Other)
Comma
} derive(
Debug
)

#
Partial

pub struct Partial {
partial_definition : PartialDefinition
}

#
PartialDefinition

pub enum PartialDefinition {
Interface(PartialInterfaceOrPartialMixin)
Dictionary(PartialDictionary)
Namespace(Namespace)
}

#
PartialDictionary

pub struct PartialDictionary {
identifier : StringView
dictionary_members : DictionaryMembers
}

#
PartialInterfaceMember

pub enum PartialInterfaceMember {
Const(Const)
Operation(Operation)
Stringifier(Stringifier)
StaticMember(StaticMember)
Iterable(Iterable)
AsyncIterable(AsyncIterable)
ReadOnlyMember(ReadOnlyMember)
ReadWriteAttribute(ReadWriteAttribute)
ReadWriteMaplike(ReadWriteMaplike)
ReadWriteSetlike(ReadWriteSetlike)
InheritAttribute(InheritAttribute)
}

#
PartialInterfaceMembers

pub enum PartialInterfaceMembers {
Some(ExtendedAttributeList, PartialInterfaceMember, PartialInterfaceMembers)
None
}

#
PartialInterfaceOrPartialMixin

pub enum PartialInterfaceOrPartialMixin {
PartialInterfaceRest(PartialInterfaceRest)
MixinRest(MixinRest)
}

#
PartialInterfaceRest

pub struct PartialInterfaceRest {
identifier : StringView
partial_interface_members : PartialInterfaceMembers
}

#
PrimitiveType

pub enum PrimitiveType {
UnsignedIntegerType(UnsignedIntegerType)
UnrestrictedFloatType(UnrestrictedFloatType)
Boolean
Byte
Octet
Bigint
}

#
PromiseType

pub struct PromiseType {
type_ : Type
}

#
ReadOnlyMember

pub struct ReadOnlyMember {
read_only_member_rest : ReadOnlyMemberRest
}

#
ReadOnlyMemberRest

pub enum ReadOnlyMemberRest {
Attribute(AttributeRest)
Maplike(MaplikeRest)
Setlike(SetlikeRest)
}

#
ReadWriteAttribute

pub struct ReadWriteAttribute {
attribute_rest : AttributeRest
}

#
ReadWriteMaplike

pub struct ReadWriteMaplike {
maplike_rest : MaplikeRest
}

#
ReadWriteSetlike

pub struct ReadWriteSetlike {
setlike_rest : SetlikeRest
}

#
RecordType

pub struct RecordType {
string_type : StringType
type_with_extended_attributes : TypeWithExtendedAttributes
}

#
RegularOperation

pub struct RegularOperation {
type_ : Type
operation_rest : OperationRest
}

#
SetlikeRest

pub struct SetlikeRest {
type_with_extended_attributes : TypeWithExtendedAttributes
}

#
SingleType

pub enum SingleType {
DistinguishableType(DistinguishableType)
Any
PromiseType(PromiseType)
}

#
Special

pub enum Special {
Getter
Setter
Deleter
}

#
SpecialOperation

pub struct SpecialOperation {
special : Special
regular_operation : RegularOperation
}

#
StaticMember

pub struct StaticMember {
static_member_rest : StaticMemberRest
}

#
StaticMemberRest

pub enum StaticMemberRest {
Attribute(OptionalReadOnly, AttributeRest)
RegularOperation(RegularOperation)
}

#
StringType

pub enum StringType {
ByteString
DOMString
USVString
} derive(
Debug
)

#
Stringifier

pub struct Stringifier {
stringifier_rest : StringifierRest
}

#
StringifierRest

pub enum StringifierRest {
Attribute(OptionalReadOnly, AttributeRest)
Semicolon
}

#
Type

pub enum Type {
SingleType(SingleType)
UnionType(UnionType, Null)
}

#
TypeWithExtendedAttributes

pub struct TypeWithExtendedAttributes {
extended_attribute_list : ExtendedAttributeList
type_ : Type
}

#
Typedef

pub struct Typedef {
type_with_extended_attributes : TypeWithExtendedAttributes
identifier : StringView
}

#
UnionMemberType

pub enum UnionMemberType {
UnionType(UnionType, Null)
DistinguishableTypeWithExtendedAttributeList(DistinguishableType, ExtendedAttributeList)
}

#
UnionMemberTypes

pub enum UnionMemberTypes {
Some(UnionMemberType, UnionMemberTypes)
None
}

#
UnionMemberTypes::iter

#
UnionType

pub struct UnionType {
first_union_member_type : UnionMemberType
second_union_member_type : UnionMemberType
union_member_types : UnionMemberTypes
}

#
UnionType::iter

#
UnrestrictedFloatType

pub enum UnrestrictedFloatType {
UnrestrictedFloatType(FloatType)
FloatType(FloatType)
}

#
UnsignedIntegerType

pub enum UnsignedIntegerType {
UnsignedIntegerType(IntegerType)
IntegerType(IntegerType)
}