Files
revng-revng/scripts/tuple_tree_generator/metaschema.yml
Filippo Cremonese 8511cbf40b tuple_tree_generator: drop tags
They were more harmful than beneficial.
2022-02-23 17:36:34 +01:00

185 lines
3.4 KiB
YAML

#
# This file is distributed under the MIT License. See LICENSE.md for details.
#
"$schema": http://json-schema.org/draft-07/schema#
"$ref": "#/definitions/Schema"
definitions:
Schema:
type: array
additionalItems: false
items:
oneOf:
- "$ref": "#/definitions/Enum"
- "$ref": "#/definitions/Struct"
title: Schema
# Enums
Enum:
type: object
additionalProperties: false
properties:
name:
type: string
doc:
type: string
type:
const: "enum"
members:
type: array
additionalItems: false
items:
"$ref": "#/definitions/EnumMember"
required:
- name
- type
- members
EnumMember:
type: object
additionalProperties: false
properties:
name:
type: string
doc:
type: string
required:
- name
# Structs
Struct:
type: object
additionalProperties: false
properties:
name:
type: string
doc:
type: string
type:
const: "struct"
inherits:
type: string
abstract:
type: boolean
fields:
type: array
additionalItems: false
items:
"$ref": "#/definitions/StructField"
key:
"$ref": "#/definitions/StructKey"
propertyOrder:
- name
- doc
- type
- inherits
- abstract
- fields
- key
required:
- name
- type
- fields
StructField:
type: object
# additionalProperties: false
oneOf:
- "$ref": "#/definitions/SimpleStructField"
- "$ref": "#/definitions/SequenceStructField"
- "$ref": "#/definitions/ReferenceStructField"
SimpleStructField:
type: object
additionalProperties: false
properties:
name:
type: string
type:
type: string
doc:
type: string
optional:
type: boolean
default: false
is_guid:
type: boolean
default: false
const:
type: boolean
default: false
required:
- name
- type
SequenceStructField:
type: object
additionalProperties: false
properties:
name:
type: string
sequence:
type: object
additionalProperties: false
properties:
type:
type: string
elementType:
type: string
upcastable:
type: boolean
default: false
required:
- type
- elementType
optional:
type: boolean
default: false
const:
type: boolean
default: false
doc:
type: string
required:
- name
- sequence
ReferenceStructField:
type: object
additionalProperties: false
properties:
name:
type: string
reference:
type: object
additionalProperties: false
properties:
pointeeType:
type: string
rootType:
type: string
upcastable:
type: boolean
default: false
required:
- pointeeType
- rootType
optional:
type: boolean
default: false
const:
type: boolean
default: false
doc:
type: string
required:
- name
- reference
StructKey:
type: array
additionalItems: false
items:
type: string