mirror of
https://github.com/alecthomas/chroma.git
synced 2025-02-03 13:01:47 +02:00
Add Eclipse ATL language (https://eclipse.dev/atl/) (#1024)
Would like to use ATL syntax highlighting on the ATL website, which is generated using hugo.
This commit is contained in:
parent
df769f9366
commit
b07ff27bb0
165
lexers/embedded/atl.xml
Normal file
165
lexers/embedded/atl.xml
Normal file
@ -0,0 +1,165 @@
|
||||
<lexer>
|
||||
<config>
|
||||
<name>ATL</name>
|
||||
<alias>atl</alias>
|
||||
<filename>*.atl</filename>
|
||||
<mime_type>text/x-atl</mime_type>
|
||||
<dot_all>true</dot_all>
|
||||
</config>
|
||||
<rules>
|
||||
<state name="root">
|
||||
<rule pattern="(--.*?)(\n)">
|
||||
<bygroups>
|
||||
<token type="CommentSingle" />
|
||||
<token type="TextWhitespace" />
|
||||
</bygroups>
|
||||
</rule>
|
||||
<rule pattern="(and|distinct|endif|else|for|foreach|if|implies|in|let|not|or|self|super|then|thisModule|xor)\b">
|
||||
<token type="Keyword" />
|
||||
</rule>
|
||||
<rule pattern="(OclUndefined|true|false|#\w+)\b">
|
||||
<token type="KeywordConstant" />
|
||||
</rule>
|
||||
<rule pattern="(module|query|library|create|from|to|uses)\b">
|
||||
<token type="KeywordNamespace" />
|
||||
</rule>
|
||||
<rule pattern="(do)(\s*)({)">
|
||||
<bygroups>
|
||||
<token type="KeywordNamespace" />
|
||||
<token type="TextWhitespace" />
|
||||
<token type="Punctuation" />
|
||||
</bygroups>
|
||||
</rule>
|
||||
<rule pattern="(abstract|endpoint|entrypoint|lazy|unique)(\s+)">
|
||||
<bygroups>
|
||||
<token type="KeywordDeclaration" />
|
||||
<token type="TextWhitespace" />
|
||||
</bygroups>
|
||||
</rule>
|
||||
<rule pattern="(rule)(\s+)">
|
||||
<bygroups>
|
||||
<token type="KeywordNamespace" />
|
||||
<token type="TextWhitespace" />
|
||||
</bygroups>
|
||||
</rule>
|
||||
<rule pattern="(helper)(\s+)">
|
||||
<bygroups>
|
||||
<token type="KeywordNamespace" />
|
||||
<token type="TextWhitespace" />
|
||||
</bygroups>
|
||||
</rule>
|
||||
<rule pattern="(context)(\s+)">
|
||||
<bygroups>
|
||||
<token type="KeywordNamespace" />
|
||||
<token type="TextWhitespace" />
|
||||
</bygroups>
|
||||
</rule>
|
||||
<rule pattern="(def)(\s*)(:)(\s*)">
|
||||
<bygroups>
|
||||
<token type="KeywordNamespace" />
|
||||
<token type="TextWhitespace" />
|
||||
<token type="Punctuation" />
|
||||
<token type="TextWhitespace" />
|
||||
</bygroups>
|
||||
</rule>
|
||||
<rule pattern="(Bag|Boolean|Integer|OrderedSet|Real|Sequence|Set|String|Tuple)">
|
||||
<token type="KeywordType" />
|
||||
</rule>
|
||||
<rule pattern="(\w+)(\s*)(<-|<:=)">
|
||||
<bygroups>
|
||||
<token type="NameNamespace" />
|
||||
<token type="TextWhitespace" />
|
||||
<token type="Punctuation" />
|
||||
</bygroups>
|
||||
</rule>
|
||||
<rule pattern="#"">
|
||||
<token type="KeywordConstant" />
|
||||
<push state="quotedenumliteral" />
|
||||
</rule>
|
||||
<rule pattern=""">
|
||||
<token type="NameNamespace" />
|
||||
<push state="quotedname" />
|
||||
</rule>
|
||||
<rule pattern="[^\S\n]+">
|
||||
<token type="TextWhitespace" />
|
||||
</rule>
|
||||
<rule pattern="'">
|
||||
<token type="LiteralString" />
|
||||
<push state="string" />
|
||||
</rule>
|
||||
<rule
|
||||
pattern="[0-9]*\.[0-9]+">
|
||||
<token type="LiteralNumberFloat" />
|
||||
</rule>
|
||||
<rule pattern="0|[1-9][0-9]*">
|
||||
<token type="LiteralNumberInteger" />
|
||||
</rule>
|
||||
<rule pattern="[*<>+=/-]">
|
||||
<token type="Operator" />
|
||||
</rule>
|
||||
<rule pattern="([{}();:.,!|]|->)">
|
||||
<token type="Punctuation" />
|
||||
</rule>
|
||||
<rule pattern="\n">
|
||||
<token type="TextWhitespace" />
|
||||
</rule>
|
||||
<rule pattern="\w+">
|
||||
<token type="NameNamespace" />
|
||||
</rule>
|
||||
</state>
|
||||
<state name="string">
|
||||
<rule pattern="[^\\']+">
|
||||
<token type="LiteralString" />
|
||||
</rule>
|
||||
<rule pattern="\\\\">
|
||||
<token type="LiteralString" />
|
||||
</rule>
|
||||
<rule pattern="\\'">
|
||||
<token type="LiteralString" />
|
||||
</rule>
|
||||
<rule pattern="\\">
|
||||
<token type="LiteralString" />
|
||||
</rule>
|
||||
<rule pattern="'">
|
||||
<token type="LiteralString" />
|
||||
<pop depth="1" />
|
||||
</rule>
|
||||
</state>
|
||||
<state name="quotedname">
|
||||
<rule pattern="[^\\"]+">
|
||||
<token type="NameNamespace" />
|
||||
</rule>
|
||||
<rule pattern="\\\\">
|
||||
<token type="NameNamespace" />
|
||||
</rule>
|
||||
<rule pattern="\\"">
|
||||
<token type="NameNamespace" />
|
||||
</rule>
|
||||
<rule pattern="\\">
|
||||
<token type="NameNamespace" />
|
||||
</rule>
|
||||
<rule pattern=""">
|
||||
<token type="NameNamespace" />
|
||||
<pop depth="1" />
|
||||
</rule>
|
||||
</state>
|
||||
<state name="quotedenumliteral">
|
||||
<rule pattern="[^\\"]+">
|
||||
<token type="KeywordConstant" />
|
||||
</rule>
|
||||
<rule pattern="\\\\">
|
||||
<token type="KeywordConstant" />
|
||||
</rule>
|
||||
<rule pattern="\\"">
|
||||
<token type="KeywordConstant" />
|
||||
</rule>
|
||||
<rule pattern="\\">
|
||||
<token type="KeywordConstant" />
|
||||
</rule>
|
||||
<rule pattern=""">
|
||||
<token type="KeywordConstant" />
|
||||
<pop depth="1" />
|
||||
</rule>
|
||||
</state>
|
||||
</rules>
|
||||
</lexer>
|
61
lexers/testdata/atl.actual
vendored
Normal file
61
lexers/testdata/atl.actual
vendored
Normal file
@ -0,0 +1,61 @@
|
||||
module TypeA2TypeB;
|
||||
create b : TypeB from a : TypeA;
|
||||
|
||||
rule RootA2RootB {
|
||||
from
|
||||
rtA : TypeA!RootA
|
||||
to
|
||||
rtB : TypeB!RootB (
|
||||
defs <- rtA.elms->iterate(e; res : Set(TypeA!ElementA) = Set {} |
|
||||
if (res->collect(f | f.name)->includes(e.name)) then
|
||||
res
|
||||
else
|
||||
res->including(e)
|
||||
endif
|
||||
)-- here we keep only one element of each name value
|
||||
->collect(e | thisModule.Definition(e)),
|
||||
-- then we create a DefinitionB from each selected element
|
||||
elms <- rtA.elms
|
||||
)
|
||||
}
|
||||
|
||||
lazy rule Definition {
|
||||
from
|
||||
s : TypeA!ElementA
|
||||
to
|
||||
t : TypeB!DefinitionB(
|
||||
name <- s.name
|
||||
)
|
||||
}
|
||||
|
||||
helper def: nameToAssignHistory : Sequence(TupleType(e : TypeB!ElementB, s : String)) =
|
||||
Sequence {};
|
||||
|
||||
rule NameToAssign (e : TypeB!ElementB, s : String) {
|
||||
do {
|
||||
thisModule.nameToAssignHistory <- thisModule.nameToAssignHistory->append(Tuple {e = e, s = s});
|
||||
}
|
||||
}
|
||||
|
||||
rule Element {
|
||||
from
|
||||
s : TypeA!ElementA
|
||||
to
|
||||
t : TypeB!ElementB(
|
||||
)
|
||||
do {
|
||||
-- The corresponding name for the current ElementB is added in the map.
|
||||
-- This map will be used at the end of the transformation to create a link between ElementB and DefinitionB
|
||||
thisModule.NameToAssign(t, s.name);
|
||||
}
|
||||
}
|
||||
|
||||
-- execute delayed actions
|
||||
endpoint rule EndRule() {
|
||||
do {
|
||||
for(dta in thisModule.nameToAssignHistory) {
|
||||
-- We create a link between an ElementB and the corresponding DefinitionB
|
||||
dta.e.definition <- TypeB!DefinitionB.allInstancesFrom('b')->any(e | e.name = dta.s);
|
||||
}
|
||||
}
|
||||
}
|
413
lexers/testdata/atl.expected
vendored
Normal file
413
lexers/testdata/atl.expected
vendored
Normal file
@ -0,0 +1,413 @@
|
||||
[
|
||||
{"type":"KeywordNamespace","value":"module"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"TypeA2TypeB"},
|
||||
{"type":"Punctuation","value":";"},
|
||||
{"type":"TextWhitespace","value":"\n"},
|
||||
{"type":"KeywordNamespace","value":"create"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"b"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":":"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"TypeB"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"KeywordNamespace","value":"from"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"a"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":":"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"TypeA"},
|
||||
{"type":"Punctuation","value":";"},
|
||||
{"type":"TextWhitespace","value":"\n\n"},
|
||||
{"type":"KeywordNamespace","value":"rule"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"RootA2RootB"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"{"},
|
||||
{"type":"TextWhitespace","value":"\n\t"},
|
||||
{"type":"KeywordNamespace","value":"from"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t"},
|
||||
{"type":"NameNamespace","value":"rtA"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":":"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"TypeA"},
|
||||
{"type":"Punctuation","value":"!"},
|
||||
{"type":"NameNamespace","value":"RootA"},
|
||||
{"type":"TextWhitespace","value":"\n\t"},
|
||||
{"type":"KeywordNamespace","value":"to"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t"},
|
||||
{"type":"NameNamespace","value":"rtB"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":":"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"TypeB"},
|
||||
{"type":"Punctuation","value":"!"},
|
||||
{"type":"NameNamespace","value":"RootB"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"TextWhitespace","value":"\n\t\t\t"},
|
||||
{"type":"NameNamespace","value":"defs"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"\u003c-"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"rtA"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"elms"},
|
||||
{"type":"Operator","value":"-\u003e"},
|
||||
{"type":"NameNamespace","value":"iterate"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"NameNamespace","value":"e"},
|
||||
{"type":"Punctuation","value":";"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"res"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":":"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"KeywordType","value":"Set"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"NameNamespace","value":"TypeA"},
|
||||
{"type":"Punctuation","value":"!"},
|
||||
{"type":"NameNamespace","value":"ElementA"},
|
||||
{"type":"Punctuation","value":")"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Operator","value":"="},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"KeywordType","value":"Set"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"{}"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"|"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t\t\t"},
|
||||
{"type":"Keyword","value":"if"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"NameNamespace","value":"res"},
|
||||
{"type":"Operator","value":"-\u003e"},
|
||||
{"type":"NameNamespace","value":"collect"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"NameNamespace","value":"f"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"|"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"f"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"name"},
|
||||
{"type":"Punctuation","value":")"},
|
||||
{"type":"Operator","value":"-\u003e"},
|
||||
{"type":"NameNamespace","value":"includes"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"NameNamespace","value":"e"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"name"},
|
||||
{"type":"Punctuation","value":"))"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Keyword","value":"then"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t\t\t\t"},
|
||||
{"type":"NameNamespace","value":"res"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t\t\t"},
|
||||
{"type":"Keyword","value":"else"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t\t\t\t"},
|
||||
{"type":"NameNamespace","value":"res"},
|
||||
{"type":"Operator","value":"-\u003e"},
|
||||
{"type":"NameNamespace","value":"including"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"NameNamespace","value":"e"},
|
||||
{"type":"Punctuation","value":")"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t\t\t"},
|
||||
{"type":"Keyword","value":"endif"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t\t\t"},
|
||||
{"type":"Punctuation","value":")"},
|
||||
{"type":"CommentSingle","value":"-- here we keep only one element of each name value"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t\t\t"},
|
||||
{"type":"Operator","value":"-\u003e"},
|
||||
{"type":"NameNamespace","value":"collect"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"NameNamespace","value":"e"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"|"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Keyword","value":"thisModule"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"Definition"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"NameNamespace","value":"e"},
|
||||
{"type":"Punctuation","value":")),"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t\t\t"},
|
||||
{"type":"CommentSingle","value":"-- then we create a DefinitionB from each selected element"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t\t"},
|
||||
{"type":"NameNamespace","value":"elms"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"\u003c-"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"rtA"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"elms"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t"},
|
||||
{"type":"Punctuation","value":")"},
|
||||
{"type":"TextWhitespace","value":"\n"},
|
||||
{"type":"Punctuation","value":"}"},
|
||||
{"type":"TextWhitespace","value":"\n\n"},
|
||||
{"type":"KeywordDeclaration","value":"lazy"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"KeywordNamespace","value":"rule"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"Definition"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"{"},
|
||||
{"type":"TextWhitespace","value":"\n\t"},
|
||||
{"type":"KeywordNamespace","value":"from"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t"},
|
||||
{"type":"NameNamespace","value":"s"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":":"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"TypeA"},
|
||||
{"type":"Punctuation","value":"!"},
|
||||
{"type":"NameNamespace","value":"ElementA"},
|
||||
{"type":"TextWhitespace","value":"\n\t"},
|
||||
{"type":"KeywordNamespace","value":"to"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t"},
|
||||
{"type":"NameNamespace","value":"t"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":":"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"TypeB"},
|
||||
{"type":"Punctuation","value":"!"},
|
||||
{"type":"NameNamespace","value":"DefinitionB"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"TextWhitespace","value":"\n\t\t\t"},
|
||||
{"type":"NameNamespace","value":"name"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"\u003c-"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"s"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"name"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t"},
|
||||
{"type":"Punctuation","value":")"},
|
||||
{"type":"TextWhitespace","value":"\n"},
|
||||
{"type":"Punctuation","value":"}"},
|
||||
{"type":"TextWhitespace","value":"\n\n"},
|
||||
{"type":"KeywordNamespace","value":"helper"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"KeywordNamespace","value":"def"},
|
||||
{"type":"Punctuation","value":":"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"nameToAssignHistory"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":":"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"KeywordType","value":"Sequence"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"KeywordType","value":"Tuple"},
|
||||
{"type":"NameNamespace","value":"Type"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"NameNamespace","value":"e"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":":"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"TypeB"},
|
||||
{"type":"Punctuation","value":"!"},
|
||||
{"type":"NameNamespace","value":"ElementB"},
|
||||
{"type":"Punctuation","value":","},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"s"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":":"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"KeywordType","value":"String"},
|
||||
{"type":"Punctuation","value":"))"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Operator","value":"="},
|
||||
{"type":"TextWhitespace","value":"\n\t"},
|
||||
{"type":"KeywordType","value":"Sequence"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"{};"},
|
||||
{"type":"TextWhitespace","value":"\n\n"},
|
||||
{"type":"KeywordNamespace","value":"rule"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"NameToAssign"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"NameNamespace","value":"e"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":":"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"TypeB"},
|
||||
{"type":"Punctuation","value":"!"},
|
||||
{"type":"NameNamespace","value":"ElementB"},
|
||||
{"type":"Punctuation","value":","},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"s"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":":"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"KeywordType","value":"String"},
|
||||
{"type":"Punctuation","value":")"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"{"},
|
||||
{"type":"TextWhitespace","value":"\n\t"},
|
||||
{"type":"KeywordNamespace","value":"do"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"{"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t"},
|
||||
{"type":"Keyword","value":"thisModule"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"nameToAssignHistory"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"\u003c-"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Keyword","value":"thisModule"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"nameToAssignHistory"},
|
||||
{"type":"Operator","value":"-\u003e"},
|
||||
{"type":"NameNamespace","value":"append"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"KeywordType","value":"Tuple"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"{"},
|
||||
{"type":"NameNamespace","value":"e"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Operator","value":"="},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"e"},
|
||||
{"type":"Punctuation","value":","},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"s"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Operator","value":"="},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"s"},
|
||||
{"type":"Punctuation","value":"});"},
|
||||
{"type":"TextWhitespace","value":"\n\t"},
|
||||
{"type":"Punctuation","value":"}"},
|
||||
{"type":"TextWhitespace","value":"\n"},
|
||||
{"type":"Punctuation","value":"}"},
|
||||
{"type":"TextWhitespace","value":"\n\n"},
|
||||
{"type":"KeywordNamespace","value":"rule"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"Element"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"{"},
|
||||
{"type":"TextWhitespace","value":"\n\t"},
|
||||
{"type":"KeywordNamespace","value":"from"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t"},
|
||||
{"type":"NameNamespace","value":"s"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":":"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"TypeA"},
|
||||
{"type":"Punctuation","value":"!"},
|
||||
{"type":"NameNamespace","value":"ElementA"},
|
||||
{"type":"TextWhitespace","value":"\n\t"},
|
||||
{"type":"KeywordNamespace","value":"to"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t"},
|
||||
{"type":"NameNamespace","value":"t"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":":"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"TypeB"},
|
||||
{"type":"Punctuation","value":"!"},
|
||||
{"type":"NameNamespace","value":"ElementB"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"TextWhitespace","value":"\n\t\t"},
|
||||
{"type":"Punctuation","value":")"},
|
||||
{"type":"TextWhitespace","value":"\n\t"},
|
||||
{"type":"KeywordNamespace","value":"do"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"{"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t"},
|
||||
{"type":"CommentSingle","value":"-- The corresponding name for the current ElementB is added in the map."},
|
||||
{"type":"TextWhitespace","value":"\n\t\t"},
|
||||
{"type":"CommentSingle","value":"-- This map will be used at the end of the transformation to create a link between ElementB and DefinitionB"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t"},
|
||||
{"type":"Keyword","value":"thisModule"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"NameToAssign"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"NameNamespace","value":"t"},
|
||||
{"type":"Punctuation","value":","},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"s"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"name"},
|
||||
{"type":"Punctuation","value":");"},
|
||||
{"type":"TextWhitespace","value":"\n\t"},
|
||||
{"type":"Punctuation","value":"}"},
|
||||
{"type":"TextWhitespace","value":"\n"},
|
||||
{"type":"Punctuation","value":"}"},
|
||||
{"type":"TextWhitespace","value":"\n\n"},
|
||||
{"type":"CommentSingle","value":"-- execute delayed actions"},
|
||||
{"type":"TextWhitespace","value":"\n"},
|
||||
{"type":"KeywordDeclaration","value":"endpoint"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"KeywordNamespace","value":"rule"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"EndRule"},
|
||||
{"type":"Punctuation","value":"()"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"{"},
|
||||
{"type":"TextWhitespace","value":"\n\t"},
|
||||
{"type":"KeywordNamespace","value":"do"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"{"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t"},
|
||||
{"type":"Keyword","value":"for"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"NameNamespace","value":"dta"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Keyword","value":"in"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Keyword","value":"thisModule"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"nameToAssignHistory"},
|
||||
{"type":"Punctuation","value":")"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"{"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t\t"},
|
||||
{"type":"CommentSingle","value":"-- We create a link between an ElementB and the corresponding DefinitionB"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t\t"},
|
||||
{"type":"NameNamespace","value":"dta"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"e"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"definition"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"\u003c-"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"TypeB"},
|
||||
{"type":"Punctuation","value":"!"},
|
||||
{"type":"NameNamespace","value":"DefinitionB"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"allInstancesFrom"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"LiteralString","value":"'b'"},
|
||||
{"type":"Punctuation","value":")"},
|
||||
{"type":"Operator","value":"-\u003e"},
|
||||
{"type":"NameNamespace","value":"any"},
|
||||
{"type":"Punctuation","value":"("},
|
||||
{"type":"NameNamespace","value":"e"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Punctuation","value":"|"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"e"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"name"},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"Operator","value":"="},
|
||||
{"type":"TextWhitespace","value":" "},
|
||||
{"type":"NameNamespace","value":"dta"},
|
||||
{"type":"Punctuation","value":"."},
|
||||
{"type":"NameNamespace","value":"s"},
|
||||
{"type":"Punctuation","value":");"},
|
||||
{"type":"TextWhitespace","value":"\n\t\t"},
|
||||
{"type":"Punctuation","value":"}"},
|
||||
{"type":"TextWhitespace","value":"\n\t"},
|
||||
{"type":"Punctuation","value":"}"},
|
||||
{"type":"TextWhitespace","value":"\n"},
|
||||
{"type":"Punctuation","value":"}"},
|
||||
{"type":"TextWhitespace","value":"\n"}
|
||||
]
|
Loading…
x
Reference in New Issue
Block a user