Commit fe54168d authored by René Schöne's avatar René Schöne
Browse files

Merge branch 'master' into develop

parents d0113c6b 2dffc2f1
Pipeline #8214 passed with stages
in 4 minutes and 11 seconds
- build
- test
- deploy
- export GRADLE_USER_HOME=`pwd`/.gradle
......@@ -24,3 +25,16 @@ test:
stage: test
- ./gradlew --console=plain --no-daemon --info test
image: python:3.7-alpine
stage: deploy
- pip install -U sphinx sphinx-rtd-theme recommonmark sphinxemoji sphinx-markdown-tables
- sphinx-build -b html pages/ public
- public
- master
Supported command-line options
--ast print AST (ignores quiet option)
--file write output to files <filename>Gen.ast and <filename>Gen.jadd
--grammarName name of the generated grammar and aspect (without file extension)
--jastAddList set the name of the List type in JastAdd (has to match the option '--List' or its default List)
--listClass determine the class name of the nonterminal reference list
--quiet do not output anything on stdout
--resolverHelper create a subtype for each type containing a string that can be used to resolve the type later
--serializer generate a (de-)serializer (allowed values: jackson, jackson-json-pointer, jackson-manual-references)
--useJastAddNames generate names in the form of addX, removeX and setX. If omitted, the default, original naming scheme resulting in addToX, removeFromX and setX will be used.
--version print version and exit
# Minimal makefile for Sphinx documentation
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXBUILD ?= sphinx-build
BUILDDIR = _build
# Put it first so that "make" without argument is like "make help".
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
Supported relations
.. code:: Java
// Directed relations
A.b -> B;
A.b? -> B;* -> B;
B <- A.b ;
B <- A.b? ;
B <-*;
// Bidirectional relations
A.b <-> B.a;
A.b <-> B.a?;
A.b <->*;
A.b? <-> B.a;
A.b? <-> B.a?;
A.b? <->*;* <-> B.a;* <-> B.a?;* <->*;
Using Relational RAGs
The Relational RAGs preprocessor takes a ``.relast`` file as input comprising AST rules and relations. It produces files that afterwards are processed by JastAdd_ to generated Java code.
To use it in your project, build the JAR file running
.. code:: Bash
./gradlew jar
This will produce ``build/libs/relast.jar``. Copy it to your project and extend your build config (preferably Gradle_) with the following:
.. code:: Groovy
task preprocess(type: JavaExec) {
group = 'Build'
main = "-jar"
args = [
inputs.files file("./src/main/jastadd/main.relast")
outputs.files file("./src/main/jastadd/mainGen.ast"), file("./src/main/jastadd/mainGen.jadd")
Note that you may have to change
- the directory of ``relast.jar``
- the ``.relast`` file(s) both as argument(s) and input file(s)
- the output files
- parameters of RelAST (in this case, the list classes were renamed), the following table shows the supported ones
.. _JastAdd:
.. _Gradle:
# Configuration file for the Sphinx documentation builder.
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
# -- Project information -----------------------------------------------------
project = 'Relational RAGs'
copyright = '2020, Johannes Mey, René Schöne, Görel Hedin, Emma Söderberg, Thomas Kühn, Niklas Fors, Jesper Öqvist, Uwe Aßmann'
author = 'Johannes Mey, René Schöne, Görel Hedin, Emma Söderberg, Thomas Kühn, Niklas Fors, Jesper Öqvist, Uwe Aßmann'
# The full version, including alpha/beta/rc tags
release = '0.3.0'
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
html_theme = 'sphinx_rtd_theme'
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
sphinxemoji_style = 'twemoji'
html_theme_options = {
'navigation_depth': 4,
.. Relational RAGs documentation master file, created by
sphinx-quickstart on Tue Oct 20 11:41:47 2020.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Relational RAGs documentation
.. toctree::
:caption: Contents:
.. image:: images/relast-process.png
:alt: RelAST process
See `releases page`_ for the latest version.
.. _releases page:
pushd %~dp0
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
set BUILDDIR=_build
if "%1" == "" goto help
if errorlevel 9009 (
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.If you don't have Sphinx installed, grab it from
exit /b 1
goto end
Main publication at SLE'18
.. raw:: html
<link rel="stylesheet"
href="" />
.multi-search {
min-height: 0;
padding: 0px;
.issue-item {
<div class="multi-search multi-search--issue-item">
<div class="issue-item clearfix">
<div class="issue-item__citation">
<div class="issue-heading">chapter</div>
<div class="issue-item__content">
<h5 class="issue-item__title"><a
model validation using reference attribute
<ul class="rlist--inline loa truncate-list"
title="list of authors" data-lines="2">
<li><a href=""
title="Johannes Mey"><img class="author-picture"
alt="Johannes Mey profile image" /><span>Johannes
class="loa_author_inst hidden">
<p data-doi="10.1145/contrib-99659180755">TU
Dresden, Germany</p>
</span><span>, </span></li>
<li><a href=""
title="René Schöne"><img class="author-picture"
alt="René Schöne profile image" /><span>René
class="loa_author_inst hidden">
<p data-doi="10.1145/contrib-81318498502">TU
Dresden, Germany</p>
</span><span>, </span></li>
<li><a href=""
title="Görel Hedin"><img class="author-picture"
alt="Görel Hedin profile image" /><span>Görel
class="loa_author_inst hidden">
<p data-doi="10.1145/contrib-81100270533">Lund
University, Sweden</p>
</span><span>, </span></li>
<li><a href=""
title="Emma Söderberg"><img
alt="Emma Söderberg profile image" /><span>Emma
class="loa_author_inst hidden">
<p data-doi="10.1145/contrib-81482659289">Lund
University, Sweden</p>
</span><span>, </span></li>
<li><a href=""
title="Thomas Kühn"><img class="author-picture"
alt="Thomas Kühn profile image" /><span>Thomas
class="loa_author_inst hidden">
<p data-doi="10.1145/contrib-81100443648">TU
Dresden, Germany</p>
</span><span>, </span></li>
<li><a href=""
title="Niklas Fors"><img class="author-picture"
alt="Niklas Fors profile image" /><span>Niklas
class="loa_author_inst hidden">
<p data-doi="10.1145/contrib-82459076457">Lund
University, Sweden</p>
</span><span>, </span></li>
<li><a href=""
title="Jesper Öqvist"><img
alt="Jesper Öqvist profile image" /><span>Jesper
class="loa_author_inst hidden">
<p data-doi="10.1145/contrib-82858857457">Lund
University, Sweden</p>
</span><span>, </span></li>
<li><a href=""
title="Uwe Aßmann"><img class="author-picture"
alt="Uwe Aßmann profile image" /><span>Uwe
class="loa_author_inst hidden">
<p data-doi="10.1145/contrib-81100444066">TU
Dresden, Germany</p>
<div class="issue-item__detail"><span>October
2018</span><span class="dot-separator">pp 70-82
class="issue-item__doi dot-separator"></a></span>
<div data-lines='4'
class="issue-item__abstract truncate-text">
<div class="issue-item__abstract truncate-text"
<p>Just like current software systems, models are
characterised by increasing complexity
and rate of change. Yet, these models only
become useful if they can be continuously
evaluated and validated. To achieve sufficiently
low response times for large ...
Follow-Up publication in JCL
**Relational reference attribute grammars: Improving continuous model validation**
Johannes Mey |a|, René Schöne |a|, Görel Hedin |b|, Emma Söderberg |b|, Thomas Kühn |a|, Niklas Fors |b|, Jesper Öqvist |b|, Uwe Aßmann |a|
- |a| Technische Universitãt Dresden, Germany
- |b| Lund University, Sweden
Received 31 March 2019, Revised 1 November 2019, Accepted 20 December 2019, Available online 20 January 2020.
.. |a| replace:: :sup:`a`
.. |b| replace:: :sup:`b`
Publications using Relational RAGs
- `Subpage on RagConnect`_
- Götz, Sebastian, Johannes Mey, René Schöne, and Uwe Aßmann. **“A JastAdd- and ILP-Based Solution to the Software-Selection and Hardware-Mapping-Problem at the TTC 2018.”** In 11th Transformation Tool Contest, 2018.
- Götz, Sebastian, Johannes Mey, René Schöne, and Uwe Aßmann. **“Quality-Based Software-Selection and Hardware-Mapping as Model Transformation Problem.”** In 11th Transformation Tool Contest, 2018.
- Mey, Johannes, René Schöne, Christopher Werner, and Uwe Aßmann. **“Transforming Truth Tables to Binary Decision Diagrams Using Relational Reference Attribute Grammars.”** In Proceedings of the 12th Transformation Tool Contest (TTC 2019), 2019.
- Schöne, René, and Johannes Mey. **“A JastAdd-Based Solution to the TTC 2018 Social Media Case.”** In 11th Transformation Tool Contest, 2018.
- Schöne, René, Johannes Mey, Boqi Ren, and Uwe Aßmann. **“Bridging the Gap between Smart Home Platforms and Machine Learning Using Relational Reference Attribute Grammars.”** In Proceedings of the 14th International Workshop on Models\@run.Time, 533–42. Munich, 2019.
- Mey, Johannes, Thomas Kühn, René Schöne, and Uwe Aßmann. **“Reusing Static Analysis across Different Domain-Specific Languages Using Reference Attribute Grammars.”** Programming 4, no. 3 (February 17, 2020).
.. _Subpage on RagConnect:
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment