1945 lines
105 KiB
Clojure
1945 lines
105 KiB
Clojure
{:highlights [{:id #uuid "64e0c6b3-c5bd-48a1-b546-8812a6984fde",
|
||
:page 1,
|
||
:position {:bounding {:x1 0,
|
||
:y1 228.4296875,
|
||
:x2 412.5856018066406,
|
||
:y2 1841.5,
|
||
:width 854,
|
||
:height 1105.1764705882351},
|
||
:rects ({:x1 221.65757751464844,
|
||
:y1 228.4296875,
|
||
:x2 412.5856018066406,
|
||
:y2 243.9296875,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 75.3203125,
|
||
:y1 245.1171875,
|
||
:x2 381.74530029296875,
|
||
:y2 260.6171875,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 0,
|
||
:y1 1822.5,
|
||
:x2 0,
|
||
:y2 1841.5,
|
||
:width 854,
|
||
:height 1105.1764705882351}),
|
||
:page 1},
|
||
:content {:text "meta-models and associated grammars need to be co-evolved to stay mutually consistent"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e0c6c5-19c7-4898-9605-049f7c31342e",
|
||
:page 1,
|
||
:position {:bounding {:x1 75.3203125,
|
||
:y1 295.1796875,
|
||
:x2 148.88027954101562,
|
||
:y2 310.6796875,
|
||
:width 854,
|
||
:height 1105.1764705882351},
|
||
:rects ({:x1 75.3203125,
|
||
:y1 295.1796875,
|
||
:x2 148.88027954101562,
|
||
:y2 310.6796875,
|
||
:width 854,
|
||
:height 1105.1764705882351}),
|
||
:page 1},
|
||
:content {:text "optimizations"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e0c6e0-efbf-478d-b647-2d0eac1f9751",
|
||
:page 1,
|
||
:position {:bounding {:x1 0,
|
||
:y1 361.9375,
|
||
:x2 412.5212707519531,
|
||
:y2 2001.5,
|
||
:width 854,
|
||
:height 1105.1764705882351},
|
||
:rects ({:x1 75.3203125,
|
||
:y1 361.9375,
|
||
:x2 412.5212707519531,
|
||
:y2 377.4375,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 75.3203125,
|
||
:y1 378.625,
|
||
:x2 410.1632995605469,
|
||
:y2 394.125,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 75.3203125,
|
||
:y1 395.3125,
|
||
:x2 412.5136413574219,
|
||
:y2 410.8125,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 75.3203125,
|
||
:y1 412,
|
||
:x2 126.33258819580078,
|
||
:y2 427.5,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 0,
|
||
:y1 1950.5,
|
||
:x2 0,
|
||
:y2 1969.5,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 0,
|
||
:y1 1966.5,
|
||
:x2 0,
|
||
:y2 1985.5,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 0,
|
||
:y1 1982.5,
|
||
:x2 0,
|
||
:y2 2001.5,
|
||
:width 854,
|
||
:height 1105.1764705882351}),
|
||
:page 1},
|
||
:content {:text "In this work, to significantly reduce the manual effort during meta-model and grammar co-evolution, we present an automated approach for extracting optimization rule configurations. "},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e0c6f1-8136-4aee-bcb2-6d87fd24bab7",
|
||
:page 1,
|
||
:position {:bounding {:x1 0,
|
||
:y1 428.6875,
|
||
:x2 411.701416015625,
|
||
:y2 2049.5,
|
||
:width 854,
|
||
:height 1105.1764705882351},
|
||
:rects ({:x1 107.3809814453125,
|
||
:y1 428.6875,
|
||
:x2 411.701416015625,
|
||
:y2 444.1875,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 75.3203125,
|
||
:y1 445.375,
|
||
:x2 410.1610107421875,
|
||
:y2 460.875,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 75.3203125,
|
||
:y1 462.0625,
|
||
:x2 234.08038330078125,
|
||
:y2 477.5625,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 0,
|
||
:y1 2014.5,
|
||
:x2 0,
|
||
:y2 2033.5,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 0,
|
||
:y1 2030.5,
|
||
:x2 0,
|
||
:y2 2049.5,
|
||
:width 854,
|
||
:height 1105.1764705882351}),
|
||
:page 1},
|
||
:content {:text "replay optimizations on later versions of the grammar, thus leading to a fully automated migration process for the supported types of changes."},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e0c96e-a290-48f0-8aed-1d4633d1dc21",
|
||
:page 1,
|
||
:position {:bounding {:x1 0,
|
||
:y1 648.0625,
|
||
:x2 780.8643798828125,
|
||
:y2 2737.5,
|
||
:width 854,
|
||
:height 1105.1764705882351},
|
||
:rects ({:x1 457.5703125,
|
||
:y1 648.0625,
|
||
:x2 780.8643798828125,
|
||
:y2 663.5625,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 443.6484375,
|
||
:y1 664.75,
|
||
:x2 649.5361938476562,
|
||
:y2 680.25,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 0,
|
||
:y1 2718.5,
|
||
:x2 0,
|
||
:y2 2737.5,
|
||
:width 854,
|
||
:height 1105.1764705882351}),
|
||
:page 1},
|
||
:content {:text "We consider a scenario in which a meta-model is coevolved with an associated grammar. "},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e0c98c-59d3-4cca-8338-1e23ecd3b2bb",
|
||
:page 1,
|
||
:position {:bounding {:x1 0,
|
||
:y1 781.5703125,
|
||
:x2 780.8419189453125,
|
||
:y2 2897.5,
|
||
:width 854,
|
||
:height 1105.1764705882351},
|
||
:rects ({:x1 443.6484375,
|
||
:y1 781.5703125,
|
||
:x2 778.4996948242188,
|
||
:y2 797.0703125,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 443.3046875,
|
||
:y1 798.2578125,
|
||
:x2 780.8419189453125,
|
||
:y2 813.7578125,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 443.6484375,
|
||
:y1 814.9453125,
|
||
:x2 778.5033569335938,
|
||
:y2 830.4453125,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 443.6484375,
|
||
:y1 831.6328125,
|
||
:x2 738.7407836914062,
|
||
:y2 847.1328125,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 0,
|
||
:y1 2846.5,
|
||
:x2 0,
|
||
:y2 2865.5,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 0,
|
||
:y1 2862.5,
|
||
:x2 0,
|
||
:y2 2881.5,
|
||
:width 854,
|
||
:height 1105.1764705882351}
|
||
{:x1 0,
|
||
:y1 2878.5,
|
||
:x2 0,
|
||
:y2 2897.5,
|
||
:width 854,
|
||
:height 1105.1764705882351}),
|
||
:page 1},
|
||
:content {:text "First, the meta-model evolves over time, rendering previous versions of the grammar obsolete. Second, in a rapid prototyping context, the meta-model evolves quickly and then requires the grammar to be updated quickly as well."},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e0cb41-ce79-4e10-a35a-4331ce1a2e05",
|
||
:page 1,
|
||
:position {:bounding {:x1 0,
|
||
:y1 1042.4765625,
|
||
:x2 916.234375,
|
||
:y2 2961.5,
|
||
:width 1005,
|
||
:height 1300.5882352941176},
|
||
:rects ({:x1 565.0078125,
|
||
:y1 1042.4765625,
|
||
:x2 916.234375,
|
||
:y2 1060.9765625,
|
||
:width 1005,
|
||
:height 1300.5882352941176}
|
||
{:x1 565.5078125,
|
||
:y1 1062.1171875,
|
||
:x2 777.2257690429688,
|
||
:y2 1080.6171875,
|
||
:width 1005,
|
||
:height 1300.5882352941176}
|
||
{:x1 0,
|
||
:y1 2942.5,
|
||
:x2 0,
|
||
:y2 2961.5,
|
||
:width 1005,
|
||
:height 1300.5882352941176}),
|
||
:page 1},
|
||
:content {:text "The updated grammar should be consistent with the new version of the meta-model."},
|
||
:properties {:color "purple"}}
|
||
{:id #uuid "64e0cb46-b5d9-4c20-a89e-4566425f0fce",
|
||
:page 1,
|
||
:position {:bounding {:x1 0,
|
||
:y1 1081.625,
|
||
:x2 916.2378540039062,
|
||
:y2 3009.5,
|
||
:width 1005,
|
||
:height 1300.5882352941176},
|
||
:rects ({:x1 565.0078125,
|
||
:y1 1081.625,
|
||
:x2 916.2333374023438,
|
||
:y2 1100.125,
|
||
:width 1005,
|
||
:height 1300.5882352941176}
|
||
{:x1 565.5078125,
|
||
:y1 1101.265625,
|
||
:x2 916.2378540039062,
|
||
:y2 1119.765625,
|
||
:width 1005,
|
||
:height 1300.5882352941176}
|
||
{:x1 565.5078125,
|
||
:y1 1120.8984375,
|
||
:x2 657.4983520507812,
|
||
:y2 1139.3984375,
|
||
:width 1005,
|
||
:height 1300.5882352941176}
|
||
{:x1 0,
|
||
:y1 2974.5,
|
||
:x2 0,
|
||
:y2 2993.5,
|
||
:width 1005,
|
||
:height 1300.5882352941176}
|
||
{:x1 0,
|
||
:y1 2990.5,
|
||
:x2 0,
|
||
:y2 3009.5,
|
||
:width 1005,
|
||
:height 1300.5882352941176}),
|
||
:page 1},
|
||
:content {:text "The updated grammar should incorporate any manual improvements that were made to previous versions of the grammar "},
|
||
:properties {:color "purple"}}
|
||
{:id #uuid "64e0cc4e-af1e-4765-9235-64074a2c764c",
|
||
:page 2,
|
||
:position {:bounding {:x1 0,
|
||
:y1 660.0546875,
|
||
:x2 490.0347900390625,
|
||
:y2 2225.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 188.86627197265625,
|
||
:y1 660.0546875,
|
||
:x2 490.0347900390625,
|
||
:y2 678.5546875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 679.984375,
|
||
:x2 395.3852844238281,
|
||
:y2 698.484375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2206.5,
|
||
:x2 0,
|
||
:y2 2225.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 2},
|
||
:content {:text "we present an approach for automating the configuration of grammar optimization rules. "},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e0cc5c-ef11-4f62-bb02-53b59f03aa81",
|
||
:page 2,
|
||
:position {:bounding {:x1 0,
|
||
:y1 859.2421875,
|
||
:x2 492.91314697265625,
|
||
:y2 2401.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 174.79446411132812,
|
||
:y1 859.2421875,
|
||
:x2 490.09576416015625,
|
||
:y2 877.7421875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 879.171875,
|
||
:x2 492.91314697265625,
|
||
:y2 897.671875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 899.1015625,
|
||
:x2 175.89208984375,
|
||
:y2 917.6015625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2366.5,
|
||
:x2 0,
|
||
:y2 2385.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2382.5,
|
||
:x2 0,
|
||
:y2 2401.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 2},
|
||
:content {:text "Our approach can then automatically extract an optimization rule configuration that encodes the manual improvements. "},
|
||
:properties {:color "purple"}}
|
||
{:id #uuid "64e0cc69-2df9-4751-85c8-9f41fdb7bdb0",
|
||
:page 2,
|
||
:position {:bounding {:x1 0,
|
||
:y1 919.0390625,
|
||
:x2 490.0443115234375,
|
||
:y2 2465.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 102.5987548828125,
|
||
:y1 919.0390625,
|
||
:x2 490.0350341796875,
|
||
:y2 937.5390625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 938.96875,
|
||
:x2 490.0399169921875,
|
||
:y2 957.46875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 958.8984375,
|
||
:x2 490.0443115234375,
|
||
:y2 977.3984375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.3515625,
|
||
:y1 978.8359375,
|
||
:x2 280.4981994628906,
|
||
:y2 997.3359375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2414.5,
|
||
:x2 0,
|
||
:y2 2433.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2430.5,
|
||
:x2 0,
|
||
:y2 2449.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2446.5,
|
||
:x2 0,
|
||
:y2 2465.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 2},
|
||
:content {:text "mapping between the grammar rules from both grammars and then, per rule, performing a line-by-line comparison to extract invocations of relevant grammar optimization rules with their parametrizations. "},
|
||
:properties {:color "blue"}}
|
||
{:id #uuid "64e0cd27-77f3-41d9-94ba-b66db2993508",
|
||
:page 2,
|
||
:position {:bounding {:x1 0,
|
||
:y1 859.2421875,
|
||
:x2 935.3934326171875,
|
||
:y2 3265.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 580.73095703125,
|
||
:y1 859.2421875,
|
||
:x2 929.9974365234375,
|
||
:y2 877.7421875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 879.171875,
|
||
:x2 935.3934326171875,
|
||
:y2 897.671875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 899.1015625,
|
||
:x2 932.7732543945312,
|
||
:y2 917.6015625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 919.0390625,
|
||
:x2 929.9583740234375,
|
||
:y2 937.5390625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 938.96875,
|
||
:x2 766.3319091796875,
|
||
:y2 957.46875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3198.5,
|
||
:x2 0,
|
||
:y2 3217.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3214.5,
|
||
:x2 0,
|
||
:y2 3233.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3230.5,
|
||
:x2 0,
|
||
:y2 3249.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3246.5,
|
||
:x2 0,
|
||
:y2 3265.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 2},
|
||
:content {:text "The meta-model represents the abstract syntax for language at hand (classes with their features, including names, attributes, and references), while the augmented EBNF expression describes the concrete syntax and its mapping to specific parts of the meta-model."},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e0cdd3-9ac3-4d9a-9acf-afae8a3fd58c",
|
||
:page 3,
|
||
:position {:bounding {:x1 0,
|
||
:y1 360.1484375,
|
||
:x2 488.628173828125,
|
||
:y2 1969.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 160.92929077148438,
|
||
:y1 360.1484375,
|
||
:x2 488.628173828125,
|
||
:y2 378.6484375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 379.9453125,
|
||
:x2 403.3943786621094,
|
||
:y2 398.4453125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 1950.5,
|
||
:x2 0,
|
||
:y2 1969.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 3},
|
||
:content {:text "This AST can then be further processed or used for various purposes in language development"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e0ce58-db86-488e-a4c5-a2086a27c854",
|
||
:page 3,
|
||
:position {:bounding {:x1 0,
|
||
:y1 500.59375,
|
||
:x2 492.843505859375,
|
||
:y2 2081.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 161.48538208007812,
|
||
:y1 500.59375,
|
||
:x2 492.56304931640625,
|
||
:y2 519.09375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 520.53125,
|
||
:x2 492.843505859375,
|
||
:y2 539.03125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 540.4609375,
|
||
:x2 414.4206848144531,
|
||
:y2 558.9609375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2046.5,
|
||
:x2 0,
|
||
:y2 2065.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2062.5,
|
||
:x2 0,
|
||
:y2 2081.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 3},
|
||
:content {:text "Their approach includes 54 optimization rules extracted from seven sample languages, which are used to optimize the generated grammar (explained above)."},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1d8ab-6f9b-42ea-8dd4-6e5c616fde40",
|
||
:page 3,
|
||
:position {:bounding {:x1 197.4453125,
|
||
:y1 546.6328125,
|
||
:x2 318.132080078125,
|
||
:y2 563.6328125,
|
||
:width 927,
|
||
:height 1199.6470588235293},
|
||
:rects ({:x1 197.4453125,
|
||
:y1 546.6328125,
|
||
:x2 318.132080078125,
|
||
:y2 563.6328125,
|
||
:width 927,
|
||
:height 1199.6470588235293}),
|
||
:page 3},
|
||
:content {:text "AddKeywordToAttr"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1d8b1-836e-41f5-b936-316ffeed2bc7",
|
||
:page 3,
|
||
:position {:bounding {:x1 280.5078125,
|
||
:y1 564.75,
|
||
:x2 431.3662109375,
|
||
:y2 581.75,
|
||
:width 927,
|
||
:height 1199.6470588235293},
|
||
:rects ({:x1 280.5078125,
|
||
:y1 564.75,
|
||
:x2 431.3662109375,
|
||
:y2 581.75,
|
||
:width 927,
|
||
:height 1199.6470588235293}),
|
||
:page 3},
|
||
:content {:text "ChangeBracesToSquare"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1d974-15dc-4bdd-a228-340430802c51",
|
||
:page 3,
|
||
:position {:bounding {:x1 140.52487182617188,
|
||
:y1 839.3046875,
|
||
:x2 275.85052490234375,
|
||
:y2 857.8046875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 140.52487182617188,
|
||
:y1 839.3046875,
|
||
:x2 275.85052490234375,
|
||
:y2 857.8046875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 3},
|
||
:content {:text "GrammarOptimizer "},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1d9d1-52f8-44c7-8f8f-b91f1eceed26",
|
||
:page 3,
|
||
:position {:bounding {:x1 0,
|
||
:y1 294.9375,
|
||
:x2 932.7720947265625,
|
||
:y2 2753.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 768.068603515625,
|
||
:y1 294.9375,
|
||
:x2 932.7720947265625,
|
||
:y2 313.4375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 314.875,
|
||
:x2 929.9608154296875,
|
||
:y2 333.375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 334.8046875,
|
||
:x2 641.0728149414062,
|
||
:y2 353.3046875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2718.5,
|
||
:x2 0,
|
||
:y2 2737.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2734.5,
|
||
:x2 0,
|
||
:y2 2753.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 3},
|
||
:content {:text "the names of the grammar rule, of the attribute name, of the current type, and of the new type"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1d9d4-f8b3-4420-b23f-76b4a9a96290",
|
||
:page 3,
|
||
:position {:bounding {:x1 529.8828125,
|
||
:y1 355.6875,
|
||
:x2 662.721435546875,
|
||
:y2 374.6875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 529.8828125,
|
||
:y1 355.6875,
|
||
:x2 662.721435546875,
|
||
:y2 374.6875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 3},
|
||
:content {:text "GrammarOptimizer"},
|
||
:properties {:color "blue"}}
|
||
{:id #uuid "64e1d9de-a271-4fb0-b82a-f8f14e39ea60",
|
||
:page 3,
|
||
:position {:bounding {:x1 0,
|
||
:y1 395.5546875,
|
||
:x2 934.164794921875,
|
||
:y2 2817.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 568.8515625,
|
||
:y1 395.5546875,
|
||
:x2 934.164794921875,
|
||
:y2 414.5546875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 415.484375,
|
||
:x2 662.721435546875,
|
||
:y2 434.484375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2798.5,
|
||
:x2 0,
|
||
:y2 2817.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 3},
|
||
:content {:text "go.changeTypeOfAttr(\"SiteWithModal\", \"name\",\"EString\", \"ID\")"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1da20-8965-4b39-8a79-7fca64d9cafe",
|
||
:page 3,
|
||
:position {:bounding {:x1 529.8828125,
|
||
:y1 480.6640625,
|
||
:x2 831.950439453125,
|
||
:y2 499.1640625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 529.8828125,
|
||
:y1 480.6640625,
|
||
:x2 831.950439453125,
|
||
:y2 499.1640625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 3},
|
||
:content {:text "Recovery of grammars and meta-models"},
|
||
:properties {:color "blue"}}
|
||
{:id #uuid "64e1da25-cc3d-4fbb-9e96-9dca9180c573",
|
||
:page 3,
|
||
:position {:bounding {:x1 529.8828125,
|
||
:y1 759.578125,
|
||
:x2 766.5764770507812,
|
||
:y2 778.078125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 529.8828125,
|
||
:y1 759.578125,
|
||
:x2 766.5764770507812,
|
||
:y2 778.078125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 3},
|
||
:content {:text "Co-evolution in MDE contexts"},
|
||
:properties {:color "blue"}}
|
||
{:id #uuid "64e1da2b-319e-47a8-a020-e409e8b06e20",
|
||
:page 4,
|
||
:position {:bounding {:x1 89.3515625,
|
||
:y1 511.9453125,
|
||
:x2 288.8764343261719,
|
||
:y2 530.4453125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 89.3515625,
|
||
:y1 511.9453125,
|
||
:x2 288.8764343261719,
|
||
:y2 530.4453125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 4},
|
||
:content {:text "Automated rule extraction"},
|
||
:properties {:color "blue"}}
|
||
{:id #uuid "64e1da2f-4252-419f-bc9a-95ba6f5cd81f",
|
||
:page 4,
|
||
:position {:bounding {:x1 89.9609375,
|
||
:y1 770.9296875,
|
||
:x2 383.067626953125,
|
||
:y2 789.4296875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 89.9609375,
|
||
:y1 770.9296875,
|
||
:x2 383.067626953125,
|
||
:y2 789.4296875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 4},
|
||
:content {:text "From meta-models to graph grammars"},
|
||
:properties {:color "blue"}}
|
||
{:id #uuid "64e1da34-f23c-458a-a7eb-6f8b7532e031",
|
||
:page 4,
|
||
:position {:bounding {:x1 89.453125,
|
||
:y1 1010.1171875,
|
||
:x2 240.166015625,
|
||
:y2 1028.6171875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 89.453125,
|
||
:y1 1010.1171875,
|
||
:x2 240.166015625,
|
||
:y2 1028.6171875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 4},
|
||
:content {:text "Text-based merging"},
|
||
:properties {:color "blue"}}
|
||
{:id #uuid "64e1da38-b71a-4cce-b90d-5624879bdb3a",
|
||
:page 4,
|
||
:position {:bounding {:x1 529.8828125,
|
||
:y1 651.34375,
|
||
:x2 699.5478515625,
|
||
:y2 669.84375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 529.8828125,
|
||
:y1 651.34375,
|
||
:x2 699.5478515625,
|
||
:y2 669.84375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 4},
|
||
:content {:text "Grammar convergence"},
|
||
:properties {:color "blue"}}
|
||
{:id #uuid "64e1dc50-d4e5-49cd-94e3-e51db48dbe01",
|
||
:page 3,
|
||
:position {:bounding {:x1 0,
|
||
:y1 1118.2265625,
|
||
:x2 931.70166015625,
|
||
:y2 3409.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 690.0475463867188,
|
||
:y1 1118.2265625,
|
||
:x2 931.70166015625,
|
||
:y2 1136.7265625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 1138.15625,
|
||
:x2 930.023681640625,
|
||
:y2 1156.65625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 1158.0859375,
|
||
:x2 929.9554443359375,
|
||
:y2 1176.5859375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.2734375,
|
||
:y1 1178.0234375,
|
||
:x2 827.136962890625,
|
||
:y2 1196.5234375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3358.5,
|
||
:x2 0,
|
||
:y2 3377.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3374.5,
|
||
:x2 0,
|
||
:y2 3393.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3390.5,
|
||
:x2 0,
|
||
:y2 3409.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 3},
|
||
:content {:text "However, except for GrammarOptimizer [ 47] (described in Sect. 2), on which we build and improve with our contribution, we are not aware of previous work on meta-model/grammar co-evolution"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1dc59-d63d-4f22-b499-b2762c903e0a",
|
||
:page 4,
|
||
:position {:bounding {:x1 0,
|
||
:y1 511.9453125,
|
||
:x2 492.01458740234375,
|
||
:y2 2433.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 293.0390625,
|
||
:y1 511.9453125,
|
||
:x2 492.01458740234375,
|
||
:y2 530.4453125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 531.8828125,
|
||
:x2 490.0394287109375,
|
||
:y2 550.3828125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 551.8125,
|
||
:x2 154.389892578125,
|
||
:y2 570.3125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2398.5,
|
||
:x2 0,
|
||
:y2 2417.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2414.5,
|
||
:x2 0,
|
||
:y2 2433.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 4},
|
||
:content {:text "A line of work focuses on automating the extraction of transformation rules in specific contexts."},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1dc9b-d7ec-436a-ac0b-67090649cc46",
|
||
:page 4,
|
||
:position {:bounding {:x1 0,
|
||
:y1 731.0703125,
|
||
:x2 490.0274658203125,
|
||
:y2 2593.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 382.9317321777344,
|
||
:y1 731.0703125,
|
||
:x2 490.0274658203125,
|
||
:y2 749.5703125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 751,
|
||
:x2 409.6556396484375,
|
||
:y2 769.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2574.5,
|
||
:x2 0,
|
||
:y2 2593.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 4},
|
||
:content {:text " we focus on the automated extraction of configurations of rules."},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1dcca-37ef-4455-808b-7696042f6495",
|
||
:page 4,
|
||
:position {:bounding {:x1 0,
|
||
:y1 890.5234375,
|
||
:x2 492.8455810546875,
|
||
:y2 2737.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 133.52423095703125,
|
||
:y1 890.5234375,
|
||
:x2 490.0386962890625,
|
||
:y2 909.0234375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 910.453125,
|
||
:x2 492.8455810546875,
|
||
:y2 928.953125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 930.390625,
|
||
:x2 190.40957641601562,
|
||
:y2 948.890625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2702.5,
|
||
:x2 0,
|
||
:y2 2721.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2718.5,
|
||
:x2 0,
|
||
:y2 2737.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 4},
|
||
:content {:text "double-pushout approach to graph rewriting, using advanced transformation features such as negative application conditions."},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1dcd7-05aa-4f33-b90b-93ecab7ba145",
|
||
:page 4,
|
||
:position {:bounding {:x1 0,
|
||
:y1 950.3203125,
|
||
:x2 490.038818359375,
|
||
:y2 2785.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 89.9609375,
|
||
:y1 950.3203125,
|
||
:x2 490.0311279296875,
|
||
:y2 968.8203125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 970.25,
|
||
:x2 490.038818359375,
|
||
:y2 988.75,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.3515625,
|
||
:y1 990.1875,
|
||
:x2 387.4394226074219,
|
||
:y2 1008.6875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2750.5,
|
||
:x2 0,
|
||
:y2 2769.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2766.5,
|
||
:x2 0,
|
||
:y2 2785.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 4},
|
||
:content {:text "avoid the use of such advanced features that make analysis more complicated, while being sufficient for meta-models with arbitrary multiplicities and inheritance"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1dd53-aec6-4c28-bbb8-4b6b7576fe54",
|
||
:page 4,
|
||
:position {:bounding {:x1 0,
|
||
:y1 671.2734375,
|
||
:x2 932.76416015625,
|
||
:y2 3121.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 771.957275390625,
|
||
:y1 671.2734375,
|
||
:x2 929.9761962890625,
|
||
:y2 689.7734375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 691.203125,
|
||
:x2 932.76416015625,
|
||
:y2 709.703125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 711.1328125,
|
||
:x2 930.281982421875,
|
||
:y2 729.6328125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 731.0703125,
|
||
:x2 611.2991333007812,
|
||
:y2 749.5703125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3070.5,
|
||
:x2 0,
|
||
:y2 3089.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3086.5,
|
||
:x2 0,
|
||
:y2 3105.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3102.5,
|
||
:x2 0,
|
||
:y2 3121.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 4},
|
||
:content {:text "Grammar convergence aims to extract a series of transformations to make two considered grammars syntactically identical, which is similar to our goal. "},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1dddc-7e7e-4bc8-a57c-ddf2c0936178",
|
||
:page 5,
|
||
:position {:bounding {:x1 0,
|
||
:y1 201.75,
|
||
:x2 491.8680419921875,
|
||
:y2 1889.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 297.40936279296875,
|
||
:y1 201.75,
|
||
:x2 490.4796142578125,
|
||
:y2 220.25,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.3515625,
|
||
:y1 221.6796875,
|
||
:x2 491.8680419921875,
|
||
:y2 240.1796875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 241.609375,
|
||
:x2 491.26190185546875,
|
||
:y2 260.109375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.3515625,
|
||
:y1 261.546875,
|
||
:x2 319.5613708496094,
|
||
:y2 280.046875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 1838.5,
|
||
:x2 0,
|
||
:y2 1857.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 1854.5,
|
||
:x2 0,
|
||
:y2 1873.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 1870.5,
|
||
:x2 0,
|
||
:y2 1889.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 5},
|
||
:content {:text "We decided to directly work with a subset of six of their considered languages–Bibtex, DOT, EAST-ADL (full version), SML, Xcore, and Xenia–, which has the following benefits: "},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1de5d-ab7d-4158-91b2-641011a88972",
|
||
:page 5,
|
||
:position {:bounding {:x1 0,
|
||
:y1 420.8671875,
|
||
:x2 492.8421173095703,
|
||
:y2 2049.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 165.17872619628906,
|
||
:y1 420.8671875,
|
||
:x2 492.8421173095703,
|
||
:y2 439.3671875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 440.796875,
|
||
:x2 490.4769287109375,
|
||
:y2 459.296875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 460.734375,
|
||
:x2 329.29998779296875,
|
||
:y2 479.234375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2014.5,
|
||
:x2 0,
|
||
:y2 2033.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2030.5,
|
||
:x2 0,
|
||
:y2 2049.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 5},
|
||
:content {:text " that four of their considered languages had complications that led to a lack of full support (e.g., using OCL as part of the grammar definition). "},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1de84-44bb-49ca-88b6-8700e5e14a3c",
|
||
:page 5,
|
||
:position {:bounding {:x1 0,
|
||
:y1 799.4453125,
|
||
:x2 492.84375,
|
||
:y2 2321.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 262.87744140625,
|
||
:y1 799.4453125,
|
||
:x2 492.84375,
|
||
:y2 817.9453125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 819.375,
|
||
:x2 398.26220703125,
|
||
:y2 837.875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2302.5,
|
||
:x2 0,
|
||
:y2 2321.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 5},
|
||
:content {:text "enerated grammar (i.e., the grammar newly generated from the meta-model). "},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1de9a-17be-4d49-9469-77fbdb62cb0c",
|
||
:page 5,
|
||
:position {:bounding {:x1 0,
|
||
:y1 819.375,
|
||
:x2 490.040283203125,
|
||
:y2 2369.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 398.2548522949219,
|
||
:y1 819.375,
|
||
:x2 490.037841796875,
|
||
:y2 837.875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 839.3046875,
|
||
:x2 489.46563720703125,
|
||
:y2 857.8046875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 859.2421875,
|
||
:x2 490.040283203125,
|
||
:y2 877.7421875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 879.171875,
|
||
:x2 157.76889038085938,
|
||
:y2 897.671875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2318.5,
|
||
:x2 0,
|
||
:y2 2337.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2334.5,
|
||
:x2 0,
|
||
:y2 2353.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2350.5,
|
||
:x2 0,
|
||
:y2 2369.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 5},
|
||
:content {:text "We observed that EAST-ADL and Bibtex did not have original grammars in Xtext, so we directly adopted the optimized grammars from [ 47 ] "},
|
||
:properties {:color "red"}}
|
||
{:id #uuid "64e1df18-de10-46c9-88b1-1ff182010d26",
|
||
:page 5,
|
||
:position {:bounding {:x1 0,
|
||
:y1 998.765625,
|
||
:x2 492.850830078125,
|
||
:y2 2481.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 426.3458251953125,
|
||
:y1 998.765625,
|
||
:x2 492.850830078125,
|
||
:y2 1017.265625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 1018.6953125,
|
||
:x2 492.838134765625,
|
||
:y2 1037.1953125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 88.8359375,
|
||
:y1 1038.625,
|
||
:x2 120.53959655761719,
|
||
:y2 1057.125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2446.5,
|
||
:x2 0,
|
||
:y2 2465.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2462.5,
|
||
:x2 0,
|
||
:y2 2481.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 5},
|
||
:content {:text "We developed the initial version of ConfigGenerator based on EASTADL"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1df28-d6d1-4b9c-81bd-8f3107355f7b",
|
||
:page 5,
|
||
:position {:bounding {:x1 0,
|
||
:y1 1078.4921875,
|
||
:x2 490.35853576660156,
|
||
:y2 2561.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 139.2665557861328,
|
||
:y1 1078.4921875,
|
||
:x2 490.35853576660156,
|
||
:y2 1096.9921875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 1098.2890625,
|
||
:x2 490.03155517578125,
|
||
:y2 1116.7890625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 1118.2265625,
|
||
:x2 489.8935546875,
|
||
:y2 1136.7265625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 1138.15625,
|
||
:x2 302.47216796875,
|
||
:y2 1156.65625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2510.5,
|
||
:x2 0,
|
||
:y2 2529.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2526.5,
|
||
:x2 0,
|
||
:y2 2545.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2542.5,
|
||
:x2 0,
|
||
:y2 2561.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 5},
|
||
:content {:text "Each time we implemented a comparison method for a specific grammar element (e.g., comparing line orders), we applied it to compare two EAST-ADL grammars and check the selected optimization rules."},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1df86-b753-4ace-9356-2215f636a114",
|
||
:page 5,
|
||
:position {:bounding {:x1 0,
|
||
:y1 201.75,
|
||
:x2 929.9557495117188,
|
||
:y2 2689.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 651.8396606445312,
|
||
:y1 201.75,
|
||
:x2 929.9557495117188,
|
||
:y2 220.25,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 221.6796875,
|
||
:x2 778.397216796875,
|
||
:y2 240.1796875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2670.5,
|
||
:x2 0,
|
||
:y2 2689.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 5},
|
||
:content {:text "in Xenia’s target grammar, some different attributes are placed on the same line"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1dfa3-526d-403d-b17b-0b94698219b2",
|
||
:page 5,
|
||
:position {:bounding {:x1 637.8968505859375,
|
||
:y1 383.515625,
|
||
:x2 751.6469116210938,
|
||
:y2 402.015625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 637.8968505859375,
|
||
:y1 383.515625,
|
||
:x2 751.6469116210938,
|
||
:y2 402.015625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 5},
|
||
:content {:text "ConfigGenerator"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1e050-7e5d-4ef9-ba77-12891b81ef0a",
|
||
:page 5,
|
||
:position {:bounding {:x1 560.5986328125,
|
||
:y1 767.1015625,
|
||
:x2 885.8076171875,
|
||
:y2 785.6015625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 560.5986328125,
|
||
:y1 767.1015625,
|
||
:x2 885.8076171875,
|
||
:y2 785.6015625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 5},
|
||
:content {:text "extracting the optimization rule configurations. "},
|
||
:properties {:color "yellow"}}
|
||
{:id #uuid "64e1e0be-512a-4939-afe9-fbe3c1f052e7",
|
||
:page 5,
|
||
:position {:bounding {:x1 0,
|
||
:y1 919.0390625,
|
||
:x2 929.96142578125,
|
||
:y2 3233.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 733.8628540039062,
|
||
:y1 919.0390625,
|
||
:x2 929.9561767578125,
|
||
:y2 937.5390625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 938.96875,
|
||
:x2 929.96142578125,
|
||
:y2 957.46875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 958.8984375,
|
||
:x2 836.22265625,
|
||
:y2 977.3984375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3198.5,
|
||
:x2 0,
|
||
:y2 3217.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3214.5,
|
||
:x2 0,
|
||
:y2 3233.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 5},
|
||
:content {:text " optimized grammar and the target grammar of each language, based on a one-to-one comparison of corresponding grammar rules."},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1e1e4-44c6-4114-87aa-c5fdf8dc0407",
|
||
:page 5,
|
||
:position {:bounding {:x1 0,
|
||
:y1 1158.0859375,
|
||
:x2 930.0005493164062,
|
||
:y2 3409.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 695.6163330078125,
|
||
:y1 1158.0859375,
|
||
:x2 930.0005493164062,
|
||
:y2 1176.5859375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 1178.0234375,
|
||
:x2 929.9649658203125,
|
||
:y2 1196.5234375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3390.5,
|
||
:x2 0,
|
||
:y2 3409.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 5},
|
||
:content {:text "The 2nd column shows the number of lines of optimization rule configurations used by Zhang"},
|
||
:properties {:color "red"}}
|
||
{:id #uuid "64e1e25b-ac30-4764-88f5-31b416bb09bf",
|
||
:page 6,
|
||
:position {:bounding {:x1 0,
|
||
:y1 767.1015625,
|
||
:x2 490.039306640625,
|
||
:y2 2273.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 248.5777587890625,
|
||
:y1 767.1015625,
|
||
:x2 490.0369873046875,
|
||
:y2 785.6015625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 787.0390625,
|
||
:x2 490.039306640625,
|
||
:y2 805.5390625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 806.96875,
|
||
:x2 488.39556884765625,
|
||
:y2 825.46875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2238.5,
|
||
:x2 0,
|
||
:y2 2257.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2254.5,
|
||
:x2 0,
|
||
:y2 2273.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 6},
|
||
:content {:text "“Diff” represents grammar rules that are not identical, and \"Percent” indicates the percentage of grammar rules that are identical between the two grammars"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1e285-1cd9-4296-8678-6f3f85d54229",
|
||
:page 6,
|
||
:position {:bounding {:x1 0,
|
||
:y1 871.9140625,
|
||
:x2 492.84759521484375,
|
||
:y2 2369.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 89.9609375,
|
||
:y1 871.9140625,
|
||
:x2 492.84759521484375,
|
||
:y2 890.4140625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 891.84375,
|
||
:x2 490.0362548828125,
|
||
:y2 910.34375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 911.7734375,
|
||
:x2 490.0335693359375,
|
||
:y2 930.2734375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 931.7109375,
|
||
:x2 490.0391845703125,
|
||
:y2 950.2109375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 89.9609375,
|
||
:y1 951.640625,
|
||
:x2 407.7397155761719,
|
||
:y2 970.140625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2302.5,
|
||
:x2 0,
|
||
:y2 2321.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2318.5,
|
||
:x2 0,
|
||
:y2 2337.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2334.5,
|
||
:x2 0,
|
||
:y2 2353.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2350.5,
|
||
:x2 0,
|
||
:y2 2369.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 6},
|
||
:content {:text "In this section we present the ConfigGenerator, which creates an optimization rule configuration based on a generated grammar and a target grammar, to enable a re-application of manually defined grammar changes after a meta-model changed and a new grammar was generated"},
|
||
:properties {:color "purple"}}
|
||
{:id #uuid "64e1e2ed-f523-4a16-8239-b399981966ee",
|
||
:page 6,
|
||
:position {:bounding {:x1 133.4140625,
|
||
:y1 1138.15625,
|
||
:x2 491.77685546875,
|
||
:y2 1156.65625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 133.4140625,
|
||
:y1 1138.15625,
|
||
:x2 491.77685546875,
|
||
:y2 1156.65625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 6},
|
||
:content {:text "A grammar rule name is unique across the grammar."},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1e486-fa7e-4a00-9470-ec45ccb78907",
|
||
:page 6,
|
||
:position {:bounding {:x1 573.3359375,
|
||
:y1 448.3203125,
|
||
:x2 927.3573608398438,
|
||
:y2 466.8203125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 573.3359375,
|
||
:y1 448.3203125,
|
||
:x2 927.3573608398438,
|
||
:y2 466.8203125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 6},
|
||
:content {:text "An attribute name is unique within a grammar rule"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1e498-ee8a-4869-a30c-5615935929c2",
|
||
:page 6,
|
||
:position {:bounding {:x1 0,
|
||
:y1 508.1171875,
|
||
:x2 930.41796875,
|
||
:y2 2625.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 573.3359375,
|
||
:y1 508.1171875,
|
||
:x2 930.41796875,
|
||
:y2 526.6171875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 573.953125,
|
||
:y1 528.0546875,
|
||
:x2 930.0259399414062,
|
||
:y2 546.5546875,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 573.953125,
|
||
:y1 547.984375,
|
||
:x2 636.30126953125,
|
||
:y2 566.484375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2590.5,
|
||
:x2 0,
|
||
:y2 2609.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2606.5,
|
||
:x2 0,
|
||
:y2 2625.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 6},
|
||
:content {:text "Attribute names are not modified by users when they manually create a target grammar out of a generated grammar."},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e1e4dc-38e1-484c-af23-aa458f289928",
|
||
:page 6,
|
||
:position {:bounding {:x1 0,
|
||
:y1 739.6484375,
|
||
:x2 932.7901000976562,
|
||
:y2 2785.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 546.515625,
|
||
:y1 739.6484375,
|
||
:x2 932.7901000976562,
|
||
:y2 758.1484375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 759.578125,
|
||
:x2 932.7733154296875,
|
||
:y2 778.078125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8828125,
|
||
:y1 779.515625,
|
||
:x2 680.312255859375,
|
||
:y2 798.015625,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2750.5,
|
||
:x2 0,
|
||
:y2 2769.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 2766.5,
|
||
:x2 0,
|
||
:y2 2785.5,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 6},
|
||
:content {:text "Figure 3 illustrates the internal workflow of ConfigGenerator for selecting the required optimization rules by comparing two grammars. "},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e24686-5416-4ba2-95ff-112bcb7cb9a4",
|
||
:page 6,
|
||
:position {:bounding {:x1 0,
|
||
:y1 624.0833435058594,
|
||
:x2 632.9901733398438,
|
||
:y2 2945.666748046875,
|
||
:width 693,
|
||
:height 896.8235294117646},
|
||
:rects ({:x1 466.86431884765625,
|
||
:y1 624.0833435058594,
|
||
:x2 631.802734375,
|
||
:y2 636.75,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 360.01043701171875,
|
||
:y1 637.625,
|
||
:x2 632.9901733398438,
|
||
:y2 650.2916870117188,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 360.01043701171875,
|
||
:y1 651.1666870117188,
|
||
:x2 631.7456665039062,
|
||
:y2 663.8333435058594,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 360.01043701171875,
|
||
:y1 664.7083435058594,
|
||
:x2 579.2908935546875,
|
||
:y2 677.375,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 0,
|
||
:y1 2894.33349609375,
|
||
:x2 0,
|
||
:y2 2913.666748046875,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 0,
|
||
:y1 2910.33349609375,
|
||
:x2 0,
|
||
:y2 2929.666748046875,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 0,
|
||
:y1 2926.33349609375,
|
||
:x2 0,
|
||
:y2 2945.666748046875,
|
||
:width 693,
|
||
:height 896.8235294117646}),
|
||
:page 6},
|
||
:content {:text "If no match is found, it indicates that the grammar rule has been deleted in the target grammar, thereby requiring the selection and parameterization of an optimization rule for deleting that grammar rule"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e24776-03ab-4463-a85f-82b7eba05dd9",
|
||
:page 7,
|
||
:position {:bounding {:x1 0,
|
||
:y1 513.0573310852051,
|
||
:x2 337.44114685058594,
|
||
:y2 2625.6668281555176,
|
||
:width 693,
|
||
:height 896.8235294117646},
|
||
:rects ({:x1 72.41667175292969,
|
||
:y1 513.0573310852051,
|
||
:x2 337.44114685058594,
|
||
:y2 525.7239570617676,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 61.11979293823242,
|
||
:y1 526.5989570617676,
|
||
:x2 334.7623405456543,
|
||
:y2 539.2656440734863,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 61.11979293823242,
|
||
:y1 540.1406440734863,
|
||
:x2 332.4995231628418,
|
||
:y2 552.8073310852051,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 0,
|
||
:y1 2590.3333320617676,
|
||
:x2 0,
|
||
:y2 2609.6668281555176,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 0,
|
||
:y1 2606.3333320617676,
|
||
:x2 0,
|
||
:y2 2625.6668281555176,
|
||
:width 693,
|
||
:height 896.8235294117646}),
|
||
:page 7},
|
||
:content {:text "After both traversals are completed, ConfigGenerator yields an optimization rule configuration with the selected and parameterized optimization rules and writes it into a text file."},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e2477c-a245-4776-b190-58365103b087",
|
||
:page 7,
|
||
:position {:bounding {:x1 0,
|
||
:y1 486.0625190734863,
|
||
:x2 332.8537292480469,
|
||
:y2 2577.6668281555176,
|
||
:width 693,
|
||
:height 896.8235294117646},
|
||
:rects ({:x1 96.22181701660156,
|
||
:y1 486.0625190734863,
|
||
:x2 332.8537292480469,
|
||
:y2 498.7292060852051,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 61.11979293823242,
|
||
:y1 499.5156440734863,
|
||
:x2 180.30900192260742,
|
||
:y2 512.1823310852051,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 0,
|
||
:y1 2558.3333320617676,
|
||
:x2 0,
|
||
:y2 2577.6668281555176,
|
||
:width 693,
|
||
:height 896.8235294117646}),
|
||
:page 7},
|
||
:content {:text "n optimization rule for adding the grammar rule is selected and parameterize"},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e24814-5936-4f70-90e2-4a3b525ab94a",
|
||
:page 7,
|
||
:position {:bounding {:x1 0,
|
||
:y1 540.1406555175781,
|
||
:x2 631.744873046875,
|
||
:y2 3025.6668395996094,
|
||
:width 693,
|
||
:height 896.8235294117646},
|
||
:rects ({:x1 423.2237243652344,
|
||
:y1 540.1406555175781,
|
||
:x2 631.743408203125,
|
||
:y2 552.8073120117188,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 360.01043701171875,
|
||
:y1 553.6823120117188,
|
||
:x2 631.744873046875,
|
||
:y2 566.3489685058594,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 360.01043701171875,
|
||
:y1 567.2239685058594,
|
||
:x2 417.45758056640625,
|
||
:y2 579.8906555175781,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 0,
|
||
:y1 2990.3333435058594,
|
||
:x2 0,
|
||
:y2 3009.6668395996094,
|
||
:width 693,
|
||
:height 896.8235294117646}
|
||
{:x1 0,
|
||
:y1 3006.3333435058594,
|
||
:x2 0,
|
||
:y2 3025.6668395996094,
|
||
:width 693,
|
||
:height 896.8235294117646}),
|
||
:page 7},
|
||
:content {:text "sing regular expressions, we separate different attributes into distinct lines, ensuring that each attribute has its own line."},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e3388f-348f-4c5c-a990-ac5056d94e21",
|
||
:page 4,
|
||
:position {:bounding {:x1 86,
|
||
:y1 115,
|
||
:x2 939,
|
||
:y2 472,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects (),
|
||
:page 4},
|
||
:content {:text "[:span]", :image 1692612748932},
|
||
:properties {:color "green"}}
|
||
{:id #uuid "64e37cd9-fbab-48b1-8d2a-1ce73c5d521d",
|
||
:page 8,
|
||
:position {:bounding {:x1 0,
|
||
:y1 918.6979370117188,
|
||
:x2 932.7708740234375,
|
||
:y2 3313.33349609375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 546.5104370117188,
|
||
:y1 918.6979370117188,
|
||
:x2 929.6995849609375,
|
||
:y2 937.3646240234375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8854370117188,
|
||
:y1 938.6354370117188,
|
||
:x2 929.68017578125,
|
||
:y2 957.3021240234375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8854370117188,
|
||
:y1 958.5625,
|
||
:x2 932.7708740234375,
|
||
:y2 977.2291870117188,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8854370117188,
|
||
:y1 978.5,
|
||
:x2 929.9622802734375,
|
||
:y2 997.1666870117188,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8854370117188,
|
||
:y1 998.4271240234375,
|
||
:x2 929.9603271484375,
|
||
:y2 1017.09375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 529.8854370117188,
|
||
:y1 1018.3646240234375,
|
||
:x2 755.021240234375,
|
||
:y2 1037.03125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3230,
|
||
:x2 0,
|
||
:y2 3249.33349609375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3246,
|
||
:x2 0,
|
||
:y2 3265.33349609375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3262,
|
||
:x2 0,
|
||
:y2 3281.33349609375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3278,
|
||
:x2 0,
|
||
:y2 3297.33349609375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}
|
||
{:x1 0,
|
||
:y1 3294,
|
||
:x2 0,
|
||
:y2 3313.33349609375,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 8},
|
||
:content {:text "Finally, the last columns in Table 2 summarize how the optimized grammar compares to the target grammar. The results confirm that the grammar rules in the generated grammars of EAST-ADL, Bibtex, and Xenia have been optimized to be identical to the target grammar using the extracted optimization rule configurations. I"},
|
||
:properties {:color "yellow"}}
|
||
{:id #uuid "64e37cfa-dc61-4bfc-a2a9-23332b9b5b63",
|
||
:page 9,
|
||
:position {:bounding {:x1 730.9271240234375,
|
||
:y1 165.11459350585938,
|
||
:x2 884.22119140625,
|
||
:y2 181.78125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998},
|
||
:rects ({:x1 730.9271240234375,
|
||
:y1 165.11459350585938,
|
||
:x2 884.22119140625,
|
||
:y2 181.78125,
|
||
:width 1019.9999999999999,
|
||
:height 1319.9999999999998}),
|
||
:page 9},
|
||
:content {:text "Grammar Comparison"},
|
||
:properties {:color "yellow"}}],
|
||
:extra {:page 8}}
|