
.argot.1.4.0-rc2.source-code.meta.argot Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of argot Show documentation
Show all versions of argot Show documentation
A language for the Internet of Things.
/*
* Copyright (c) 2003-2019, Live Media Pty. Ltd.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted
* provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice, this list of
* conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
* 3. Neither the name of Live Media nor the names of its contributors may be used to endorse
* or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
* The meta dictionary.
*
* This is the core dictionary used to describe data types.
*
*/
(library.list [
/*
* BASE_ID 0
*/
(library.entry
(library.base)
(meta.cluster))
/*
* The u8 type is unsigned 8bit big endian.
* UINT8_ID 1
*/
(library.entry
(library.definition meta.name:"uint8" meta.version:"1.3")
(meta.atom uvint28:8 uvint28:8
[ (meta.attribute.size uvint28:8)
(meta.attribute.integer)
(meta.attribute.unsigned)
(meta.attribute.bigendian) ] ))
/*
* UVINT28_ID 2
*/
(library.entry
(library.definition meta.name:"uvint28" meta.version:"1.3")
(meta.atom uvint28:8 uvint28:32
[ (meta.attribute.size uvint28:28)
(meta.attribute.integer)
(meta.attribute.unsigned)
(meta.attribute.bigendian) ] ))
/*
* META_GROUP_ID 3
*/
(library.entry
(library.name meta.name:"meta" )
(meta.cluster))
/*
* meta.id is used to identify a type.
* META_ID_ID 4
*/
(library.entry
(library.definition meta.name:"meta.id" meta.version:"1.3")
(meta.reference #uvint28))
/*
* META_CLUSTER_ID 5
*/
(library.entry
(library.definition meta.name:"meta.cluster" meta.version:"1.3")
(meta.sequence []))
/*
* A map is used to map an abstract data type to a
* concrete data type. Two U16 values are used to specify
* the data types in the dictionary being defined.
* ABSTRACT_MAP_ID 6
*/
(library.entry
(library.definition meta.name:"meta.abstract_map" meta.version:"1.3")
(meta.sequence [
(meta.tag u8utf8:"id" (meta.reference #meta.id))
]))
/*
* A type defined as abstract has an empty definition.
* ABSTRACT_ID 7
*/
(library.entry
(library.definition meta.name:"meta.abstract" meta.version:"1.3")
(meta.sequence [
(meta.array
(meta.reference #uint8)
(meta.reference #meta.abstract_map))]))
/*
* u8utf8 is a simple ASCII encoded string of maxiumum length 255
* characters.
* U8UTF8_ID 8
*/
(library.entry
(library.definition meta.name:"u8utf8" meta.version:"1.3")
(meta.encoding
(meta.array
(meta.reference #uint8)
(meta.reference #uint8))
u8utf8:"UTF-8"))
/*
* meta.name defines all type names.
* NAME_ID 9
*/
(library.entry
(library.definition meta.name:"meta.name" meta.version:"1.3")
(meta.sequence [
(meta.tag u8utf8:"group" (meta.reference #meta.id))
(meta.tag u8utf8:"name" (meta.reference #u8utf8))
]))
/*
* VERSION_ID 10
*/
(library.entry
(library.definition meta.name:"meta.version" meta.version:"1.3")
(meta.sequence [
(meta.tag u8utf8:"major" (meta.reference #uint8))
(meta.tag u8utf8:"minor" (meta.reference #uint8))
]))
/*
* DEFINITION_ID 11
*/
(library.entry
(library.definition meta.name:"meta.definition" meta.version:"1.3")
(meta.abstract [
(meta.abstract_map #meta.cluster)
(meta.abstract_map #meta.atom)
(meta.abstract_map #meta.abstract)
(meta.abstract_map #meta.abstract_map)
(meta.abstract_map #meta.expression)
]))
/*
* An expression is an abstract type. It allows different
* expressions to be used to define data types. New expressions
* can be added to expand specification language.
* EXPRESSION_ID 12
*/
(library.entry
(library.definition meta.name:"meta.expression" meta.version:"1.3")
(meta.abstract [
(meta.abstract_map #meta.reference)
(meta.abstract_map #meta.tag)
(meta.abstract_map #meta.sequence)
(meta.abstract_map #meta.array)
(meta.abstract_map #meta.envelope)
(meta.abstract_map #meta.encoding)
(meta.abstract_map #meta.identified)
]))
/*
* A reference delcares a usage of another data tpye
* in the system. The name data type is used to define
* a description of usage of that data type.
* REFERENCE_ID 13
*/
(library.entry
(library.definition meta.name:"meta.reference" meta.version:"1.3")
(meta.sequence [(meta.reference #meta.id)]))
/*
* A tag is used to label a part of a sequence. It is only
* used as meta data.
* TAG_ID 14
*/
(library.entry
(library.definition meta.name:"meta.tag" meta.version:"1.3")
(meta.sequence [
(meta.tag u8utf8:"name"
(meta.reference #u8utf8))
(meta.tag u8utf8:"data"
(meta.reference #meta.expression))]))
/*
* A sequence defines a set of expressions which
* are executed in order. In the most normal case,
* it defines an ordered set of types in a data buffer.
* SEQUENCE_ID 15
*/
(library.entry
(library.definition meta.name:"meta.sequence" meta.version:"1.3")
(meta.array
(meta.reference #uint8)
(meta.reference #meta.expression)))
/*
* An Array is used to define any collection of data with
* a size and a type.
* ARRAY_ID 16
*/
(library.entry
(library.definition meta.name:"meta.array" meta.version:"1.3")
(meta.sequence [
(meta.tag u8utf8:"size" (meta.reference #meta.expression))
(meta.tag u8utf8:"data" (meta.reference #meta.expression))]))
/*
* An envelope is used to wrap any data. This allows a group of data
* to be read without actually being decoded. The decoding can take
* place when required.
* ENVELOPE_ID 17
*/
(library.entry
(library.definition meta.name:"meta.envelope" meta.version:"1.3")
(meta.sequence [
(meta.tag u8utf8:"size" (meta.reference #meta.expression))
(meta.tag u8utf8:"type" (meta.reference #meta.expression)) ]))
/*
* Encoding specifies the data encoding used on a character
* string. The data expression must return an array that
* can have encoding applied.
* ENCODING_ID 18
*/
(library.entry
(library.definition meta.name:"meta.encoding" meta.version:"1.3")
(meta.sequence [
(meta.tag u8utf8:"data" (meta.reference #meta.expression))
(meta.tag u8utf8:"encoding" (meta.reference #u8utf8))]))
/* IDENTIFIED_ID 19 */
(library.entry
(library.definition meta.name:"meta.identified" meta.version:"1.3")
(meta.sequence [
(meta.tag u8ascii:"description" (meta.reference #meta.name))
]))
/*
* Basic types are defined by a width and set of flags.
* META_ATOM_ID 20
*/
(library.entry
(library.definition meta.name:"meta.atom" meta.version:"1.3")
(meta.sequence [
(meta.tag u8utf8:"min_bit_length" (meta.reference #uvint28))
(meta.tag u8utf8:"max_bit_length" (meta.reference #uvint28))
(meta.tag u8utf8:"attributes"
(meta.array
(meta.reference #uint8)
(meta.reference #meta.atom_attribute)))]))
/* META_ATOM_ATTRIBUTE_ID 21 */
(library.entry
(library.definition meta.name:"meta.atom_attribute" meta.version:"1.3")
(meta.abstract [
(meta.abstract_map #meta.attribute.size)
(meta.abstract_map #meta.attribute.integer)
(meta.abstract_map #meta.attribute.unsigned)
(meta.abstract_map #meta.attribute.bigendian)
(meta.abstract_map #meta.attribute.signed)
(meta.abstract_map #meta.attribute.ieee756)
]))
/* META_ATTRIBUTE_ID 22 */
(library.entry
(library.name meta.name:"meta.attribute" )
(meta.cluster))
/* META_ATTRIBUTE_SIZE_ID 23 */
(library.entry
(library.definition meta.name:"meta.attribute.size" meta.version:"1.3")
(meta.sequence [
(meta.tag u8utf8:"size" (meta.reference #uvint28))
]))
/* META_ATTRIBUTE_INTEGER_ID 24 */
(library.entry
(library.definition meta.name:"meta.attribute.integer" meta.version:"1.3")
(meta.sequence []))
/* META_ATTRIBUTE_UNSIGNED_ID 25 */
(library.entry
(library.definition meta.name:"meta.attribute.unsigned" meta.version:"1.3")
(meta.sequence []))
/* META_ATTRIBUTE_BIGENDIAN_ID 26 */
(library.entry
(library.definition meta.name:"meta.attribute.bigendian" meta.version:"1.3")
(meta.sequence[]))
/* META_ATTRIBUTE_SIGNED_ID 27 */
(library.entry
(library.definition meta.name:"meta.attribute.signed" meta.version:"1.3")
(meta.sequence []))
/* META_ATTIRBUTE_IEEE756_ID 28 */
(library.entry
(library.definition meta.name:"meta.attribute.IEEE756" meta.version:"1.3")
(meta.sequence []))
/* DICTIONARY_CLUSTER_ID 29 */
(library.entry
(library.name meta.name:"dictionary")
(meta.cluster))
/* DICTIONARY_BASE_ID 30 */
(library.entry
(library.definition meta.name:"dictionary.base" meta.version:"1.3")
(meta.sequence []))
/* DICTIONARY_NAME_ID 31 */
(library.entry
(library.definition meta.name:"dictionary.name" meta.version:"1.3")
(meta.sequence [
(meta.tag u8utf8:"name" (meta.reference #meta.name))
]))
/* DICTIONARY_DEFINITION_ID 32 */
(library.entry
(library.definition meta.name:"dictionary.definition" meta.version:"1.3")
(meta.sequence [
(meta.tag u8utf8:"id" (meta.reference #meta.id))
(meta.tag u8utf8:"version" (meta.reference #meta.version))
]))
/* DICTIONARY_RELATION_ID 33 */
(library.entry
(library.definition meta.name:"dictionary.relation" meta.version:"1.3")
(meta.sequence [
(meta.tag u8utf8:"id" (meta.reference #meta.id))
]))
/* DICTIONARY_LOCATION_ID 34 */
(library.entry
(library.definition meta.name:"dictionary.location" meta.version:"1.3")
(meta.abstract [
(meta.abstract_map #dictionary.base)
(meta.abstract_map #dictionary.name)
(meta.abstract_map #dictionary.definition)
(meta.abstract_map #dictionary.relation)
]))
/* DICTIONARY_DEFINITION_ENVELOPE_ID 35 */
(library.entry
(library.definition meta.name:"dictionary.definition_envelope" meta.version:"1.3")
(meta.envelope
(meta.reference #uvint28)
(meta.reference #meta.definition)))
/* DEFINITION_ENTRY_ID 36 */
(library.entry
(library.definition meta.name:"dictionary.entry" meta.version:"1.3")
(meta.sequence [
(meta.tag u8utf8:"id" (meta.reference #meta.id))
(meta.tag u8utf8:"location" (meta.reference #dictionary.location))
(meta.tag u8utf8:"definition" (meta.reference #dictionary.definition_envelope))]))
/* DEFINITION_ENTRY_LIST_ID 37 */
(library.entry
(library.definition meta.name:"dictionary.entry_list" meta.version:"1.3")
(meta.array
(meta.reference #uvint28)
(meta.reference #dictionary.entry )))
/* DICTIONARY_FILE 38 */
(library.entry
(library.definition meta.name:"dictionary.file" meta.version:"1.3")
(meta.sequence [
(meta.tag u8ascii:"core"
(meta.array
(meta.reference #uint8)
(meta.reference #dictionary.entry_list)))
(meta.tag u8ascii:"meta"
(meta.array
(meta.reference #uint8)
(meta.reference #dictionary.entry_list)))
(meta.tag u8ascii:"message"
(meta.identified u8ascii:"message"))
]))
])
© 2015 - 2025 Weber Informatics LLC | Privacy Policy