/* 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 Interface 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 *Interface(MyIFace) */ interface MyIFace { }; /* TREE *Interface(MyIFaceInherit) * Inherit(Foo) */ interface MyIFaceInherit : Foo {}; /* TREE *Interface(MyIFacePartial) */ partial interface MyIFacePartial { }; /* ERROR Unexpected ":" after identifier "MyIFaceInherit". */ partial interface MyIFaceInherit : Foo {}; /* TREE *Interface(MyIFaceBig) * Const(setString) * PrimitiveType(DOMString) * Value(NULL) */ interface MyIFaceBig { const DOMString? setString = null; }; /* TREE *Interface(MyIFaceBig2) * Const(nullValue) * PrimitiveType(DOMString) * Value(NULL) * Const(longValue) * PrimitiveType(long) * Value(123) * Const(longValue2) * PrimitiveType(long long) * Value(123) * Attribute(myString) * Type() * PrimitiveType(DOMString) * Attribute(readOnlyString) * Type() * PrimitiveType(DOMString) * Operation(myFunction) * Type() * PrimitiveType(void) * Arguments() * Argument(myLong) * Type() * PrimitiveType(long long) */ interface MyIFaceBig2 { const DOMString? nullValue = null; const long longValue = 123; const long long longValue2 = 123; attribute DOMString myString; readonly attribute DOMString readOnlyString; void myFunction(long long myLong); }; /* TREE *Interface(MyIFaceSpecials) * Operation(set) * Type() * PrimitiveType(void) * Arguments() * Argument(property) * Type() * PrimitiveType(DOMString) * Operation(_unnamed_) * Type() * PrimitiveType(double) * Arguments() * Argument(property) * Type() * PrimitiveType(DOMString) * Operation(GetFiveSix) * Type() * PrimitiveType(long long) * Array(5) * Array(6) * Arguments() * Argument(arg) * Type() * Typeref(SomeType) */ interface MyIFaceSpecials { setter creator void set(DOMString property); getter double (DOMString property); long long [5][6] GetFiveSix(SomeType arg); };