14
0
forked from pool/python-textX

- update to version 1.7.0:

- A major feature of this release is multi-(meta-)model support with
    configurable resolving techniques. Thanks Pierre Bayerl (goto40@GitHub)!
    The docs sections are [here](http://www.igordejanovic.net/textX/scoping/)
    and [here](http://www.igordejanovic.net/textX/multimetamodel/).
    Details follow:
    - added new function textx.get_model.children to search arbritrary children
      using a lambda predicate.
    - remapped textx.model.get_children_of_type to the new children function
    (changed the logic, such that the root node is also checked to be model
    object).
    - added new metamodel function to register scope providers. Scope providers
    are callables, which return the referenced object.
    - added optional attribute "_tx_model_repository", see metamodel.py
      documentation
    - added attribute "scope_provider" like "obj_processors" to organize scope
      providers
    - added an optional argument to model_from_str and model_from_file:
      "pre_ref_resolution_callback": this is required internally to prepare the
      loading of other model files.
    - changed reference resolution in model.py
      - moved default resolution to textx.scoping.py
      - select the scope provider based on rule and rule-attribute (see
        scoping.py documentation)
      - added a Postponed type to postpone the resolution
      - introduced a multi-pass resolution (implemented at the end of
        parse_tree_to_objgraph; introduced new helper argument, e.g., a new
        optional argument "is_this_the_main_model" and
        "pre_ref_resolution_callback" (see metamodel.py above) to support
        reference resolution in the presence of different model files.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-textX?expand=0&rev=6
This commit is contained in:
Sebastian Wagner
2018-07-07 09:18:41 +00:00
committed by Git OBS Bridge
parent f9f60a148f
commit aadbacf0ff
4 changed files with 75 additions and 4 deletions

View File

@@ -1,3 +1,74 @@
-------------------------------------------------------------------
Fri Jul 6 20:48:57 UTC 2018 - sebix+novell.com@sebix.at
- update to version 1.7.0:
- A major feature of this release is multi-(meta-)model support with
configurable resolving techniques. Thanks Pierre Bayerl (goto40@GitHub)!
The docs sections are [here](http://www.igordejanovic.net/textX/scoping/)
and [here](http://www.igordejanovic.net/textX/multimetamodel/).
Details follow:
- added new function textx.get_model.children to search arbritrary children
using a lambda predicate.
- remapped textx.model.get_children_of_type to the new children function
(changed the logic, such that the root node is also checked to be model
object).
- added new metamodel function to register scope providers. Scope providers
are callables, which return the referenced object.
- added optional attribute "_tx_model_repository", see metamodel.py
documentation
- added attribute "scope_provider" like "obj_processors" to organize scope
providers
- added an optional argument to model_from_str and model_from_file:
"pre_ref_resolution_callback": this is required internally to prepare the
loading of other model files.
- changed reference resolution in model.py
- moved default resolution to textx.scoping.py
- select the scope provider based on rule and rule-attribute (see
scoping.py documentation)
- added a Postponed type to postpone the resolution
- introduced a multi-pass resolution (implemented at the end of
parse_tree_to_objgraph; introduced new helper argument, e.g., a new
optional argument "is_this_the_main_model" and
"pre_ref_resolution_callback" (see metamodel.py above) to support
reference resolution in the presence of different model files.
- added a new module textx.scoping, to provide some scope providers (e.g. a
fully qualified name provider) - see scoping.py:
- full qualified names for reference names (e.g. package.package.class)
- global scope (model distributed over different files - loaded globally)
- import scope (model distributed over different files - loaded when
imported)
- relative scopes (e.g. instance.method where method is defined for the
class of the instance in a model of classes, methods and instances)
- selecting the metamodel based on a file pattern when loading models
- added tests (mostly scope related - some of them also test other stuff,
like buildins)
- exceptions where adapted to include a file name (makes errors more
visible)
- The metamodel now allows to specify a global model repository. With this
you can now share models across metamodels (before you could only do this
within one metamodel or language).
- The metamodel clones the parser when parsing a model file. The meta model
holds one parser, which is clone for every model to be parsed.
- TextXModelParser now has a clone method.
(TBC: is the clone ok: see responsibility of the method)
- model.py: the resolution loop logic now mostly moved to a separate object
ReferenceResolver, which holds the parser.
- The reference resolver are build from all model files affected (loaded).
This may involve multiple meta models.
- Then all references are resolved in one loop.
- Finally the helper objects (ReferenceResolver) are purged.
- The MetaModelProvider has a clear-method now (useful for tests).
- Backward incompatible change: match filters and object processors unified.
Now there are only object processors but they are called for any type of
rule and the returned value if exists is used instead of the original
object. See [the
docs](http://www.igordejanovic.net/textX/metamodel/#object-processors). In
order to migrate your match filters just register them as object processors.
- Fixing FLOAT regex. Thanks Boris Marin (borismarin@GitHub)!
- Fixing position info on obj cross ref. Thanks Daniel Elero (danixeee@GitHub)!
-------------------------------------------------------------------
Sun Feb 18 18:52:02 UTC 2018 - jengelh@inai.de

View File

@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%bcond_without test
Name: python-textX
Version: 1.6.1
Version: 1.7.0
Release: 0
Summary: Meta-language for DSL implementation inspired by Xtext
License: MIT

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:661fff2adf7633ce7eff2893c225eee5c66f07d13912164930029aab65bb504a
size 1579214

3
v1.7.0.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:827f1e65a2c000d18822e58f92f9cb3bdfaabe82e63fff52d118ee5ed4630a7b
size 1612306