emoflon-neo/examples/bin/bin/rules/tgg/SokobanImportExport_MI.msl
2021-05-29 22:05:23 +02:00

10731 lines
138 KiB
Plaintext

import "platform:/resource/SokobanLanguage/src/metamodels/SokobanLanguage.msl"
grammar SokobanImportExport_MI {
BoardEndEntryRule
BoardEndEntryRule_1
BoardEndEntryRule_2
BoardEndEntryRule_3
BoardEndEntryRule_16
BoardEndEntryRule_17
BoardEndEntryRule_18
BoardEndEntryRule_19
BoardEndEntryRule_22
BoardEndEntryRule_23
BoardEndEntryRule_25
BoardEndEntryRule_27
BoardEndEntryRule_31
BoardEndEntryRule_64
BoardEndEntryRule_65
BoardEndEntryRule_66
BoardEndEntryRule_67
BoardEndEntryRule_97
BoardEndEntryRule_99
BoardEndEntryRule_512
BoardEndEntryRule_513
BoardEndEntryRule_514
BoardEndEntryRule_515
BoardEndEntryRule_576
BoardEndEntryRule_577
BoardEndEntryRule_578
BoardEndEntryRule_579
BoardEndEntryRule_609
BoardEndEntryRule_611
BoardEndEntryRule_642
BoardEndEntryRule_643
BoardEndEntryRule_706
BoardEndEntryRule_707
BoardEndEntryRule_739
BoardEndEntryRule_832
BoardEndEntryRule_833
BoardEndEntryRule_834
BoardEndEntryRule_835
BoardEndEntryRule_865
BoardEndEntryRule_867
BoardEndEntryRule_962
BoardEndEntryRule_963
BoardEndEntryRule_995
BoardNormalEntryRule
BoardNormalEntryRule_1
BoardNormalEntryRule_2
BoardNormalEntryRule_3
BoardNormalEntryRule_16
BoardNormalEntryRule_17
BoardNormalEntryRule_18
BoardNormalEntryRule_19
BoardNormalEntryRule_22
BoardNormalEntryRule_23
BoardNormalEntryRule_25
BoardNormalEntryRule_27
BoardNormalEntryRule_31
BoardNormalEntryRule_64
BoardNormalEntryRule_65
BoardNormalEntryRule_66
BoardNormalEntryRule_67
BoardNormalEntryRule_97
BoardNormalEntryRule_99
BoardNormalEntryRule_512
BoardNormalEntryRule_513
BoardNormalEntryRule_514
BoardNormalEntryRule_515
BoardNormalEntryRule_576
BoardNormalEntryRule_577
BoardNormalEntryRule_578
BoardNormalEntryRule_579
BoardNormalEntryRule_609
BoardNormalEntryRule_611
BoardNormalEntryRule_642
BoardNormalEntryRule_643
BoardNormalEntryRule_706
BoardNormalEntryRule_707
BoardNormalEntryRule_739
BoardNormalEntryRule_832
BoardNormalEntryRule_833
BoardNormalEntryRule_834
BoardNormalEntryRule_835
BoardNormalEntryRule_865
BoardNormalEntryRule_867
BoardNormalEntryRule_962
BoardNormalEntryRule_963
BoardNormalEntryRule_995
FirstColAllRowsEnd
FirstColAllRowsEnd_1
FirstColAllRowsEnd_2
FirstColAllRowsEnd_3
FirstColAllRowsEnd_4
FirstColAllRowsEnd_5
FirstColAllRowsEnd_6
FirstColAllRowsEnd_7
FirstColAllRowsEnd_15
FirstColAllRowsEnd_16
FirstColAllRowsEnd_17
FirstColAllRowsEnd_64
FirstColAllRowsEnd_65
FirstColAllRowsEnd_80
FirstColAllRowsEnd_81
FirstColAllRowsEnd_112
FirstColAllRowsEnd_113
FirstColAllRowsEnd_193
FirstColAllRowsEnd_209
FirstColAllRowsEnd_241
FirstColAllRowsNormal
FirstColAllRowsNormal_1
FirstColAllRowsNormal_2
FirstColAllRowsNormal_3
FirstColAllRowsNormal_4
FirstColAllRowsNormal_5
FirstColAllRowsNormal_6
FirstColAllRowsNormal_7
FirstColAllRowsNormal_15
FirstColAllRowsNormal_16
FirstColAllRowsNormal_17
FirstColAllRowsNormal_64
FirstColAllRowsNormal_65
FirstColAllRowsNormal_80
FirstColAllRowsNormal_81
FirstColAllRowsNormal_112
FirstColAllRowsNormal_113
FirstColAllRowsNormal_193
FirstColAllRowsNormal_209
FirstColAllRowsNormal_241
FirstRowAllColsEnd
FirstRowAllColsEnd_1
FirstRowAllColsEnd_2
FirstRowAllColsEnd_3
FirstRowAllColsEnd_4
FirstRowAllColsEnd_5
FirstRowAllColsEnd_6
FirstRowAllColsEnd_7
FirstRowAllColsEnd_15
FirstRowAllColsEnd_16
FirstRowAllColsEnd_17
FirstRowAllColsEnd_49
FirstRowAllColsNormal
FirstRowAllColsNormal_1
FirstRowAllColsNormal_2
FirstRowAllColsNormal_3
FirstRowAllColsNormal_4
FirstRowAllColsNormal_5
FirstRowAllColsNormal_6
FirstRowAllColsNormal_7
FirstRowAllColsNormal_15
FirstRowAllColsNormal_16
FirstRowAllColsNormal_17
FirstRowAllColsNormal_49
AllOtherFieldsEnd
AllOtherFieldsEnd_1
AllOtherFieldsEnd_2
AllOtherFieldsEnd_3
AllOtherFieldsEnd_8
AllOtherFieldsEnd_9
AllOtherFieldsEnd_10
AllOtherFieldsEnd_11
AllOtherFieldsEnd_16
AllOtherFieldsEnd_17
AllOtherFieldsEnd_18
AllOtherFieldsEnd_19
AllOtherFieldsEnd_24
AllOtherFieldsEnd_25
AllOtherFieldsEnd_26
AllOtherFieldsEnd_27
AllOtherFieldsEnd_31
AllOtherFieldsEnd_64
AllOtherFieldsEnd_65
AllOtherFieldsEnd_97
AllOtherFieldsNormal
AllOtherFieldsNormal_1
AllOtherFieldsNormal_2
AllOtherFieldsNormal_3
AllOtherFieldsNormal_8
AllOtherFieldsNormal_9
AllOtherFieldsNormal_10
AllOtherFieldsNormal_11
AllOtherFieldsNormal_16
AllOtherFieldsNormal_17
AllOtherFieldsNormal_18
AllOtherFieldsNormal_19
AllOtherFieldsNormal_24
AllOtherFieldsNormal_25
AllOtherFieldsNormal_26
AllOtherFieldsNormal_27
AllOtherFieldsNormal_31
AllOtherFieldsNormal_64
AllOtherFieldsNormal_65
AllOtherFieldsNormal_97
}
rule BoardEndEntryRule {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_1 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_2 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_3 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_16 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_17 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_18 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_19 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_22 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
++nf:Field {
.enamespace := <__trgModelName>
.endPos := true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_23 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
++nf:Field {
.enamespace := <__trgModelName>
.endPos := true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_25 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
++board:SokobanLanguage.Board {
.enamespace := <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
}
attributeConstraints {
}
}
rule BoardEndEntryRule_27 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
++board:SokobanLanguage.Board {
.enamespace := <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
}
attributeConstraints {
}
}
rule BoardEndEntryRule_31 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
++nf:Field {
.enamespace := <__trgModelName>
.endPos := true
}
++board:SokobanLanguage.Board {
.enamespace := <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
}
attributeConstraints {
}
}
rule BoardEndEntryRule_64 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_65 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_66 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_67 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_97 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_99 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_512 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_513 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_514 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_515 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_576 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_577 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_578 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_579 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_609 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_611 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_642 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
++ne:End {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_643 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
++ne:End {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_706 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
++ne:End {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_707 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
++ne:End {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_739 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
++ne:End {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_832 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_833 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_834 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_835 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_865 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_867 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_962 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
++ne:End {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_963 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
++ne:End {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardEndEntryRule_995 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
++ne:End {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_1 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_2 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_3 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_16 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_17 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_18 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_19 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_22 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
++nf:Field {
.enamespace := <__trgModelName>
.endPos := false
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_23 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
++nf:Field {
.enamespace := <__trgModelName>
.endPos := false
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_25 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
++board:SokobanLanguage.Board {
.enamespace := <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_27 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
++board:SokobanLanguage.Board {
.enamespace := <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_31 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
++nf:Field {
.enamespace := <__trgModelName>
.endPos := false
}
++board:SokobanLanguage.Board {
.enamespace := <__trgModelName>
++-fields->nf
{
.col := 0
.row := 0
}
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_64 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_65 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_66 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_67 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_97 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_99 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_512 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_513 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_514 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_515 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_576 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_577 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_578 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_579 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_609 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_611 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_642 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
++ne:Normal {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_643 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
-firstRow->row
{
~_ex_ : true
}
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
++ne:Normal {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_706 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
++ne:Normal {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_707 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
++ne:Normal {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_739 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
++ne:Normal {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
row:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_832 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_833 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_834 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_835 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_865 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_867 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_962 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
-corr->board
{
._type_ : "BoardToBoard"
}
~_ex_ : true
}
++ne:Normal {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_963 {
sokBoard:sokobanExchangeFormat.Board {
.enamespace : <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
~_ex_ : true
}
++ne:Normal {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule BoardNormalEntryRule_995 {
++sokBoard:sokobanExchangeFormat.Board {
.enamespace := <__srcModelName>
++-firstRow->row
++-corr->board
{
._type_ := "BoardToBoard"
}
}
++ne:Normal {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
++row:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
board:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->nf
{
.col := 0
.row := 0
~_ex_ : true
}
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_1 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_2 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
++-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_3 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
++-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_4 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_5 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_6 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
++-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
}
}
f:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_7 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
++-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
}
}
f:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_15 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
++-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
}
}
f:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
++nf:Field {
.enamespace := <__trgModelName>
.endPos := true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_16 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_17 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_64 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_65 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_80 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_81 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_112 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
++nr:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_113 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
++nr:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_193 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
++ne:End {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_209 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
++ne:End {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsEnd_241 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
++nr:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
++ne:End {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.row := b::-fields->f::row+1
.col := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_1 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_2 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
++-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_3 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
++-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_4 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_5 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_6 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
++-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
}
}
f:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_7 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
++-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
}
}
f:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_15 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
++-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
}
}
f:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
++nf:Field {
.enamespace := <__trgModelName>
.endPos := false
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_16 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_17 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
-firstEntry->ne
{
~_ex_ : true
}
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_64 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_65 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_80 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_81 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_112 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
++nr:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_113 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
++nr:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_193 {
r:Row {
.enamespace : <__srcModelName>
-next->nr
{
~_ex_ : true
}
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
++ne:Normal {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_209 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
nr:Row {
.enamespace : <__srcModelName>
++-firstEntry->ne
~_ex_ : true
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
++ne:Normal {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstColAllRowsNormal_241 {
r:Row {
.enamespace : <__srcModelName>
++-next->nr
-firstEntry->e
}
++nr:Row {
.enamespace := <__srcModelName>
++-firstEntry->ne
}
e:Entry {
.enamespace : <__srcModelName>
-corr->f
{
._type_ : "EntryToField"
}
}
++ne:Normal {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.col : 0
}
-fields->nf
{
.col := 0
.row := b::-fields->f::row+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsEnd {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
-fields->nf
{
.row := 0
.col := b::-fields->f::col+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsEnd_1 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
-fields->nf
{
.row := 0
.col := b::-fields->f::col+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsEnd_2 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
++-fields->nf
{
.row := 0
.col := b::-fields->f::col+1
}
}
f:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsEnd_3 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
++-fields->nf
{
.row := 0
.col := b::-fields->f::col+1
}
}
f:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsEnd_4 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
-fields->nf
{
.row := 0
.col := b::-fields->f::col+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
++-right->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsEnd_5 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
-fields->nf
{
.row := 0
.col := b::-fields->f::col+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
++-right->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsEnd_6 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
++-fields->nf
{
.row := 0
.col := b::-fields->f::col+1
}
}
f:Field {
.enamespace : <__trgModelName>
++-right->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsEnd_7 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
++-fields->nf
{
.row := 0
.col := b::-fields->f::col+1
}
}
f:Field {
.enamespace : <__trgModelName>
++-right->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsEnd_15 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
++-fields->nf
{
.row := 0
.col := b::-fields->f::col+1
}
}
f:Field {
.enamespace : <__trgModelName>
++-right->nf
}
++nf:Field {
.enamespace := <__trgModelName>
.endPos := true
}
attributeConstraints {
}
}
rule FirstRowAllColsEnd_16 {
e:Entry {
.enamespace : <__srcModelName>
++-next->ne
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
-fields->nf
{
.row := 0
.col := b::-fields->f::col+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsEnd_17 {
e:Entry {
.enamespace : <__srcModelName>
++-next->ne
-corr->f
{
._type_ : "EntryToField"
}
}
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
-fields->nf
{
.row := 0
.col := b::-fields->f::col+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsEnd_49 {
e:Entry {
.enamespace : <__srcModelName>
++-next->ne
-corr->f
{
._type_ : "EntryToField"
}
}
++ne:End {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
-fields->nf
{
.row := 0
.col := b::-fields->f::col+1
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsNormal {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
-fields->nf
{
.col := b::-fields->f::col+1
.row := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsNormal_1 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
-fields->nf
{
.col := b::-fields->f::col+1
.row := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsNormal_2 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
++-fields->nf
{
.col := b::-fields->f::col+1
.row := 0
}
}
f:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsNormal_3 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
++-fields->nf
{
.col := b::-fields->f::col+1
.row := 0
}
}
f:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsNormal_4 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
-fields->nf
{
.col := b::-fields->f::col+1
.row := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
++-right->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsNormal_5 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
-fields->nf
{
.col := b::-fields->f::col+1
.row := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
++-right->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsNormal_6 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
++-fields->nf
{
.col := b::-fields->f::col+1
.row := 0
}
}
f:Field {
.enamespace : <__trgModelName>
++-right->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsNormal_7 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
++-fields->nf
{
.col := b::-fields->f::col+1
.row := 0
}
}
f:Field {
.enamespace : <__trgModelName>
++-right->nf
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsNormal_15 {
e:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
++-fields->nf
{
.col := b::-fields->f::col+1
.row := 0
}
}
f:Field {
.enamespace : <__trgModelName>
++-right->nf
}
++nf:Field {
.enamespace := <__trgModelName>
.endPos := false
}
attributeConstraints {
}
}
rule FirstRowAllColsNormal_16 {
e:Entry {
.enamespace : <__srcModelName>
++-next->ne
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
-fields->nf
{
.col := b::-fields->f::col+1
.row := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsNormal_17 {
e:Entry {
.enamespace : <__srcModelName>
++-next->ne
-corr->f
{
._type_ : "EntryToField"
}
}
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
-fields->nf
{
.col := b::-fields->f::col+1
.row := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule FirstRowAllColsNormal_49 {
e:Entry {
.enamespace : <__srcModelName>
++-next->ne
-corr->f
{
._type_ : "EntryToField"
}
}
++ne:Normal {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->f
{
.row : 0
}
-fields->nf
{
.col := b::-fields->f::col+1
.row := 0
~_ex_ : true
}
}
f:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd {
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_1 {
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_2 {
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_3 {
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_8 {
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_9 {
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_10 {
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_11 {
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_16 {
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_17 {
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_18 {
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_19 {
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_24 {
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_25 {
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_26 {
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_27 {
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_31 {
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
++nf:Field {
.enamespace := <__trgModelName>
.endPos := true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_64 {
ne:End {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
++-next->ne
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_65 {
ne:End {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
++-next->ne
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsEnd_97 {
++ne:End {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
ble:Entry {
.enamespace : <__srcModelName>
++-next->ne
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.col := b::-fields->ur::col
.row := b::-fields->bl::row
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := true
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal {
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_1 {
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_2 {
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_3 {
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_8 {
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_9 {
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_10 {
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_11 {
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_16 {
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_17 {
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_18 {
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_19 {
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_24 {
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_25 {
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_26 {
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_27 {
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_31 {
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
-next->ne
{
~_ex_ : true
}
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
++-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
++nf:Field {
.enamespace := <__trgModelName>
.endPos := false
}
bl:Field {
.enamespace : <__trgModelName>
++-right->nf
}
ur:Field {
.enamespace : <__trgModelName>
++-bottom->nf
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_64 {
ne:Normal {
.enamespace : <__srcModelName>
-corr->nf
{
._type_ : "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
++-next->ne
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_65 {
ne:Normal {
.enamespace : <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
~_ex_ : true
}
ble:Entry {
.enamespace : <__srcModelName>
++-next->ne
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}
rule AllOtherFieldsNormal_97 {
++ne:Normal {
.enamespace := <__srcModelName>
++-corr->nf
{
._type_ := "EntryToField"
}
}
ble:Entry {
.enamespace : <__srcModelName>
++-next->ne
-corr->bl
{
._type_ : "EntryToField"
}
}
b:SokobanLanguage.Board {
.enamespace : <__trgModelName>
-fields->ul
-fields->nf
{
.row := b::-fields->bl::row
.col := b::-fields->ur::col
~_ex_ : true
}
-fields->bl
-fields->ur
}
ul:Field {
.enamespace : <__trgModelName>
-bottom->bl
-right->ur
}
nf:Field {
.enamespace : <__trgModelName>
.endPos := false
~_ex_ : true
}
bl:Field {
.enamespace : <__trgModelName>
-right->nf
{
~_ex_ : true
}
}
ur:Field {
.enamespace : <__trgModelName>
-bottom->nf
{
~_ex_ : true
}
}
attributeConstraints {
}
}