| /* 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 Implements 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 <Type> is created with the | 
 | name <Name>. | 
 |  | 
 | ERROR Error String | 
 | This comment signals that a error of <Error String> 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 | 
 | <Key> = <Value>. | 
 |  | 
 | 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. | 
 | */ | 
 |  | 
 | /* BUILD Implements(A) */ | 
 | /* PROP REFERENCE=B */ | 
 | A implements B; | 
 |  | 
 | /* ERROR Unexpected ";" after keyword "implements". */ | 
 | A implements; | 
 |  | 
 | /* BUILD Implements(B) */ | 
 | /* PROP REFERENCE=C */ | 
 | B implements C; | 
 |  | 
 | /* ERROR Unexpected keyword "implements" after "]". */ | 
 | [foo] implements B; | 
 |  | 
 | /* BUILD Implements(D) */ | 
 | /* PROP REFERENCE=E */ | 
 | D implements E; | 
 |  | 
 | /* ERROR Unexpected keyword "implements" after comment. */ | 
 | implements C; | 
 |  |