From ae7c4eeb888ec22e71e4226ccc00acce966b14a5 Mon Sep 17 00:00:00 2001 From: Alban Linard Date: Thu, 28 Jan 2016 11:14:48 +0100 Subject: [PATCH] Fix #2. --- src/formalisms/alphabet.lua | 16 ++-- src/formalisms/automaton.lua | 46 +++++------ src/formalisms/collection.lua | 10 +-- src/formalisms/directed_hyper_multi_graph.lua | 8 +- src/formalisms/hyper_graph.lua | 6 +- src/formalisms/hyper_multi_graph.lua | 48 ++++++------ src/formalisms/interrupt_timed_automaton.lua | 78 +++++++++---------- .../labelled_edges_hyper_multi_graph.lua | 6 +- .../labelled_vertices_hyper_multi_graph.lua | 6 +- src/formalisms/multi_graph.lua | 6 +- src/formalisms/polynomial.lua | 38 ++++----- src/formalisms/record.lua | 8 +- test/formalisms/test_alphabet.lua | 4 +- test/formalisms/test_automaton.lua | 4 +- .../test_directed_hyper_multi_graph.lua | 4 +- test/formalisms/test_hyper_multi_graph.lua | 4 +- .../test_interrupt_timed_automaton.lua | 4 +- .../test_labelled_edges_hyper_multi_graph.lua | 4 +- ...st_labelled_vertices_hyper_multi_graph.lua | 4 +- test/formalisms/test_polynomial.lua | 4 +- 20 files changed, 154 insertions(+), 154 deletions(-) diff --git a/src/formalisms/alphabet.lua b/src/formalisms/alphabet.lua index 0b6dfad..ac73570 100644 --- a/src/formalisms/alphabet.lua +++ b/src/formalisms/alphabet.lua @@ -12,22 +12,22 @@ local _ = Layer.reference "alphabet" -- -- An alphabet is a set of symbols. -layer.__labels__ = { alphabet = true } +layer[Layer.key.labels] = { alphabet = true } -layer.__meta__ = { +layer[Layer.key.meta] = { symbol_type = {}, } layer.symbols = { - __refines__ = { + [Layer.key.refines] = { collection, }, - __meta__ = { - __value_type__ = _.__meta__.symbol_type, + [Layer.key.meta] = { + __value_type__ = _ [Layer.key.meta].symbol_type, }, - __default__ = { - __refines__ = { - _.__meta__.symbol_type, + [Layer.key.default] = { + [Layer.key.refines] = { + _ [Layer.key.meta].symbol_type, }, } } diff --git a/src/formalisms/automaton.lua b/src/formalisms/automaton.lua index 199703a..51ab0d9 100644 --- a/src/formalisms/automaton.lua +++ b/src/formalisms/automaton.lua @@ -28,7 +28,7 @@ local _ = Layer.reference "automaton" -- -- For more information of automaton see [here](http://www.cs.odu.edu/~toida/nerzic/390teched/regular/fa/nfa-definitions.html) -layer.__refines__ = { +layer[Layer.key.refines] = { labelled_edges_hyper_multi_graph, labelled_vertices_hyper_multi_graph, directed_hyper_multi_graph, @@ -36,20 +36,20 @@ layer.__refines__ = { alphabet, } -layer.__labels__ = { automaton = true } +layer[Layer.key.labels] = { automaton = true } -layer.__meta__ = { +layer[Layer.key.meta] = { edge_type = { __tags__ = { letter = { - __value_type__ = _.__meta__.symbol_type, + __value_type__ = _ [Layer.key.meta].symbol_type, __value_container__ = _.symbols, }, }, }, vertex_type = { - __meta__ = { + [Layer.key.meta] = { __tags__ = { id = {}, }, @@ -57,13 +57,13 @@ layer.__meta__ = { }, initial_state_type = { - __refines__ = { + [Layer.key.refines] = { record, }, - __meta__ = { + [Layer.key.meta] = { tags = { vertex = { - __value_type__ = _.__meta__.vertex_type, + __value_type__ = _ [Layer.key.meta].vertex_type, __value_container__ = _.vertices, }, }, @@ -71,13 +71,13 @@ layer.__meta__ = { }, accept_state_type = { - __refines__ = { + [Layer.key.refines] = { record, }, - __meta__ = { + [Layer.key.meta] = { tags = { vertex = { - __value_type__ = _.__meta__.vertex_type, + __value_type__ = _ [Layer.key.meta].vertex_type, __value_container__ = _.vertices, }, }, @@ -86,29 +86,29 @@ layer.__meta__ = { } layer.initials_states = { - __refines__ = { + [Layer.key.refines] = { collection, }, - __meta__ = { - __value_type__ = _.__meta__.initial_state_type, + [Layer.key.meta] = { + __value_type__ = _ [Layer.key.meta].initial_state_type, }, - __default__ = { - __refines__ = { - _.__meta__.initial_state_type, + [Layer.key.default] = { + [Layer.key.refines] = { + _ [Layer.key.meta].initial_state_type, }, }, } layer.accept_states = { - __refines__ = { + [Layer.key.refines] = { collection, }, - __meta__ = { - __value_type__ = _.__meta__.accept_state_type, + [Layer.key.meta] = { + __value_type__ = _ [Layer.key.meta].accept_state_type, }, - __default__ = { - __refines__ = { - _.__meta__.accept_state_type, + [Layer.key.default] = { + [Layer.key.refines] = { + _ [Layer.key.meta].accept_state_type, }, }, } diff --git a/src/formalisms/collection.lua b/src/formalisms/collection.lua index 9c5ee0e..ce33047 100644 --- a/src/formalisms/collection.lua +++ b/src/formalisms/collection.lua @@ -14,17 +14,17 @@ local layer = Layer.new { -- * `value_type` : type of values -- * `value_container` : all values must reference an element of this container -layer.__meta__ = { +layer[Layer.key.meta] = { key_type = nil, key_container = nil, value_type = nil, value_container = nil, } -layer.__checks__ = { +layer[Layer.key.checks] = { check_collection = function (proxy) - local meta = proxy.__meta__ + local meta = proxy[Layer.key.meta] do local exist = false for _ in Layer.pairs(meta) do @@ -62,7 +62,7 @@ layer.__checks__ = { message = message .. tostring(key) .. " value : incompatible types. Waiting " .. tostring(meta["value_type"]) .. ", found " .. type(value) .. ". " else local exist = false - for _, ref in Layer.ipairs(value.__refines__) do + for _, ref in Layer.ipairs(value[Layer.key.refines]) do print(ref) if ref == meta["value_type"] then exist = true @@ -101,7 +101,7 @@ layer.__checks__ = { message = message .. "key " .. tostring(key) .. " : incompatible types. Waiting " .. tostring(meta["key_type"]) .. ", found " .. type(key) .. ". " else local exist = false - for _, ref in Layer.ipairs(key.__refines__) do + for _, ref in Layer.ipairs(key[Layer.key.refines]) do if ref == meta["key_type"] then exist = true break diff --git a/src/formalisms/directed_hyper_multi_graph.lua b/src/formalisms/directed_hyper_multi_graph.lua index 7bdba2d..a5c934e 100644 --- a/src/formalisms/directed_hyper_multi_graph.lua +++ b/src/formalisms/directed_hyper_multi_graph.lua @@ -11,15 +11,15 @@ local layer = Layer.new { -- -- A definition of Directed Hyper Graph is given [here](http://link.springer.com/chapter/10.1007/3-540-45446-2_20) -layer.__refines__ = { +layer[Layer.key.refines] = { hyper_multi_graph } -layer.__meta__ = { +layer[Layer.key.meta] = { edge_type = { - __meta__ = { + [Layer.key.meta] = { arrow_type = { - __meta__ = { + [Layer.key.meta] = { __tags__ = { input = { __value_type__ = "boolean", diff --git a/src/formalisms/hyper_graph.lua b/src/formalisms/hyper_graph.lua index b65a63e..f1acde7 100644 --- a/src/formalisms/hyper_graph.lua +++ b/src/formalisms/hyper_graph.lua @@ -15,13 +15,13 @@ local layer = Layer.new { -- -- For more information see [here](https://en.wikipedia.org/wiki/Hypergraph) -layer.__refines__ = { +layer[Layer.key.refines] = { hyper_multi_graph } -layer.__meta__ = { +layer[Layer.key.meta] = { edges = { - __checks__ = { + [Layer.key.checks] = { function () -- TODO -- check identical edges diff --git a/src/formalisms/hyper_multi_graph.lua b/src/formalisms/hyper_multi_graph.lua index 34ecd07..1085749 100644 --- a/src/formalisms/hyper_multi_graph.lua +++ b/src/formalisms/hyper_multi_graph.lua @@ -15,22 +15,22 @@ local _ = Layer.reference "HMGT" -- -- For more information of Hyper and Multi Graph, see [here](https://en.wikipedia.org/?title=Hypergraph) -layer.__labels__ = { HMGT = true } +layer[Layer.key.labels] = { HMGT = true } -layer.__meta__ = { +layer[Layer.key.meta] = { vertex_type = {}, edge_type = { - __meta__ = { + [Layer.key.meta] = { arrow_type = { - __refines__ = { + [Layer.key.refines] = { record, }, - __meta__ = { + [Layer.key.meta] = { tags = { vertex = { - value_type = _.__meta__.vertex_type, + value_type = _ [Layer.key.meta].vertex_type, value_container = _.vertices, }, }, @@ -38,15 +38,15 @@ layer.__meta__ = { }, }, arrows = { - __refines__ = { + [Layer.key.refines] = { collection, }, - __meta__ = { - value_type = _.__meta__.edge_type.__meta__.arrow_type, + [Layer.key.meta] = { + value_type = _ [Layer.key.meta].edge_type[Layer.key.meta].arrow_type, }, - __default__ = { - __refines__ = { - _.__meta__.edge_type.__meta__.arrow_type, + [Layer.key.default] = { + [Layer.key.refines] = { + _ [Layer.key.meta].edge_type[Layer.key.meta].arrow_type, }, }, }, @@ -54,29 +54,29 @@ layer.__meta__ = { } layer.vertices = { - __refines__ = { + [Layer.key.refines] = { collection, }, - __meta__ = { - value_type = _.__meta__.vertex_type, + [Layer.key.meta] = { + value_type = _ [Layer.key.meta].vertex_type, }, - __default__ = { - __refines__ = { - _.__meta__.vertex_type, + [Layer.key.default] = { + [Layer.key.refines] = { + _ [Layer.key.meta].vertex_type, }, }, } layer.edges = { - __refines__ = { + [Layer.key.refines] = { collection, }, - __meta__ = { - value_type = _.__meta__.edge_type, + [Layer.key.meta] = { + value_type = _ [Layer.key.meta].edge_type, }, - __default__ = { - __refines__ = { - _.__meta__.edge_type, + [Layer.key.default] = { + [Layer.key.refines] = { + _ [Layer.key.meta].edge_type, } }, } diff --git a/src/formalisms/interrupt_timed_automaton.lua b/src/formalisms/interrupt_timed_automaton.lua index 79d5887..4b71e16 100644 --- a/src/formalisms/interrupt_timed_automaton.lua +++ b/src/formalisms/interrupt_timed_automaton.lua @@ -28,21 +28,21 @@ local root = Layer.reference (false) --For more information of Interrupt timed automaton see [here](http://arxiv.org/abs/1504.04541) -layer.__refines__ = { +layer[Layer.key.refines] = { automaton, } -layer.__labels__ = { ITA = true } +layer[Layer.key.labels] = { ITA = true } -layer.__meta__ = { +layer[Layer.key.meta] = { analog_type = { - __refines__ = { + [Layer.key.refines] = { record, }, - __meta__ = { + [Layer.key.meta] = { __tags__ = { active_level = { - __value_type__ = _.__meta__.level_type, + __value_type__ = _ [Layer.key.meta].level_type, __value_container__ = _.levels, }, }, @@ -52,10 +52,10 @@ layer.__meta__ = { level_type = {}, guard_type = { - __refines__ = { + [Layer.key.refines] = { record, }, - __meta__ = { + [Layer.key.meta] = { __tags__ = { comparison = { __value_type__ = "string", @@ -64,50 +64,50 @@ layer.__meta__ = { }, }, polynomial = { - __refines__ = { + [Layer.key.refines] = { collection, }, - __meta__ = { - __value_type__ = _.__meta__.polynomial_type, + [Layer.key.meta] = { + __value_type__ = _ [Layer.key.meta].polynomial_type, }, - __default__ = { - __refines__ = { - _.__meta__.polynomial_type, + [Layer.key.default] = { + [Layer.key.refines] = { + _ [Layer.key.meta].polynomial_type, }, }, }, }, update_type = { - __refines__ = { + [Layer.key.refines] = { collection, }, - __meta__ = { - __value_type__ = _.__meta__.polynomial_type, - __key_type__ = _.__meta__.analog_type, + [Layer.key.meta] = { + __value_type__ = _ [Layer.key.meta].polynomial_type, + __key_type__ = _ [Layer.key.meta].analog_type, __key_container__ = _.analogs, }, }, edge_type = { update = { - __refines__ = { - _.__meta__.update_type, + [Layer.key.refines] = { + _ [Layer.key.meta].update_type, }, }, guard = { - __refines__ = { - _.__meta__.guard_type + [Layer.key.refines] = { + _ [Layer.key.meta].guard_type }, }, }, vertex_type = { - __meta__ = { + [Layer.key.meta] = { __tags__ = { level = { - __value_type__ = _.__meta__.level_type, + __value_type__ = _ [Layer.key.meta].level_type, __value_container__ = _.levels, }, }, @@ -116,13 +116,13 @@ layer.__meta__ = { initial_state_type = { analogs_init = { - __refines__ = { + [Layer.key.refines] = { collection, }, - __meta__ = { + [Layer.key.meta] = { __value_type__ = "number", - __key_type__ = _.__meta__.analog_type, + __key_type__ = _ [Layer.key.meta].analog_type, __key_container__ = _.analogs, }, }, @@ -130,29 +130,29 @@ layer.__meta__ = { } layer.analogs = { - __refines__ = { + [Layer.key.refines] = { collection, }, - __meta__ = { - __value_type__ = _.__meta__.analog_type, + [Layer.key.meta] = { + __value_type__ = _ [Layer.key.meta].analog_type, }, - __default__ = { - __refines__ = { - _.__meta__.analog_type, + [Layer.key.default] = { + [Layer.key.refines] = { + _ [Layer.key.meta].analog_type, }, }, } layer.levels = { - __refines__ = { + [Layer.key.refines] = { collection, }, - __meta__ = { - __value_type__ = _.__meta__.level_type, + [Layer.key.meta] = { + __value_type__ = _ [Layer.key.meta].level_type, }, - __default__ = { - __refines__ = { - _.__meta__.level_type, + [Layer.key.default] = { + [Layer.key.refines] = { + _ [Layer.key.meta].level_type, }, }, } diff --git a/src/formalisms/labelled_edges_hyper_multi_graph.lua b/src/formalisms/labelled_edges_hyper_multi_graph.lua index 551994f..48cb1c0 100644 --- a/src/formalisms/labelled_edges_hyper_multi_graph.lua +++ b/src/formalisms/labelled_edges_hyper_multi_graph.lua @@ -12,13 +12,13 @@ local layer = Layer.new { -- -- We only add in this formalism labels on edges. -layer.__refines__ = { +layer[Layer.key.refines] = { hyper_multi_graph } -layer.__meta__ = { +layer[Layer.key.meta] = { edge_type = { - __refines__ = { + [Layer.key.refines] = { record }, }, diff --git a/src/formalisms/labelled_vertices_hyper_multi_graph.lua b/src/formalisms/labelled_vertices_hyper_multi_graph.lua index 07a838f..e06f87d 100644 --- a/src/formalisms/labelled_vertices_hyper_multi_graph.lua +++ b/src/formalisms/labelled_vertices_hyper_multi_graph.lua @@ -12,13 +12,13 @@ local layer = Layer.new { -- -- We only add in this formalism labels on vertices. -layer.__refines__ = { +layer[Layer.key.refines] = { hyper_multi_graph } -layer.__meta__ = { +layer[Layer.key.meta] = { vertex_type = { - __refines__ = { + [Layer.key.refines] = { record, }, }, diff --git a/src/formalisms/multi_graph.lua b/src/formalisms/multi_graph.lua index 9f2374f..5e15a92 100644 --- a/src/formalisms/multi_graph.lua +++ b/src/formalisms/multi_graph.lua @@ -17,14 +17,14 @@ local layer = Layer.new { -- -- For more information see [here](https://en.wikipedia.org/wiki/Multigraph) -layer.__refines__ = { +layer[Layer.key.refines] = { hyper_multi_graph } -layer.__meta__ = { +layer[Layer.key.meta] = { edge_type = { arrows = { - __checks__ = { + [Layer.key.checks] = { function () -- TODO -- check arity (size of arrows must equals 2) diff --git a/src/formalisms/polynomial.lua b/src/formalisms/polynomial.lua index 43b8a59..9d0a0f7 100644 --- a/src/formalisms/polynomial.lua +++ b/src/formalisms/polynomial.lua @@ -6,27 +6,27 @@ local layer = Layer.new { } local _ = Layer.reference "polynomial" -layer.__labels__ = { polynomial = true } +layer[Layer.key.labels] = { polynomial = true } -layer.__meta__ = { +layer[Layer.key.meta] = { variable_type = {}, monomial_type = { - __refines__ = { + [Layer.key.refines] = { record }, - __meta__ = { + [Layer.key.meta] = { __tags__ = { coefficient = { __value_type__ = "number", }, }, exponents = { - __refines__ = { + [Layer.key.refines] = { collection, }, - __meta__ = { - __key_type__ = _.__meta__.variable_type, + [Layer.key.meta] = { + __key_type__ = _ [Layer.key.meta].variable_type, __key_container__ = _.variables, __value_type__ = "number", }, @@ -36,29 +36,29 @@ layer.__meta__ = { } layer.variables = { - __refines__ = { + [Layer.key.refines] = { collection, }, - __meta__ = { - __value_type__ = _.__meta__.variable_type, + [Layer.key.meta] = { + __value_type__ = _ [Layer.key.meta].variable_type, }, - __default__ = { - __refines__ = { - _.__meta__.variable_type, + [Layer.key.default] = { + [Layer.key.refines] = { + _ [Layer.key.meta].variable_type, }, }, } layer.monomials = { - __refines__ = { + [Layer.key.refines] = { collection, }, - __meta__ = { - __value_type__ = _.__meta__.monomial_type, + [Layer.key.meta] = { + __value_type__ = _ [Layer.key.meta].monomial_type, }, - __default__ = { - __refines__ = { - _.__meta__.monomial_type, + [Layer.key.default] = { + [Layer.key.refines] = { + _ [Layer.key.meta].monomial_type, }, }, } diff --git a/src/formalisms/record.lua b/src/formalisms/record.lua index 4dccba8..2d52c91 100644 --- a/src/formalisms/record.lua +++ b/src/formalisms/record.lua @@ -9,7 +9,7 @@ local layer = Layer.new { -- a record is a table where some keys are obligated. -- To do that we introduce the special key `tags`. -layer.__meta__ = { +layer[Layer.key.meta] = { tags = { -- If you want a key `name` in your record you wrote this : -- name = { @@ -20,10 +20,10 @@ layer.__meta__ = { }, } -layer.__checks__ = { +layer[Layer.key.checks] = { check_tags = function (proxy) local message = "" - local tags = proxy.__meta__.tags + local tags = proxy[Layer.key.meta].tags for tag, value in Layer.pairs(tags) do if value["value_type"] ~= nil or value["value_container"] ~= nil then if proxy[tag] == nil then @@ -53,7 +53,7 @@ layer.__checks__ = { message = message .. tostring(tag) .. " value : incompatible types. Waiting " .. tostring(value["value_type"]) .. ", found " .. type(proxy[tag]) .. ". " else local exist = false - for _, ref in Layer.ipairs(proxy[tag].__refines__) do + for _, ref in Layer.ipairs(proxy[tag][Layer.key.refines]) do if ref == value["value_type"] then exist = true break diff --git a/test/formalisms/test_alphabet.lua b/test/formalisms/test_alphabet.lua index c281984..6656cf5 100644 --- a/test/formalisms/test_alphabet.lua +++ b/test/formalisms/test_alphabet.lua @@ -13,8 +13,8 @@ layer.__depends__ = { layer.model = { __label__ = "alphabet_model", - __refines__ = { - root.__meta__.alphabet_type, + [Layer.key.refines] = { + root[Layer.key.meta].alphabet_type, }, symbols = { diff --git a/test/formalisms/test_automaton.lua b/test/formalisms/test_automaton.lua index d256e13..6275003 100644 --- a/test/formalisms/test_automaton.lua +++ b/test/formalisms/test_automaton.lua @@ -14,8 +14,8 @@ layer.__depends__ = { layer.model = { __label__ = "automaton_model", - __refines__ = { - root.__meta__.automaton_type, + [Layer.key.refines] = { + root[Layer.key.meta].automaton_type, }, symbols = { diff --git a/test/formalisms/test_directed_hyper_multi_graph.lua b/test/formalisms/test_directed_hyper_multi_graph.lua index 5c646e7..ab02643 100644 --- a/test/formalisms/test_directed_hyper_multi_graph.lua +++ b/test/formalisms/test_directed_hyper_multi_graph.lua @@ -11,8 +11,8 @@ layer.__depends__ = { } layer.model = { - __refines__ = { - root.__meta__.directed_hyper_multi_graph_type, + [Layer.key.refines] = { + root[Layer.key.meta].directed_hyper_multi_graph_type, }, __label__ = "DHMGT_model", diff --git a/test/formalisms/test_hyper_multi_graph.lua b/test/formalisms/test_hyper_multi_graph.lua index f0b1674..8c47fcb 100644 --- a/test/formalisms/test_hyper_multi_graph.lua +++ b/test/formalisms/test_hyper_multi_graph.lua @@ -5,11 +5,11 @@ local layer = Layer.new { } local _ = Layer.reference "HMGT_model" -layer.__refines__ = { +layer[Layer.key.refines] = { hyper_multi_graph, } -layer.__labels__ = { HMGT_model = true } +layer[Layer.key.labels] = { HMGT_model = true } layer.vertices = { n1 = {}, diff --git a/test/formalisms/test_interrupt_timed_automaton.lua b/test/formalisms/test_interrupt_timed_automaton.lua index d8202ad..73d4f3f 100644 --- a/test/formalisms/test_interrupt_timed_automaton.lua +++ b/test/formalisms/test_interrupt_timed_automaton.lua @@ -13,8 +13,8 @@ layer.__depends__ = { layer.model = { __label__ = "ITA_model", - __refines__ = { - root.__meta__.interrupt_timed_automaton_type, + [Layer.key.refines] = { + root[Layer.key.meta].interrupt_timed_automaton_type, }, symbols = { diff --git a/test/formalisms/test_labelled_edges_hyper_multi_graph.lua b/test/formalisms/test_labelled_edges_hyper_multi_graph.lua index ad7ae13..7f4374c 100644 --- a/test/formalisms/test_labelled_edges_hyper_multi_graph.lua +++ b/test/formalisms/test_labelled_edges_hyper_multi_graph.lua @@ -13,8 +13,8 @@ layer.__depends__ = { layer.model = { __label__ = "LEHMGT_model", - __refines__ = { - root.__meta__.labelled_edges_hyper_multi_graph_type, + [Layer.key.refines] = { + root[Layer.key.meta].labelled_edges_hyper_multi_graph_type, }, vertices = { diff --git a/test/formalisms/test_labelled_vertices_hyper_multi_graph.lua b/test/formalisms/test_labelled_vertices_hyper_multi_graph.lua index 1bc67c4..fca4233 100644 --- a/test/formalisms/test_labelled_vertices_hyper_multi_graph.lua +++ b/test/formalisms/test_labelled_vertices_hyper_multi_graph.lua @@ -13,8 +13,8 @@ layer.__depends__ = { layer.model = { __label__ = "LVHMGT_model", - __refines__ = { - root.__meta__.labelled_vertices_hyper_multi_graph_type, + [Layer.key.refines] = { + root[Layer.key.meta].labelled_vertices_hyper_multi_graph_type, }, vertices = { diff --git a/test/formalisms/test_polynomial.lua b/test/formalisms/test_polynomial.lua index d486bdd..7b3a581 100644 --- a/test/formalisms/test_polynomial.lua +++ b/test/formalisms/test_polynomial.lua @@ -13,8 +13,8 @@ layer.__depends__ = { layer.model = { __label__ = "polynomial_model", - __refines__ = { - root.__meta__.polynomial_type, + [Layer.key.refines] = { + root[Layer.key.meta].polynomial_type, }, variables = {