From 2ceb0a2b3c13962a24c5cf14277bd0a5fa8fd962 Mon Sep 17 00:00:00 2001 From: Mykyta Biliavskyi Date: Mon, 8 Jun 2015 15:35:16 +0000 Subject: [PATCH] Autocomplete: enhance the autocomplete feature. The hardcoded list of the strings from auto_comp_code.h is replaced by description of the relationships between keywords. This descriptions is stored in autocomp.src file. Now the autocomplete feature is monitoring context of the inputted text, and provide list of the keywords, that relevant to current context. For add new relationships between keywords need only add it into autocomp.src in correct hierarchical order. --- configure.ac | 1 + data/Makefile.am | 2 +- data/autocomp/Makefile.am | 16 + data/autocomp/autocomp.src | 2375 ++++++++++++++++++++++++++++++++++++ src/lib/auto_comp.c | 357 +++--- src/lib/auto_comp_code.h | 446 ------- 6 files changed, 2580 insertions(+), 617 deletions(-) create mode 100644 data/autocomp/Makefile.am create mode 100644 data/autocomp/autocomp.src delete mode 100644 src/lib/auto_comp_code.h diff --git a/configure.ac b/configure.ac index 890444a..19dbfbd 100644 --- a/configure.ac +++ b/configure.ac @@ -127,6 +127,7 @@ data/themes/default/images/Makefile data/themes/default/sounds/Makefile data/templates/Makefile data/color/Makefile +data/autocomp/Makefile data/sounds/Makefile data/about/Makefile pc/enventor.pc diff --git a/data/Makefile.am b/data/Makefile.am index fe4375b..132aa94 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -1,3 +1,3 @@ MAINTAINERCLEANFILES = Makefile.in -SUBDIRS = images themes templates desktop icon color sounds about +SUBDIRS = images themes templates desktop icon color sounds about autocomp diff --git a/data/autocomp/Makefile.am b/data/autocomp/Makefile.am new file mode 100644 index 0000000..6fabd7c --- /dev/null +++ b/data/autocomp/Makefile.am @@ -0,0 +1,16 @@ +MAINTAINERCLEANFILES = Makefile.in + +EET_EET = @eet_eet@ + +EXTRA_DIST = autocomp.src + +filesdir = $(datadir)/$(PACKAGE)/autocomp +files_DATA = autocomp.eet + +%.eet: %.src + $(EET_EET) -e \ + $(top_builddir)/data/autocomp/$@ node \ + $< 1 + +clean-local: + rm -rf *.eet *~ diff --git a/data/autocomp/autocomp.src b/data/autocomp/autocomp.src new file mode 100644 index 0000000..5c7d782 --- /dev/null +++ b/data/autocomp/autocomp.src @@ -0,0 +1,2375 @@ +group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "external: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "external"; + } + } + group "txt" var_array { + count 3; + value "string" string: "externals {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "externals"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "image: \"\" COMP;"; + } + value "cursor_offset" int: 7 + value "line_back" int: 0; + value "name" string: "image"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "name: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "name"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "image: \"\" COMP;"; + } + value "cursor_offset" int: 7; + value "line_back" int: 0; + value "name" string: "image"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "size: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "size"; + } + } + group "txt" var_array { + count 3; + value "string" string: "image {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2 + value "line_back" int: 1; + value "name" string: "image"; + } + } + group "txt" var_array { + count 3; + value "string" string: "set {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2 + value "line_back" int: 1 + value "name" string: "set"; + } + } + group "txt" var_array { + count 3; + value "string" string: "images {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "images"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1 + value "string" string: "font: \"\" \"\";"; + } + value "cursor_offset" int: 5 + value "line_back" int: 0; + value "name" string: "font"; + } + } + group "txt" var_array { + count 3; + value "string" string: "fonts {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "fonts"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1 + value "string" string: "item: \"\" \"\";"; + } + value "cursor_offset" int: 5 + value "line_back" int: 0; + value "name" string: "item"; + } + } + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1 + value "string" string: "file: \"\" \"\";"; + } + value "cursor_offset" int: 5 + value "line_back" int: 0; + value "name" string: "file"; + } + } + group "txt" var_array { + count 3; + value "string" string: "data {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "data"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1 + value "string" string: "name: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "name"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1 + value "string" string: "color: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "color"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1 + value "string" string: "color2: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "color2"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1 + value "string" string: "color3: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "color3"; + } + } + group "txt" var_array { + count 3; + value "string" string: "color_class {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "color_class"; + } + } + group "txt" var_array { + count 3; + value "string" string: "color_classes {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "color_classes"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1 + value "string" string: "name: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "name"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1 + value "string" string: "base: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "base"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1 + value "string" string: "tag: \"\" \"\";"; + } + value "cursor_offset" int: 5; + value "line_back" int: 0; + value "name" string: "tag"; + } + } + group "txt" var_array { + count 3; + value "string" string: "style {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "style"; + } + } + group "txt" var_array { + count 3; + value "string" string: "styles {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "styles"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "name: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "name"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "source: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "source"; + } + } + group "txt" var_array { + count 3; + value "string" string: "sample {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "sample"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "tone: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "tone"; + } + } + group "txt" var_array { + count 3; + value "string" string: "sounds {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "sounds"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "image: \"\" COMP;"; + } + value "cursor_offset" int: 7 + value "line_back" int: 0; + value "name" string: "image"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "name: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "name"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "image: \"\" COMP;"; + } + value "cursor_offset" int: 7; + value "line_back" int: 0; + value "name" string: "image"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "size: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "size"; + } + } + group "txt" var_array { + count 3; + value "string" string: "image {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2 + value "line_back" int: 1; + value "name" string: "image"; + } + } + group "txt" var_array { + count 3; + value "string" string: "set {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2 + value "line_back" int: 1 + value "name" string: "set"; + } + } + group "txt" var_array { + count 3; + value "string" string: "images {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "images"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "alias: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "alias"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "inherit: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "inherit"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 3; + value "string" string: "script {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "script"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "scripy_only: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "script_only"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "min: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "min"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "max: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "max"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 3; + value "string" string: "broadcast_signal: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "broadcast_signal"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "vertical: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "vertical"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "horizontal: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "horizontal"; + } + } + group "txt" var_array { + count 3; + value "string" string: "limits {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "limits"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "item: \"\" \"\";"; + } + value "cursor_offset" int: 5 + value "line_back" int: 0; + value "name" string: "item"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "file: \"\" \"\";"; + } + value "cursor_offset" int: 5 + value "line_back" int: 0; + value "name" string: "file"; + } + } + group "txt" var_array { + count 3; + value "string" string: "data {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "data"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "type: IMAGE;"; + } + value "cursor_offset" int: 0; + value "line_back" int: 0; + value "name" string: "type"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "insert_before: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "insert_before"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "insert_after: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "insert_after"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "mouse_events: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "mouse_events"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "repeat_events: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "repeat_events"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "ignore_flags: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "ignore_flags"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "scale: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "scale"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "entry_mode: NONE;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "entry_mode"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "select_mode: DEFAULT;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "select_mode"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "cursor_mode: DEFAULT;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "cursor_mode"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "multiline: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "multiline"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "access: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "access"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "clip_to: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "clip_to"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "pointer_mode: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "pointer_mode"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "source: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "source"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "type: GROUP;"; + } + value "cursor_offset" int: 0; + value "line_back" int: 0; + value "name" string: "type"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "name: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "name"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "source: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "source"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "min: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "min"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "max: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "max"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "spread: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "spread"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "prefer: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "prefer"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "padding: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "padding"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "align: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "align"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "aspect: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "aspect"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "aspect_ratio: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "aspect_ratio"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "options: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "options"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "span: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "span"; + } + } + group "txt" var_array { + count 3; + value "string" string: "item {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "item"; + } + } + group "txt" var_array { + count 3; + value "string" string: "items {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "items"; + } + } + group "txt" var_array { + count 3; + value "string" string: "box {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "box"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "type: GROUP;"; + } + value "cursor_offset" int: 0; + value "line_back" int: 0; + value "name" string: "type"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "name: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "name"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "source: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "source"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "min: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "min"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "max: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "max"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "spread: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "spread"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "prefer: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "prefer"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "padding: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "padding"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "align: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "align"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "weight: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "weight"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "aspect: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "aspect"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "aspect_mode: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "aspect_mode"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "options: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "options"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "span: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "span"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "position: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "position"; + } + } + group "txt" var_array { + count 3; + value "string" string: "item {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "item"; + } + } + group "txt" var_array { + count 3; + value "string" string: "items {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "items"; + } + } + group "txt" var_array { + count 3; + value "string" string: "table {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "table"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "confine: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "confine"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "threshold: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "threshold"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "events: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "events"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "x: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "x"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "y: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "y"; + } + } + group "txt" var_array { + count 3; + value "string" string: "dragable {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "dragable"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "inherit: \"\" 0.0;"; + } + value "cursor_offset" int: 6; + value "line_back" int: 0; + value "name" string: "inherit"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "visible: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "visible"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "align: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "align"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "fixed: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "fixed"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "min: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "min"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "max: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "max"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "source: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "source"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "minmul: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "minmul"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "step: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "step"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "aspect: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "aspect"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "aspect_preference: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "aspect_preference"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "color_class: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "color_class"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "color: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "color"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "color2: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "color2"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "color3: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "color3"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "normal: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "normal" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "tween: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "tween" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "border: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "border" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "middle: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "middle" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "border_scale_by: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "border_scale_by" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "border_scale: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "border_scale" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "scale_hint: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "scale_hint" + } + } + group "txt" var_array { + count 3; + value "string" string: "image {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "image"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "type: SCALE;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "type" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "smooth: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "smooth" + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "relative: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "relative" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "offset: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "offset" + } + } + group "txt" var_array { + count 3; + value "string" string: "origin {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "origin" + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "relative: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "relative" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "offset: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "offset" + } + } + group "txt" var_array { + count 3; + value "string" string: "size {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "size" + } + } + group "txt" var_array { + count 3; + value "string" string: "fill {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "fill"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "min: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "min"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "padding: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "padding"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "align: ;"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "align"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "layout: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "layout"; + } + } + group "txt" var_array { + count 3; + value "string" string: "box {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "box"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "min: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "min"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "padding: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "padding"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "align: ;"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "align"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "homogeneous: NONE;"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "homogeneous"; + } + } + group "txt" var_array { + count 3; + value "string" string: "table {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "table"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "fit: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "fit" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "min: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "min" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "max: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "max" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "align: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "align" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "source: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "source" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "text_source: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "text_source" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "ellipsis: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "ellipsis" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "style:\"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "style" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "repch: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "repch" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "size_range: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "size_range" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "text_class: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "text_class" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "size: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "size" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "font: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "font" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "text: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "text" + } + } + group "txt" var_array { + count 3; + value "string" string: "text {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "text"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "perspective_on: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "style" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "backface_cull: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "backface_cull"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "alpha: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "alpha"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "smooth: ;"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "smooth"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "on: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "on"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "light: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "light"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "perspective: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "perspective"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "center: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "center"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "x: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "x"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "y: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "y"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "z: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "z"; + } + } + group "txt" var_array { + count 3; + value "string" string: "rotation {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1 + value "name" string: "rotation"; + } + } + group "txt" var_array { + count 3; + value "string" string: "map {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "map"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "zplane: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "zplane"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "focal: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "focal"; + } + } + group "txt" var_array { + count 3; + value "string" string: "perspective {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "perspective"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "relative: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "relative" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "offset: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "offset" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "to: \"\";"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "to" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "to_x: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "to_x" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "to_y: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "to_y" + } + } + group "txt" var_array { + count 3; + value "string" string: "rel1 {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "rel1"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "relative: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "relative" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "offset: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "offset" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "to: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "to" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "to_x: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "to_x" + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "to_y: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "to_y" + } + } + group "txt" var_array { + count 3; + value "string" string: "rel2 {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "rel2"; + } + } + group "txt" var_array { + count 2; + value "string" string: "description { state: \"\" 0.0;
"; + value "string" string: "}"; + } + value "cursor_offset" int: 8; + value "line_back" int: 1; + value "name" string: "description"; + } + } + group "txt" var_array { + count 2; + value "string" string: "part { name: \"\";
"; + value "string" string: "}"; + } + value "cursor_offset" int: 4; + value "line_back" int: 1; + value "name" string: "part"; + } + } + group "txt" var_array { + count 3; + value "string" string: "parts {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "parts"; + } + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "name: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "name"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "signal: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "signal"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "source: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "source"; + } + group "lexem" struct { + group "nodes" list { + } + value "use_cntr" int: 0; + group "txt" var_array { + count 1; + value "string" string: "filter: \"\" \"\";"; + } + value "cursor_offset" int: 5; + value "line_back" int: 0; + value "name" string: "filter"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "in: ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "in"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "action: STATE_SET \"\" 0.0;"; + } + value "cursor_offset" int: 6; + value "line_back" int: 0; + value "name" string: "action"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "transition: LINEAR ;"; + } + value "cursor_offset" int: 1; + value "line_back" int: 0; + value "name" string: "transition"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "target: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "target"; + } + group "lexem" struct { + group "nodes" list { + } + group "txt" var_array { + count 1; + value "string" string: "after: \"\";"; + } + value "cursor_offset" int: 2; + value "line_back" int: 0; + value "name" string: "after"; + } + } + group "txt" var_array { + count 3; + value "string" string: "program {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "program"; + } + } + group "txt" var_array { + count 3; + value "string" string: "programs {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "programs"; + } + } + group "txt" var_array { + count 2; + value "string" string: "group { name: \"\";
"; + value "string" string: "}"; + } + value "cursor_offset" int: 4; + value "line_back" int: 1; + value "name" string: "group"; + } + } + group "txt" var_array { + count 3; + value "string" string: "collections {
"; + value "string" string: "
"; + value "string" string: "}"; + } + value "cursor_offset" int: 2; + value "line_back" int: 1; + value "name" string: "collections"; + } + } + group "txt" var_array { + count 1; + value "string" string: ""; + } + value "cursor_offset" int: 0; + value "line_back" int: 0; + value "name" string: "root"; + value "pos" int: 0; +} diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index 9d87687..17f8786 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -4,29 +4,30 @@ #include #include "enventor_private.h" -#include "auto_comp_code.h" #define QUEUE_SIZE 20 #define COMPSET_PAIR_MINIMUM 1 -typedef struct comp_set_s +typedef struct lexem_s { - Eina_Stringshare *key; + Eina_List *nodes; char **txt; + int txt_count; int cursor_offset; int line_back; - int line_cnt; -} comp_set; + char *name; +} lexem; typedef struct autocomp_s { char queue[QUEUE_SIZE]; int queue_pos; - comp_set compset[COMPSET_CNT]; + const lexem *lexem_root; + lexem *lexem_ptr; + Eet_File *source_file; edit_data *ed; Evas_Object *anchor; Evas_Object *list; - Eina_List *compset_list; Ecore_Thread *init_thread; Eina_Bool anchor_visible : 1; Eina_Bool initialized : 1; @@ -35,97 +36,145 @@ typedef struct autocomp_s static autocomp_data *g_ad = NULL; -#define COMPDATA_SET(ad, key, txt, cursor_offset, line_back) \ - compdata_set(ad, idx++, key, (char **)(&txt), cursor_offset, line_back, txt##_LINE_CNT) - /*****************************************************************************/ /* Internal method implementation */ /*****************************************************************************/ +static Eet_Data_Descriptor *lex_desc = NULL; static void -compdata_set(autocomp_data *ad, int idx, char *key, char **txt, int cursor_offset, int line_back, int line_cnt) +eddc_init(void) { - ad->compset[idx].key = eina_stringshare_add(key); - ad->compset[idx].txt = txt; - ad->compset[idx].cursor_offset = cursor_offset; - ad->compset[idx].line_back = line_back; - ad->compset[idx].line_cnt = line_cnt; + Eet_Data_Descriptor_Class eddc; + + EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, lexem); + lex_desc = eet_data_descriptor_file_new(&eddc); + + EET_DATA_DESCRIPTOR_ADD_LIST(lex_desc, lexem, "nodes", nodes, lex_desc); + + EET_DATA_DESCRIPTOR_ADD_VAR_ARRAY_STRING(lex_desc, lexem, "txt", txt); + EET_DATA_DESCRIPTOR_ADD_BASIC(lex_desc, lexem, "cursor_offset", cursor_offset, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(lex_desc, lexem, "line_back", line_back, EET_T_INT); + EET_DATA_DESCRIPTOR_ADD_BASIC(lex_desc, lexem, "name", name, EET_T_STRING); +} + +static void +autocomp_load(autocomp_data *ad) +{ + char buf[PATH_MAX]; + snprintf(buf, sizeof(buf), "%s/autocomp/autocomp.eet", elm_app_data_dir_get()); + if (ad->source_file) + { + if (lex_desc) + eet_data_descriptor_free(lex_desc); + eet_close(ad->source_file); + + } + ad->source_file = eet_open(buf, EET_FILE_MODE_READ); + + ad->lexem_root = (lexem *)eet_data_read(ad->source_file, lex_desc, "node"); + ad->lexem_ptr = (lexem *)ad->lexem_root; } static void init_thread_cb(void *data, Ecore_Thread *thread EINA_UNUSED) { autocomp_data *ad = data; - int idx = 0; + eddc_init(); + autocomp_load(ad); +} - COMPDATA_SET(ad, "collections",AUTOCOMP_COLLECTIONS, 2, 1); - COMPDATA_SET(ad, "image",AUTOCOMP_IMAGE, 7, 0); - COMPDATA_SET(ad, "images",AUTOCOMP_IMAGES, 2, 1); - COMPDATA_SET(ad, "set",AUTOCOMP_SET, 4, 1); - COMPDATA_SET(ad, "group",AUTOCOMP_GROUP, 4, 1); - COMPDATA_SET(ad, "type",AUTOCOMP_TYPE, 0, 0); - COMPDATA_SET(ad, "part",AUTOCOMP_PART, 4, 1); - COMPDATA_SET(ad, "parts",AUTOCOMP_PARTS, 2, 1); - COMPDATA_SET(ad, "description",AUTOCOMP_DESCRIPTION, 8, 1); - COMPDATA_SET(ad, "inherit",AUTOCOMP_INHERIT, 6, 0); - COMPDATA_SET(ad, "program",AUTOCOMP_PROGRAM, 4, 1); - COMPDATA_SET(ad, "programs",AUTOCOMP_PROGRAMS, 2, 1); - COMPDATA_SET(ad, "signal",AUTOCOMP_SIGNAL, 2, 0); - COMPDATA_SET(ad, "source",AUTOCOMP_SOURCE, 2, 0); - COMPDATA_SET(ad, "target",AUTOCOMP_TARGET, 2, 0); - COMPDATA_SET(ad, "scale",AUTOCOMP_SCALE, 1, 0); - COMPDATA_SET(ad, "rel1",AUTOCOMP_REL1, 2, 1); - COMPDATA_SET(ad, "rel2",AUTOCOMP_REL2, 2, 1); - COMPDATA_SET(ad, "relative",AUTOCOMP_RELATIVE, 1, 0); - COMPDATA_SET(ad, "offset", AUTOCOMP_OFFSET, 1, 0); - COMPDATA_SET(ad, "color", AUTOCOMP_COLOR, 1, 0); - COMPDATA_SET(ad, "color2", AUTOCOMP_COLOR2, 1, 0); - COMPDATA_SET(ad, "color3", AUTOCOMP_COLOR3, 1, 0); - COMPDATA_SET(ad, "aspect", AUTOCOMP_ASPECT, 1, 0); - COMPDATA_SET(ad, "aspect_mode",AUTOCOMP_ASPECT_MODE, 1, 0); - COMPDATA_SET(ad, "aspect_preference", AUTOCOMP_ASPECT_PREFERENCE, 1, 0); - COMPDATA_SET(ad, "normal", AUTOCOMP_NORMAL, 2, 0); - COMPDATA_SET(ad, "effect", AUTOCOMP_EFFECT, 0, 0); - COMPDATA_SET(ad, "text", AUTOCOMP_TEXT, 2, 1); - COMPDATA_SET(ad, "font", AUTOCOMP_FONT, 2, 0); - COMPDATA_SET(ad, "align", AUTOCOMP_ALIGN, 1, 0); - COMPDATA_SET(ad, "size", AUTOCOMP_SIZE, 1, 0); - COMPDATA_SET(ad, "action", AUTOCOMP_ACTION, 6, 0); - COMPDATA_SET(ad, "transition", AUTOCOMP_TRANSITION, 1, 0); - COMPDATA_SET(ad, "after", AUTOCOMP_AFTER, 2, 0); - COMPDATA_SET(ad, "styles", AUTOCOMP_STYLES, 2, 1); - COMPDATA_SET(ad, "style", AUTOCOMP_STYLE, 4, 1); - COMPDATA_SET(ad, "base_scale", AUTOCOMP_BASE_SCALE, 1, 0); - COMPDATA_SET(ad, "base", AUTOCOMP_BASE, 2, 0); - COMPDATA_SET(ad, "sounds", AUTOCOMP_SOUNDS, 2, 1); - COMPDATA_SET(ad, "sample", AUTOCOMP_SAMPLE, 13, 1); - COMPDATA_SET(ad, "map", AUTOCOMP_MAP, 2, 1); - COMPDATA_SET(ad, "on", AUTOCOMP_ON, 1, 0); - COMPDATA_SET(ad, "visible", AUTOCOMP_VISIBLE, 1, 0); - COMPDATA_SET(ad, "perspective_on", AUTOCOMP_PERSPECTIVE_ON, 1, 0); - COMPDATA_SET(ad, "perspective", AUTOCOMP_PERSPECTIVE, 2, 0); - COMPDATA_SET(ad, "backface_cull", AUTOCOMP_BACKFACE_CULL, 1, 0); - COMPDATA_SET(ad, "rotation", AUTOCOMP_ROTATION, 2, 1); - COMPDATA_SET(ad, "min", AUTOCOMP_MIN, 1, 0); - COMPDATA_SET(ad, "max", AUTOCOMP_MAX, 1, 0); - COMPDATA_SET(ad, "fixed", AUTOCOMP_FIXED, 1, 0); - COMPDATA_SET(ad, "clip_to", AUTOCOMP_CLIP_TO, 2, 0); - COMPDATA_SET(ad, "tween", AUTOCOMP_TWEEN, 2, 0); - COMPDATA_SET(ad, "box",AUTOCOMP_BOX, 2, 1); - COMPDATA_SET(ad, "table",AUTOCOMP_TABLE, 2, 1); - COMPDATA_SET(ad, "item",AUTOCOMP_ITEM, 2, 1); - COMPDATA_SET(ad, "items",AUTOCOMP_ITEMS, 2, 1); - COMPDATA_SET(ad, "layout",AUTOCOMP_LAYOUT, 2, 0); - COMPDATA_SET(ad, "padding",AUTOCOMP_PADDING, 1, 0); - COMPDATA_SET(ad, "position", AUTOCOMP_POSITION, 1, 0); - COMPDATA_SET(ad, "precise_is_inside", AUTOCOMP_PRECISE_IS_INSIDE, 1, 0); - COMPDATA_SET(ad, "prefer", AUTOCOMP_PREFER, 1, 0); - COMPDATA_SET(ad, "smooth", AUTOCOMP_SMOOTH, 1, 0); - COMPDATA_SET(ad, "span", AUTOCOMP_SPAN, 1, 0); - COMPDATA_SET(ad, "spread", AUTOCOMP_SPREAD, 1, 0); - COMPDATA_SET(ad, "weight", AUTOCOMP_WEIGHT, 1, 0); - COMPDATA_SET(ad, "ellipsis", AUTOCOMP_ELLIPSIS, 1, 0); - COMPDATA_SET(ad, "anti_alias", AUTOCOMP_ANTI_ALIAS, 1, 0); +static lexem * +context_lexem_get(autocomp_data *ad, Evas_Object *entry, int cur_pos) +{ + + Eina_Bool find_flag = EINA_FALSE; + Eina_List *l = NULL; + Eina_List *nodes = ad->lexem_root->nodes; + lexem *data = (lexem *)ad->lexem_root; + if (cur_pos <= 1) return data; + + const char *text = elm_entry_entry_get(entry); + if (!text) return data; + int i = 0; + + char *utf8 = elm_entry_markup_to_utf8(text); + if (!utf8) return data; + + char *cur = utf8; + char *end = cur + cur_pos; + char stack[20][40]; + int depth = 0; + char *help_ptr = NULL; + char *help_end_ptr = NULL; + + const char *quot = QUOT_UTF8; + const int quot_len = QUOT_UTF8_LEN; + int quot_cnt = 0; + + while (cur <= end) + { + if ((cur!=end) && (!strncmp(cur, quot, quot_len))) + quot_cnt++; + + if (*cur == '{') + { + for (help_end_ptr = cur; + !isalnum(*help_end_ptr); + help_end_ptr--); + for (help_ptr = help_end_ptr; + (((isalnum(*help_ptr )) || (*help_ptr == '_'))); + help_ptr--); + if (help_ptr != utf8) + help_ptr++; + + memset(stack[depth], 0x0, 40); + strncpy(stack[depth], help_ptr, help_end_ptr - help_ptr + 1); + depth++; + } + if (*cur == '}') + { + memset(stack[depth], 0x0, 40); + depth--; + } + cur++; + } + + free(utf8); + + if (quot_cnt % 2) return NULL; + + for (i = 0; i < depth; i++) + { + find_flag = EINA_FALSE; + EINA_LIST_FOREACH(nodes, l, data) + { + if (!strncmp(stack[i], data->name, strlen(data->name))) + { + nodes = data->nodes; + l = NULL; + find_flag = EINA_TRUE; + break; + } + } + if (!find_flag) return NULL; + } + return data; +} + +static void +context_changed(autocomp_data *ad, Evas_Object *edit) +{ + if ((!ad->enabled) || (!ad->initialized)) return; + + int cursor_position = elm_entry_cursor_pos_get(edit); + + if (!cursor_position) + { + ad->lexem_ptr = (lexem *)ad->lexem_root; + return; + } + + ad->lexem_ptr = context_lexem_get(ad, edit, cursor_position); } static void @@ -155,7 +204,6 @@ entry_anchor_off(autocomp_data *ad) elm_object_tooltip_content_cb_set(ad->anchor, NULL, NULL, NULL); } ad->anchor_visible = EINA_FALSE; - ad->compset_list = eina_list_free(ad->compset_list); } static void @@ -170,37 +218,15 @@ anchor_unfocused_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, static void queue_reset(autocomp_data *ad) { - if (ad->queue_pos == -1) return; - ad->queue_pos = -1; + if (ad->queue_pos == 0) return; + ad->queue_pos = 0; memset(ad->queue, 0x0, sizeof(ad->queue)); entry_anchor_off(ad); } -static void -compset_list_update(autocomp_data *ad) -{ - if (!ad->enabled || !ad->initialized) return; - if (ad->queue_pos < COMPSET_PAIR_MINIMUM) return; - int i; - - ad->compset_list = eina_list_free(ad->compset_list); - for (i = 0; i < COMPSET_CNT; i++) - { - if (ad->queue[0] == ad->compset[i].key[0]) - { - if (!strncmp(ad->queue, ad->compset[i].key, ad->queue_pos + 1)) - { - ad->compset_list = eina_list_append(ad->compset_list, - &ad->compset[i]); - } - } - } -} - static void push_char(autocomp_data *ad, char c) { - ad->queue_pos++; if (ad->queue_pos == QUEUE_SIZE) { memset(ad->queue, 0x0, sizeof(ad->queue)); @@ -208,7 +234,7 @@ push_char(autocomp_data *ad, char c) } ad->queue[ad->queue_pos] = c; - compset_list_update(ad); + ad->queue_pos++; } static void @@ -220,33 +246,29 @@ pop_char(autocomp_data *ad, int cnt) for (i = 0; i < cnt; i++) { ad->queue[ad->queue_pos] = 0x0; + if (ad->queue_pos == 0) break; ad->queue_pos--; - if (ad->queue_pos < 0) break; } - - if (ad->queue_pos == -1) return; - - compset_list_update(ad); } static void insert_completed_text(autocomp_data *ad) { - if (!ad->compset_list) return; + if (!ad->lexem_ptr) return; Elm_Object_Item *it = elm_list_selected_item_get(ad->list); - comp_set *compset = elm_object_item_data_get(it); - char **txt = compset->txt; + lexem *candidate = elm_object_item_data_get(it); + char **txt = candidate->txt; Evas_Object *entry = edit_entry_get(ad->ed); int space = edit_cur_indent_depth_get(ad->ed); int cursor_pos = elm_entry_cursor_pos_get(entry); //Insert the first line. - elm_entry_entry_insert(entry, txt[0]+ (ad->queue_pos + 1)); + elm_entry_entry_insert(entry, txt[0] + (ad->queue_pos)); //Insert last lines - if (compset->line_cnt > 1) + if (candidate->txt_count > 1) { //Alloc Empty spaces char *p = alloca(space + 1); @@ -254,7 +276,7 @@ insert_completed_text(autocomp_data *ad) p[space] = '\0'; int i; - for (i = 1; i < (compset->line_cnt -1); i++) + for (i = 1; i < (candidate->txt_count - 1); i++) { elm_entry_entry_insert(entry, p); elm_entry_entry_insert(entry, txt[i]); @@ -267,9 +289,9 @@ insert_completed_text(autocomp_data *ad) redoundo_data *rd = evas_object_data_get(entry, "redoundo"); redoundo_entry_region_push(rd, cursor_pos, cursor_pos2); - cursor_pos2 -= (compset->cursor_offset + (compset->line_back * space)); + cursor_pos2 -= (candidate->cursor_offset + (candidate->line_back * space)); elm_entry_cursor_pos_set(entry, cursor_pos2); - edit_line_increase(ad->ed, (compset->line_cnt - 1)); + edit_line_increase(ad->ed, (candidate->txt_count - 1)); } static void @@ -285,20 +307,36 @@ entry_tooltip_content_cb(void *data, Evas_Object *obj EINA_UNUSED, Evas_Object *tt EINA_UNUSED) { autocomp_data *ad = data; + Eina_Bool found = EINA_FALSE; + + if (!ad->lexem_ptr) return NULL; ad->list = elm_list_add(obj); elm_object_focus_allow_set(ad->list, EINA_FALSE); elm_list_mode_set(ad->list, ELM_LIST_EXPAND); Eina_List *l; - comp_set *compset; - EINA_LIST_FOREACH(ad->compset_list, l, compset) - elm_list_item_append(ad->list, compset->key, NULL, NULL, NULL, compset); - Elm_Object_Item *it = elm_list_first_item_get(ad->list); + lexem *lexem_data; + Elm_Object_Item *it = NULL; + EINA_LIST_FOREACH(ad->lexem_ptr->nodes, l, lexem_data) + { + if (!strncmp(lexem_data->name, ad->queue, ad->queue_pos)) + { + it = elm_list_item_append(ad->list, lexem_data->name, + NULL, NULL, NULL, lexem_data); + found = EINA_TRUE; + } + } + elm_list_item_selected_set(it, EINA_TRUE); evas_object_smart_callback_add(ad->list, "unfocused", anchor_unfocused_cb, ad); evas_object_event_callback_add(ad->list, EVAS_CALLBACK_DEL, list_del_cb, ad); + if (!found) + { + entry_anchor_off(ad); + return NULL; + } elm_list_go(ad->list); evas_object_show(ad->list); @@ -308,47 +346,26 @@ entry_tooltip_content_cb(void *data, Evas_Object *obj EINA_UNUSED, static void anchor_list_update(autocomp_data *ad) { - comp_set *compset; - Eina_List *items = (Eina_List *) elm_list_items_get(ad->list); - Eina_List *l, *ll, *l2; + lexem *data; + Eina_List *l; Elm_Object_Item *it; - Eina_Bool found; - - const char *it_name; - - //Remove the non-candidates - EINA_LIST_FOREACH_SAFE(items, l, ll, it) - { - found = EINA_FALSE; - it_name = elm_object_item_text_get(it); - - EINA_LIST_FOREACH(ad->compset_list, l2, compset) - { - if (compset->key == it_name) - { - found = EINA_TRUE; - break; - } - } - - if (!found) elm_object_item_del(it); - } - - items = (Eina_List *) elm_list_items_get(ad->list); + Eina_Bool found = EINA_FALSE; + elm_list_clear(ad->list); //Append new candidates - EINA_LIST_FOREACH(ad->compset_list, l, compset) + EINA_LIST_FOREACH(ad->lexem_ptr->nodes, l, data) + { + if (!strncmp(data->name, ad->queue, ad->queue_pos)) + { + elm_list_item_append(ad->list, data->name, + NULL, NULL, NULL, data); + found = EINA_TRUE; + } + } + if (!found) { - found = EINA_FALSE; - EINA_LIST_FOREACH(items, l2, it) - { - it_name = elm_object_item_text_get(it); - if (it_name != compset->key) continue; - found = EINA_TRUE; - break; - } - if (!found) elm_list_item_append(ad->list, compset->key, NULL, - NULL, NULL, compset); + entry_anchor_off(ad); + return; } it = elm_list_first_item_get(ad->list); elm_list_item_selected_set(it, EINA_TRUE); @@ -358,7 +375,7 @@ anchor_list_update(autocomp_data *ad) static void candidate_list_show(autocomp_data *ad) { - if (!ad->compset_list) + if (!ad->lexem_ptr) { entry_anchor_off(ad); return; @@ -450,6 +467,7 @@ entry_cursor_changed_cb(void *data EINA_UNUSED, Evas_Object *obj, elm_entry_cursor_geometry_get(obj, &cx, &cy, &cw, &ch); evas_object_move(ad->anchor, cx + x, cy + y); evas_object_resize(ad->anchor, cw, ch); + context_changed(ad, edit_entry_get(ad->ed)); } static void @@ -588,7 +606,7 @@ autocomp_init(void) ad->init_thread = ecore_thread_run(init_thread_cb, init_thread_end_cb, init_thread_cancel_cb, ad); - ad->queue_pos = -1; + ad->queue_pos = 0; g_ad = ad; } @@ -599,9 +617,8 @@ autocomp_term(void) evas_object_del(ad->anchor); ecore_thread_cancel(ad->init_thread); - int i; - for (i = 0; i < COMPSET_CNT; i++) - eina_stringshare_del(ad->compset[i].key); + eet_data_descriptor_free(lex_desc); + eet_close(ad->source_file); free(ad); g_ad = NULL; diff --git a/src/lib/auto_comp_code.h b/src/lib/auto_comp_code.h deleted file mode 100644 index 2f81fac..0000000 --- a/src/lib/auto_comp_code.h +++ /dev/null @@ -1,446 +0,0 @@ -#define AUTOCOMP_COLLECTIONS_LINE_CNT 3 -const char *AUTOCOMP_COLLECTIONS[AUTOCOMP_COLLECTIONS_LINE_CNT] = -{ - "collections {
", - "
", - "}" -}; - -#define AUTOCOMP_GROUP_LINE_CNT 2 -const char *AUTOCOMP_GROUP[AUTOCOMP_GROUP_LINE_CNT] = -{ - "group { name: \"\";
", - "}" -}; - -#define AUTOCOMP_PARTS_LINE_CNT 3 -const char *AUTOCOMP_PARTS[AUTOCOMP_PARTS_LINE_CNT] = -{ - "parts {
", - "
", - "}" -}; - -#define AUTOCOMP_PART_LINE_CNT 2 -const char *AUTOCOMP_PART[AUTOCOMP_PART_LINE_CNT] = -{ - "part { name: \"\";
", - "}" -}; - -#define AUTOCOMP_DESCRIPTION_LINE_CNT 2 -const char *AUTOCOMP_DESCRIPTION[AUTOCOMP_DESCRIPTION_LINE_CNT] = -{ - "description { state: \"\" 0.0;
", - "}" -}; - -#define AUTOCOMP_IMAGES_LINE_CNT 3 -const char *AUTOCOMP_IMAGES[AUTOCOMP_IMAGES_LINE_CNT] = -{ - "images {
", - "
", - "}" -}; - -#define AUTOCOMP_IMAGE_LINE_CNT 1 -const char *AUTOCOMP_IMAGE[AUTOCOMP_IMAGE_LINE_CNT] = -{ - "image: \"\" COMP;", -}; - -#define AUTOCOMP_TYPE_LINE_CNT 1 -const char *AUTOCOMP_TYPE[AUTOCOMP_TYPE_LINE_CNT] = -{ - "type: IMAGE;", -}; - -#define AUTOCOMP_PRECISE_IS_INSIDE_LINE_CNT 1 -const char *AUTOCOMP_PRECISE_IS_INSIDE[AUTOCOMP_PRECISE_IS_INSIDE_LINE_CNT] = -{ - "precise_is_inside: ;", -}; - -#define AUTOCOMP_INHERIT_LINE_CNT 1 -const char *AUTOCOMP_INHERIT[AUTOCOMP_INHERIT_LINE_CNT] = -{ - "inherit: \"\" 0.0;", -}; - -#define AUTOCOMP_PROGRAMS_LINE_CNT 3 -const char *AUTOCOMP_PROGRAMS[AUTOCOMP_PROGRAMS_LINE_CNT] = -{ - "programs {
", - "
", - "}" -}; - -#define AUTOCOMP_PROGRAM_LINE_CNT 2 -const char *AUTOCOMP_PROGRAM[AUTOCOMP_PROGRAM_LINE_CNT] = -{ - "program { name: \"\";
", - "}" -}; - -#define AUTOCOMP_SIGNAL_LINE_CNT 1 -const char *AUTOCOMP_SIGNAL[AUTOCOMP_SIGNAL_LINE_CNT] = -{ - "signal: \"\";", -}; - -#define AUTOCOMP_SOURCE_LINE_CNT 1 -const char *AUTOCOMP_SOURCE[AUTOCOMP_SOURCE_LINE_CNT] = -{ - "source: \"\";", -}; - -#define AUTOCOMP_TARGET_LINE_CNT 1 -const char *AUTOCOMP_TARGET[AUTOCOMP_TARGET_LINE_CNT] = -{ - "target: \"\";", -}; - -#define AUTOCOMP_SCALE_LINE_CNT 1 -const char *AUTOCOMP_SCALE[AUTOCOMP_SCALE_LINE_CNT] = -{ - "scale: ;" -}; - -#define AUTOCOMP_REL1_LINE_CNT 3 -const char *AUTOCOMP_REL1[AUTOCOMP_REL1_LINE_CNT] = -{ - "rel1 {
", - "
", - "}" -}; - -#define AUTOCOMP_REL2_LINE_CNT 3 -const char *AUTOCOMP_REL2[AUTOCOMP_REL2_LINE_CNT] = -{ - "rel2 {
", - "
", - "}" -}; - -#define AUTOCOMP_RELATIVE_LINE_CNT 1 -const char *AUTOCOMP_RELATIVE[AUTOCOMP_RELATIVE_LINE_CNT] = -{ - "relative: ;", -}; - -#define AUTOCOMP_OFFSET_LINE_CNT 1 -const char *AUTOCOMP_OFFSET[AUTOCOMP_OFFSET_LINE_CNT] = -{ - "offset: ;", -}; - -#define AUTOCOMP_COLOR_LINE_CNT 1 -const char *AUTOCOMP_COLOR[AUTOCOMP_COLOR_LINE_CNT] = -{ - "color: ;", -}; - -#define AUTOCOMP_COLOR2_LINE_CNT 1 -const char *AUTOCOMP_COLOR2[AUTOCOMP_COLOR2_LINE_CNT] = -{ - "color2: ;", -}; - -#define AUTOCOMP_COLOR3_LINE_CNT 1 -const char *AUTOCOMP_COLOR3[AUTOCOMP_COLOR3_LINE_CNT] = -{ - "color3: ;", -}; - -#define AUTOCOMP_ASPECT_LINE_CNT 1 -const char *AUTOCOMP_ASPECT[AUTOCOMP_ASPECT_LINE_CNT] = -{ - "aspect: ;", -}; - -#define AUTOCOMP_ASPECT_MODE_LINE_CNT 1 -const char *AUTOCOMP_ASPECT_MODE[AUTOCOMP_ASPECT_MODE_LINE_CNT] = -{ - "aspect_mode: BOTH;", -}; - -#define AUTOCOMP_ASPECT_PREFERENCE_LINE_CNT 1 -const char *AUTOCOMP_ASPECT_PREFERENCE[AUTOCOMP_ASPECT_PREFERENCE_LINE_CNT] = -{ - "aspect_preference: BOTH;", -}; - -#define AUTOCOMP_NORMAL_LINE_CNT 1 -const char *AUTOCOMP_NORMAL[AUTOCOMP_NORMAL_LINE_CNT] = -{ - "normal: \"\";", -}; - -#define AUTOCOMP_TWEEN_LINE_CNT 1 -const char *AUTOCOMP_TWEEN[AUTOCOMP_TWEEN_LINE_CNT] = -{ - "tween: \"\";", -}; - -#define AUTOCOMP_EFFECT_LINE_CNT 1 -const char *AUTOCOMP_EFFECT[AUTOCOMP_EFFECT_LINE_CNT] = -{ - "effect: NONE;", -}; - -#define AUTOCOMP_TEXT_LINE_CNT 3 -const char *AUTOCOMP_TEXT[AUTOCOMP_TEXT_LINE_CNT] = -{ - "text {
", - "
", - "}" -}; - -#define AUTOCOMP_FONT_LINE_CNT 1 -const char *AUTOCOMP_FONT[AUTOCOMP_FONT_LINE_CNT] = -{ - "font: \"\";" -}; - -#define AUTOCOMP_ALIGN_LINE_CNT 1 -const char *AUTOCOMP_ALIGN[AUTOCOMP_ALIGN_LINE_CNT] = -{ - "align: ;" -}; - -#define AUTOCOMP_SIZE_LINE_CNT 1 -const char *AUTOCOMP_SIZE[AUTOCOMP_SIZE_LINE_CNT] = -{ - "size: ;" -}; - -#define AUTOCOMP_ACTION_LINE_CNT 1 -const char *AUTOCOMP_ACTION[AUTOCOMP_ACTION_LINE_CNT] = -{ - "action: STATE_SET \"\" 0.0;" -}; - -#define AUTOCOMP_TRANSITION_LINE_CNT 1 -const char *AUTOCOMP_TRANSITION[AUTOCOMP_TRANSITION_LINE_CNT] = -{ - "transition: LINEAR ;" -}; - -#define AUTOCOMP_AFTER_LINE_CNT 1 -const char *AUTOCOMP_AFTER[AUTOCOMP_AFTER_LINE_CNT] = -{ - "after: \"\";" -}; - -#define AUTOCOMP_STYLES_LINE_CNT 3 -const char *AUTOCOMP_STYLES[AUTOCOMP_STYLES_LINE_CNT] = -{ - "styles {
", - "
", - "}" -}; - -#define AUTOCOMP_STYLE_LINE_CNT 2 -const char *AUTOCOMP_STYLE[AUTOCOMP_STYLE_LINE_CNT] = -{ - "style { name: \"\";
", - "}" -}; - -#define AUTOCOMP_BASE_LINE_CNT 1 -const char *AUTOCOMP_BASE[AUTOCOMP_BASE_LINE_CNT] = -{ - "base: \"\";", -}; - -#define AUTOCOMP_SOUNDS_LINE_CNT 3 -const char *AUTOCOMP_SOUNDS[AUTOCOMP_SOUNDS_LINE_CNT] = -{ - "sounds {
", - "
", - "}" -}; - -#define AUTOCOMP_SAMPLE_LINE_CNT 2 -const char *AUTOCOMP_SAMPLE[AUTOCOMP_SAMPLE_LINE_CNT] = -{ - "sample { name: \"\" LOSSY 64;
", - "}" -}; - -#define AUTOCOMP_MAP_LINE_CNT 3 -const char *AUTOCOMP_MAP[AUTOCOMP_MAP_LINE_CNT] = -{ - "map {
", - "
", - "}" -}; - -#define AUTOCOMP_ROTATION_LINE_CNT 3 -const char *AUTOCOMP_ROTATION[AUTOCOMP_ROTATION_LINE_CNT] = -{ - "rotation {
", - "
", - "}" -}; - -#define AUTOCOMP_ON_LINE_CNT 1 -const char *AUTOCOMP_ON[AUTOCOMP_ON_LINE_CNT] = -{ - "on: ;", -}; - -#define AUTOCOMP_VISIBLE_LINE_CNT 1 -const char *AUTOCOMP_VISIBLE[AUTOCOMP_VISIBLE_LINE_CNT] = -{ - "visible: ;", -}; - -#define AUTOCOMP_PERSPECTIVE_ON_LINE_CNT 1 -const char *AUTOCOMP_PERSPECTIVE_ON[AUTOCOMP_PERSPECTIVE_ON_LINE_CNT] = -{ - "perspective_on: ;", -}; - -#define AUTOCOMP_PERSPECTIVE_LINE_CNT 1 -const char *AUTOCOMP_PERSPECTIVE[AUTOCOMP_PERSPECTIVE_LINE_CNT] = -{ - "perspective: \"\";", -}; - -#define AUTOCOMP_BACKFACE_CULL_LINE_CNT 1 -const char *AUTOCOMP_BACKFACE_CULL[AUTOCOMP_BACKFACE_CULL_LINE_CNT] = -{ - "backface_cull: ;", -}; - -#define AUTOCOMP_MIN_LINE_CNT 1 -const char *AUTOCOMP_MIN[AUTOCOMP_MIN_LINE_CNT] = -{ - "min: ;", -}; - -#define AUTOCOMP_MAX_LINE_CNT 1 -const char *AUTOCOMP_MAX[AUTOCOMP_MAX_LINE_CNT] = -{ - "max: ;", -}; - -#define AUTOCOMP_FIXED_LINE_CNT 1 -const char *AUTOCOMP_FIXED[AUTOCOMP_FIXED_LINE_CNT] = -{ - "fixed: ;", -}; - -#define AUTOCOMP_CLIP_TO_LINE_CNT 1 -const char *AUTOCOMP_CLIP_TO[AUTOCOMP_CLIP_TO_LINE_CNT] = -{ - "clip_to: \"\";", -}; - -#define AUTOCOMP_BASE_SCALE_LINE_CNT 1 -const char *AUTOCOMP_BASE_SCALE[AUTOCOMP_BASE_SCALE_LINE_CNT] = -{ - "base_scale: ;", -}; - -#define AUTOCOMP_SET_LINE_CNT 2 -const char *AUTOCOMP_SET[AUTOCOMP_SET_LINE_CNT] = -{ - "set { name: \"\";
", - "}" -}; - -#define AUTOCOMP_BOX_LINE_CNT 3 -const char *AUTOCOMP_BOX[AUTOCOMP_BOX_LINE_CNT] = -{ - "box {
", - "
", - "}" -}; - -#define AUTOCOMP_TABLE_LINE_CNT 3 -const char *AUTOCOMP_TABLE[AUTOCOMP_TABLE_LINE_CNT] = -{ - "table {
", - "
", - "}" -}; - -#define AUTOCOMP_ITEM_LINE_CNT 3 -const char *AUTOCOMP_ITEM[AUTOCOMP_ITEM_LINE_CNT] = -{ - "item {
", - "
", - "}" -}; - -#define AUTOCOMP_ITEMS_LINE_CNT 3 -const char *AUTOCOMP_ITEMS[AUTOCOMP_ITEMS_LINE_CNT] = -{ - "items {
", - "
", - "}" -}; - -#define AUTOCOMP_LAYOUT_LINE_CNT 1 -const char *AUTOCOMP_LAYOUT[AUTOCOMP_LAYOUT_LINE_CNT] = -{ - "layout: \"\";", -}; - -#define AUTOCOMP_PADDING_LINE_CNT 1 -const char *AUTOCOMP_PADDING[AUTOCOMP_PADDING_LINE_CNT] = -{ - "padding: ;", -}; - -#define AUTOCOMP_POSITION_LINE_CNT 1 -const char *AUTOCOMP_POSITION[AUTOCOMP_POSITION_LINE_CNT] = -{ - "position: ;", -}; - -#define AUTOCOMP_PREFER_LINE_CNT 1 -const char *AUTOCOMP_PREFER[AUTOCOMP_PREFER_LINE_CNT] = -{ - "prefer: ;", -}; - -#define AUTOCOMP_SMOOTH_LINE_CNT 1 -const char *AUTOCOMP_SMOOTH[AUTOCOMP_SMOOTH_LINE_CNT] = -{ - "smooth: ;", -}; - -#define AUTOCOMP_SPAN_LINE_CNT 1 -const char *AUTOCOMP_SPAN[AUTOCOMP_SPAN_LINE_CNT] = -{ - "span: ;", -}; - -#define AUTOCOMP_SPREAD_LINE_CNT 1 -const char *AUTOCOMP_SPREAD[AUTOCOMP_SPREAD_LINE_CNT] = -{ - "spread: ;", -}; - -#define AUTOCOMP_WEIGHT_LINE_CNT 1 -const char *AUTOCOMP_WEIGHT[AUTOCOMP_WEIGHT_LINE_CNT] = -{ - "weight: ;", -}; - -#define AUTOCOMP_ELLIPSIS_LINE_CNT 1 -const char *AUTOCOMP_ELLIPSIS[AUTOCOMP_ELLIPSIS_LINE_CNT] = -{ - "ellipsis: ;", -}; - -#define AUTOCOMP_ANTI_ALIAS_LINE_CNT 1 -const char *AUTOCOMP_ANTI_ALIAS[AUTOCOMP_ANTI_ALIAS_LINE_CNT] = -{ - "anti_alias: ;", -}; - -#define COMPSET_CNT 68