/* Copyright (c) 2013 The Chromium Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. */ /* Test Exception productions Run with --test to generate an AST and verify that all comments accurately reflect the state of the Nodes. BUILD Type(Name) This comment signals that a node of type is created with the name . ERROR Error String This comment signals that a error of is generated. The error is not assigned to a node, but are expected in order. PROP Key=Value This comment signals that a property has been set on the Node such that = . TREE Type(Name) Type(Name) Type(Name) Type(Name) ... This comment signals that a tree of nodes matching the BUILD comment symatics should exist. This is an exact match. */ /* TREE *Exception(MyExc) */ exception MyExc { }; /* TREE *Exception(MyExcInherit) * Inherit(Foo) */ exception MyExcInherit : Foo {}; /* ERROR Unexpected keyword "exception" after keyword "partial". */ partial exception MyExcPartial { }; /* TREE *Exception(MyExcBig) * ExceptionField(MyString) * Type() * PrimitiveType(DOMString) * Error(Unexpected "=" after identifier "ErrorSetLong".) * ExceptionField(MyLong) * Type() * PrimitiveType(long) */ exception MyExcBig { DOMString MyString; unsigned long long ErrorSetLong = 123; long MyLong; }; /* ERROR Unexpected "{" after keyword "exception". */ exception { DOMString? setString = null; }; /* ERROR Unexpected identifier "NoColon" after identifier "ForParent". */ exception ForParent NoColon { DOMString? setString = null; }; /* TREE *Exception(MyExcConst) * Const(setString) * PrimitiveType(DOMString) * Value(NULL) */ exception MyExcConst { const DOMString? setString = null; };