#eclipse #ecore #emf

ecore_rs

Eclipse建模框架Ecore格式的解析器

1 个不稳定版本

0.1.0 2022年12月20日

#1699 in 解析器实现

LGPL-3.0-or-later

270KB
3.5K SLoC

ecore.rs

Ecore格式(由Eclipse建模框架(EMF)使用)的解析器和内部表示。

待办事项

  • 调查类的类型参数
  • 调查操作的类型参数
  • 内置类型构造函数(VecOption,...)?

输入(XML)格式

rsc 文件夹中有一些示例,包括XML和JPG。

我们目前支持以下抽象布局

file =
    xml_version (package)*

package =
    "<ecore:Package" ... "name" "=" string ">"
        (annotation | package | classifier)*
    "</ecore:Package>"

# a class (concrete/abstract/enum/...)
classifier =
    "<eClassifiers"
        "xsi:type" "=" string
        "name" "=" string
        "abstract" "=" string
    ">"
        (annotation | operation | structural_feature)
    "</eClassifiers>

annotation =
    "<eAnnotations"
        "source" "=" string
    ">"
        ( "<details" "key" "=" string "value" "=" string ">" )*
    "</eAnnotations>"

# a method
operation =
    "<eOperations"
        "name" "=" string
        "eType" "=" string
    ">"
        (
            "<eParameters"
                "name" "=" string
                "lowerBound" "=" nat_string
                "upperBound" "=" int_string
                "eType" "=" string
            ">"
        )*
    "</eOperations>"

structural_feature =
    "<eStructuralFeatures"
        "xsi:type" "=" string
        "name" "=" string
        "eType" "=" string
    "/>"

依赖关系

~2.4–3.5MB
~60K SLoC