Systems-Modeling / SysML-v2-Pilot-Implementation

Proof-of-concept pilot implementation of the SysML v2 textual notation and visualization
GNU Lesser General Public License v3.0
114 stars 23 forks source link

ST6RI-752 Reimplement Xtext workarounds using Xtext parse postprocessing #570

Closed kris7t closed 2 weeks ago

kris7t commented 2 weeks ago

Background

There is non-generated code in the Impl classes (in package org.omg.sysml.impl), inserted to work around limitations in parsing using Xtext. In particular, there were previously a number of methods that were specifically commented as “Xtext workarounds”. Ideally, these would be better handled as actions taken when constructing the abstract syntax tree during parsing, but that is not supported in the Xtext grammar language. Instead, this PR implements a mechanism that makes the necessary changes after the construction of the syntax tree, but before other processing is done on it, so this code no longer needs to be inserted into the Impl classes.

Note, however, that it does not replace the following mechanisms:

It also does not remove a number other cases of handwritten code, mostly related to property default values and additional method overrides, which may be addressed in a future PR.

Changes