/* 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 Dictionary 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 *Dictionary(MyDict) */ dictionary MyDict { }; /* TREE *Dictionary(MyDictInherit) * Inherit(Foo) */ dictionary MyDictInherit : Foo {}; /* TREE *Dictionary(MyDictPartial) */ partial dictionary MyDictPartial { }; /* ERROR Unexpected ":" after identifier "MyDictInherit". */ partial dictionary MyDictInherit : Foo {}; /* TREE *Dictionary(MyDictBig) * Key(setString) * Type() * PrimitiveType(DOMString) * Default(Foo) * Key(setLong) * Type() * PrimitiveType(unsigned long long) * Default(123) * Key(unsetLong) * Type() * PrimitiveType(long) */ dictionary MyDictBig { DOMString setString = "Foo"; unsigned long long setLong = 123; long unsetLong; }; /* ERROR Unexpected "{" after keyword "dictionary". */ dictionary { DOMString? setString = null; }; /* ERROR Unexpected identifier "NoColon" after identifier "ForParent". */ dictionary ForParent NoColon { DOMString? setString = null; }; /* TREE *Dictionary(MyDictNull) * Key(setString) * Type() * PrimitiveType(DOMString) * Default(NULL) */ dictionary MyDictNull { DOMString? setString = null; };