1 /* Copyright (c) 2013 The Chromium Authors. All rights reserved. 2 Use of this source code is governed by a BSD-style license that can be 3 found in the LICENSE file. */ 4 5 /* Test Dictionary productions 6 7 Run with --test to generate an AST and verify that all comments accurately 8 reflect the state of the Nodes. 9 10 BUILD Type(Name) 11 This comment signals that a node of type <Type> is created with the 12 name <Name>. 13 14 ERROR Error String 15 This comment signals that a error of <Error String> is generated. The error 16 is not assigned to a node, but are expected in order. 17 18 PROP Key=Value 19 This comment signals that a property has been set on the Node such that 20 <Key> = <Value>. 21 22 TREE 23 Type(Name) 24 Type(Name) 25 Type(Name) 26 Type(Name) 27 ... 28 This comment signals that a tree of nodes matching the BUILD comment 29 symatics should exist. This is an exact match. 30 */ 31 32 33 /* TREE 34 *Dictionary(MyDict) 35 */ 36 dictionary MyDict { }; 37 38 /* TREE 39 *Dictionary(MyDictInherit) 40 * Inherit(Foo) 41 */ 42 dictionary MyDictInherit : Foo {}; 43 44 /* TREE 45 *Dictionary(MyDictPartial) 46 */ 47 partial dictionary MyDictPartial { }; 48 49 /* ERROR Unexpected ":" after identifier "MyDictInherit". */ 50 partial dictionary MyDictInherit : Foo {}; 51 52 /* TREE 53 *Dictionary(MyDictBig) 54 * Key(setString) 55 * Type() 56 * PrimitiveType(DOMString) 57 * Default(Foo) 58 * Key(setLong) 59 * Type() 60 * PrimitiveType(unsigned long long) 61 * Default(123) 62 * Key(unsetLong) 63 * Type() 64 * PrimitiveType(long) 65 */ 66 dictionary MyDictBig { 67 DOMString setString = "Foo"; 68 unsigned long long setLong = 123; 69 long unsetLong; 70 }; 71 72 73 /* ERROR Unexpected "{" after keyword "dictionary". */ 74 dictionary { 75 DOMString? setString = null; 76 }; 77 78 79 /* ERROR Unexpected identifier "NoColon" after identifier "ForParent". */ 80 dictionary ForParent NoColon { 81 DOMString? setString = null; 82 }; 83 84 /* TREE 85 *Dictionary(MyDictNull) 86 * Key(setString) 87 * Type() 88 * PrimitiveType(DOMString) 89 * Default(NULL) 90 */ 91 dictionary MyDictNull { 92 DOMString? setString = null; 93 }; 94 95 96