Kirill Simonov avatar Kirill Simonov committed c6c479b

Add yaml.h with prototypes for basic structures.

Comments (0)

Files changed (1)

+
+#ifndef _YAML_H
+#define _YAML_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+    YAML_READER_ERROR,
+    YAML_SCANNER_ERROR,
+    YAML_PARSER_ERROR,
+    YAML_EMITTER_ERROR
+} yaml_error_type_t;
+
+typedef enum {
+    YAML_UTF8_ENCODING,
+    YAML_UTF16LE_ENCODING,
+    YAML_UTF16BE_ENCODING
+} yaml_encoding_t;
+
+typedef enum {
+    YAML_PLAIN_SCALAR_STYLE,
+    YAML_SINGLE_QUOTED_SCALAR_STYLE,
+    YAML_DOUBLE_QUOTED_SCALAR_STYLE,
+    YAML_LITERAL_SCALAR_STYLE,
+    YAML_FOLDED_SCALAR_STYLE
+} yaml_scalar_style_t;
+
+typedef enum {
+    YAML_BLOCK_SEQUENCE_STYLE,
+    YAML_FLOW_SEQUENCE_STYLE
+} yaml_sequence_style_t;
+
+typedef enum {
+    YAML_BLOCK_MAPPING_STYLE,
+    YAML_FLOW_MAPPING_STYLE
+} yaml_mapping_style_t;
+
+typedef enum {
+    YAML_STREAM_START_TOKEN,
+    YAML_STREAM_END_TOKEN,
+    YAML_VERSION_DIRECTIVE_TOKEN,
+    YAML_TAG_DIRECTIVE_TOKEN,
+    YAML_DOCUMENT_START_TOKEN,
+    YAML_DOCUMENT_END_TOKEN,
+    YAML_BLOCK_SEQUENCE_START_TOKEN,
+    YAML_BLOCK_MAPPING_START_TOKEN,
+    YAML_BLOCK_END_TOKEN,
+    YAML_FLOW_SEQUENCE_START_TOKEN,
+    YAML_FLOW_SEQUENCE_END_TOKEN,
+    YAML_FLOW_MAPPING_START_TOKEN,
+    YAML_FLOW_MAPPING_END_TOKEN,
+    YAML_BLOCK_ENTRY_TOKEN,
+    YAML_FLOW_ENTRY_TOKEN,
+    YAML_KEY_TOKEN,
+    YAML_VALUE_TOKEN,
+    YAML_ALIAS_TOKEN,
+    YAML_ANCHOR_TOKEN,
+    YAML_TAG_TOKEN,
+    YAML_SCALAR_TOKEN
+} yaml_token_type_t;
+
+typedef enum {
+    YAML_STREAM_START_EVENT,
+    YAML_STREAM_END_EVENT,
+    YAML_DOCUMENT_START_EVENT,
+    YAML_DOCUMENT_END_EVENT,
+    YAML_ALIAS_EVENT,
+    YAML_SEQUENCE_START_EVENT,
+    YAML_SEQUENCE_END_EVENT,
+    YAML_MAPPING_START_EVENT,
+    YAML_MAPPING_END_EVENT,
+    YAML_SCALAR_EVENT
+} yaml_event_type_t;
+
+typedef struct {
+    char *value;
+    size_t length;
+} yaml_string_t;
+
+typedef struct {
+    size_t index;
+    size_t line;
+    size_t column;
+} yaml_mark_t;
+
+typedef struct {
+    yaml_error_type_t type;
+    char *context;
+    yaml_mark_t context_mark;
+    char *problem;
+    yaml_mark_t problem_mark;
+} yaml_error_t;
+
+typedef struct {
+    yaml_token_type_t type;
+    union {
+        yaml_encoding_t encoding;
+        yaml_string_t anchor;
+        yaml_string_t tag;
+        struct {
+            yaml_string_t value;
+            yaml_scalar_style_t style;
+        } scalar;
+        struct {
+            int major;
+            int minor;
+        } version;
+        struct {
+          yaml_string_t handle;
+          yaml_string_t prefix;
+        } tag_pair;
+    } data;
+    yaml_mark_t start_mark;
+    yaml_mark_t end_mark;
+} yaml_token_t;
+
+typedef struct {
+    yaml_event_type_t type;
+    union {
+        struct {
+            yaml_encoding_t encoding;
+        } stream_start;
+        struct {
+            struct {
+                int major;
+                int minor;
+            } version;
+            struct {
+                yaml_string_t handle;
+                yaml_string_t prefix;
+            } **tag_pairs;
+            int implicit;
+        } document_start;
+        struct {
+            int implicit;
+        } document_end;
+        struct {
+            yaml_string_t anchor;
+        } alias;
+        struct {
+            yaml_string_t anchor;
+            yaml_string_t tag;
+            int plain_implicit;
+            int quoted_implicit;
+            yaml_scalar_style_t style;
+        } scalar;
+        struct {
+            yaml_string_t anchor;
+            yaml_string_t tag;
+            int implicit;
+            yaml_sequence_style_t style;
+        } sequence_start;
+        struct {
+            yaml_string_t anchor;
+            yaml_string_t tag;
+            int implicit;
+            yaml_mapping_style_t style;
+        } mapping_start;
+    } data;
+    yaml_mark_t start_mark;
+    yaml_mark_t end_mark;
+} yaml_event_t;
+
+typedef struct {
+} yaml_scanner_t;
+
+typedef struct {
+} yaml_parser_t;
+
+typedef struct {
+} yaml_composer_t;
+
+typedef struct {
+} yaml_emitter_t;
+
+typedef struct {
+} yaml_serializer_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* #ifndef _YAML_H */
+
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.