| | |
| | | targetsAnnotation @30 :Bool; |
| | | } |
| | | } |
| | | |
| | | struct SourceInfo { |
| | | # Additional information about a node which is not needed at runtime, but may be useful for |
| | | # documentation or debugging purposes. This is kept in a separate struct to make sure it |
| | | # doesn't accidentally get included in contexts where it is not needed. The |
| | | # `CodeGeneratorRequest` includes this information in a separate array. |
| | | |
| | | id @0 :Id; |
| | | # ID of the Node which this info describes. |
| | | |
| | | docComment @1 :Text; |
| | | # The top-level doc comment for the Node. |
| | | |
| | | members @2 :List(Member); |
| | | # Information about each member -- i.e. fields (for structs), enumerants (for enums), or |
| | | # methods (for interfaces). |
| | | # |
| | | # This list is the same length and order as the corresponding list in the Node, i.e. |
| | | # Node.struct.fields, Node.enum.enumerants, or Node.interface.methods. |
| | | |
| | | struct Member { |
| | | docComment @0 :Text; |
| | | # Doc comment on the member. |
| | | } |
| | | |
| | | # TODO(someday): Record location of the declaration in the original source code. |
| | | } |
| | | } |
| | | |
| | | struct Field { |
| | |
| | | nodes @0 :List(Node); |
| | | # All nodes parsed by the compiler, including for the files on the command line and their |
| | | # imports. |
| | | |
| | | sourceInfo @3 :List(Node.SourceInfo); |
| | | # Information about the original source code for each node, where available. This array may be |
| | | # omitted or may be missing some nodes if no info is available for them. |
| | | |
| | | requestedFiles @1 :List(RequestedFile); |
| | | # Files which were listed on the command line. |