pione 0.4.2 → 0.5.0.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (306) hide show
  1. checksums.yaml +8 -8
  2. data/.travis.yml +1 -1
  3. data/History.txt +6 -0
  4. data/example/ActionError/ActionError.action.md +11 -0
  5. data/example/ActionError/ActionError.pione +6 -3
  6. data/example/ActionError/ActionError.pnml +86 -0
  7. data/example/ActionError/Package.pione +2 -0
  8. data/example/ActionError/pione-package.json +5 -1
  9. data/example/CTFCorrection/CTFCorrection.action.md +46 -0
  10. data/example/CTFCorrection/CTFCorrection.pione +19 -41
  11. data/example/CTFCorrection/CTFCorrection.pnml +839 -0
  12. data/example/CTFCorrection/Package.pione +1 -0
  13. data/example/CTFCorrection/Params.pione +21 -0
  14. data/example/CTFCorrection/pione-package.json +20 -0
  15. data/example/ChildPackage/ChildPackage.pione +8 -0
  16. data/example/ChildPackage/pione-package.json +20 -0
  17. data/example/CountChar/CountChar.pione +31 -0
  18. data/example/CountChar/CountChar.pnml +239 -0
  19. data/example/CountChar/Main.pione +6 -26
  20. data/example/CountChar/Main.pnml +32 -100
  21. data/example/CountChar/Package.pione +1 -0
  22. data/example/CountChar/pione-package.json +3 -1
  23. data/example/DeferredChoice/DeferredChoice.action.md +46 -0
  24. data/example/DeferredChoice/DeferredChoice.pione +2 -7
  25. data/example/DeferredChoice/DeferredChoice.pnml +371 -0
  26. data/example/DeferredChoice/Package.pione +4 -0
  27. data/example/DeferredChoice/pione-package.json +7 -3
  28. data/example/DeferredChoiceWithPage/DeferredChoiceWithPage.action.md +34 -0
  29. data/example/DeferredChoiceWithPage/DefferredChoiceWithPage.pnml +371 -0
  30. data/example/DeferredChoiceWithPage/Package.pione +2 -0
  31. data/example/FeatureExample/FeatureExample.action.md +7 -0
  32. data/example/FeatureExample/FeatureExample.pione +7 -4
  33. data/example/FeatureExample/FeatureExample.pnml +86 -0
  34. data/example/FeatureExample/Package.pione +1 -0
  35. data/example/FeatureExample/pione-package.json +4 -0
  36. data/example/Fib/Fib.action.md +33 -0
  37. data/example/Fib/Fib.pnml +208 -0
  38. data/example/Fib/FibN.pnml +807 -0
  39. data/example/Fib/Package.pione +6 -0
  40. data/example/HelloWorld/HelloWorld.action.md +7 -0
  41. data/example/HelloWorld/HelloWorld.pione +6 -2
  42. data/example/HelloWorld/HelloWorld.pnml +86 -0
  43. data/example/HelloWorld/Package.pione +2 -0
  44. data/example/HelloWorld/pione-package.json +5 -1
  45. data/example/Interaction/Interaction.action.md +21 -0
  46. data/example/Interaction/Interaction.pnml +89 -0
  47. data/example/Interaction/Package.pione +2 -0
  48. data/example/LoopByTouch/LoopByTouch.pione +32 -12
  49. data/example/LoopByTouch/LoopByTouch.pnml +575 -0
  50. data/example/LoopByTouch/Package.pione +3 -0
  51. data/example/LoopByTouch/PairLoop.pione +6 -7
  52. data/example/LoopByTouch/PairLoop.pnml +188 -0
  53. data/example/LoopByTouch/SingleLoop.pione +6 -0
  54. data/example/LoopByTouch/SingleLoop.pnml +86 -0
  55. data/example/LoopByTouch/TripletLoop.pione +12 -13
  56. data/example/LoopByTouch/TripletLoop.pnml +239 -0
  57. data/example/LoopByTouch/pione-package.json +7 -3
  58. data/example/LucasNumber/LucasNumber.action.md +25 -0
  59. data/example/LucasNumber/LucasNumber.pnml +244 -0
  60. data/example/LucasNumber/LucasNumberN.pnml +1719 -0
  61. data/example/LucasNumber/Package.pione +2 -0
  62. data/example/MakePair/MakePair.pione +8 -10
  63. data/example/MakePair/MakePair.pnml +1141 -0
  64. data/example/MakePair/Package.pione +2 -0
  65. data/example/MakePair/pione-package.json +7 -3
  66. data/example/MakePair/scenario/case1/pione-scenario.json +30 -30
  67. data/example/MakePair/scenario/case2/pione-scenario.json +10 -10
  68. data/example/MakePair/scenario/case3/pione-scenario.json +28 -28
  69. data/example/OddSelector/OddSelector.pione +8 -8
  70. data/example/OddSelector/OddSelector.pnml +401 -0
  71. data/example/OddSelector/Package.pione +2 -0
  72. data/example/OddSelector/pione-package.json +4 -0
  73. data/example/OddSelector/scenario/pione-scenario.json +8 -8
  74. data/example/ParentPackage/ParentPackage.pione +13 -0
  75. data/example/ParentPackage/pione-package.json +18 -0
  76. data/example/PegasusWMS/Merge/Package.pione +2 -0
  77. data/example/PegasusWMS/Merge/PegasusWMSMerge.action.md +17 -0
  78. data/example/PegasusWMS/Merge/{Merge.pione → PegasusWMSMerge.pione} +9 -10
  79. data/example/PegasusWMS/Merge/PegasusWMSMerge.pnml +217 -0
  80. data/example/PegasusWMS/Merge/pione-package.json +6 -2
  81. data/example/PegasusWMS/Pipeline/Package.pione +2 -0
  82. data/example/PegasusWMS/Pipeline/PegasusWMSPipeline.action.md +17 -0
  83. data/example/PegasusWMS/Pipeline/{Pipeline.pione → PegasusWMSPipeline.pione} +7 -9
  84. data/example/PegasusWMS/Pipeline/PegasusWMSPipeline.pnml +137 -0
  85. data/example/PegasusWMS/Pipeline/pione-package.json +6 -2
  86. data/example/PegasusWMS/Split/Package.pione +2 -0
  87. data/example/PegasusWMS/Split/PegasusWMSSplit.action.md +19 -0
  88. data/example/PegasusWMS/Split/{Split.pione → PegasusWMSSplit.pione} +9 -10
  89. data/example/PegasusWMS/Split/PegasusWMSSplit.pnml +293 -0
  90. data/example/PegasusWMS/Split/pione-package.json +6 -2
  91. data/example/ScoreAggregation/Package.pione +2 -0
  92. data/example/ScoreAggregation/ScoreAggregation.action.md +56 -0
  93. data/example/ScoreAggregation/ScoreAggregation.pione +37 -76
  94. data/example/ScoreAggregation/ScoreAggregation.pnml +1221 -0
  95. data/example/ScoreAggregation/pione-package.json +6 -2
  96. data/example/ScoreAggregation/scenario/case1/pione-scenario.json +21 -21
  97. data/example/SelectRuleByParam/Package.pione +2 -0
  98. data/example/SelectRuleByParam/SelectRuleByParam.action.md +19 -0
  99. data/example/SelectRuleByParam/SelectRuleByParam.pnml +388 -0
  100. data/example/SequentialParameter/Package.pione +2 -0
  101. data/example/SequentialParameter/SequentialParameter.pione +9 -3
  102. data/example/SequentialParameter/SequentialParameter.pnml +140 -0
  103. data/example/SequentialParameter/pione-package.json +19 -0
  104. data/example/SerialProcessing/A.pione +25 -0
  105. data/example/SerialProcessing/A.pnml +395 -0
  106. data/example/SerialProcessing/B.pione +25 -0
  107. data/example/SerialProcessing/B.pnml +395 -0
  108. data/example/SerialProcessing/Package.pione +2 -0
  109. data/example/SerialProcessing/SerialProcessing.pione +9 -60
  110. data/example/SerialProcessing/SerialProcessing.pnml +160 -0
  111. data/example/SerialProcessing/pione-package.json +7 -1
  112. data/example/SieveOfEratosthenes/CreateUndeterminedNumbers.pnml +157 -0
  113. data/example/SieveOfEratosthenes/Package.pione +4 -0
  114. data/example/SieveOfEratosthenes/Sieve.pnml +1493 -0
  115. data/example/SieveOfEratosthenes/SieveOfEratosthenes.pnml +174 -0
  116. data/example/SingleParticlesWithRef/Create3dinfo.pnml +342 -0
  117. data/example/SingleParticlesWithRef/Package.pione +42 -0
  118. data/example/SingleParticlesWithRef/SingleParticlesWithRef.action.md +34 -0
  119. data/example/SingleParticlesWithRef/SingleParticlesWithRef.pnml +404 -0
  120. data/example/SingleParticlesWithRef/{Makefile → misc/Makefile} +0 -0
  121. data/example/SingleParticlesWithRef/{SingleParticlesWithRef.Display2.pione → misc/SingleParticlesWithRef.Display2.pione} +0 -0
  122. data/example/SingleParticlesWithRef/{SingleParticlesWithRef.Makefile → misc/SingleParticlesWithRef.Makefile} +0 -0
  123. data/example/SingleParticlesWithRef/{SingleParticlesWithRefFull.pione → misc/SingleParticlesWithRefFull.pione} +0 -0
  124. data/example/Sum/CalcEachLine.pione +30 -0
  125. data/example/Sum/CalcEachLine.pnml +327 -0
  126. data/example/Sum/Package.pione +2 -0
  127. data/example/Sum/Sum.action.md +35 -0
  128. data/example/Sum/Sum.pione +9 -35
  129. data/example/Sum/Sum.pnml +191 -0
  130. data/example/Sum/pione-package.json +5 -0
  131. data/example/Touch/Package.pione +2 -0
  132. data/example/Touch/Touch.pione +8 -2
  133. data/example/Touch/Touch.pnml +89 -0
  134. data/example/Touch/pione-package.json +4 -0
  135. data/example/WorkflowPatterns/01_Sequence/Package.pione +2 -0
  136. data/example/WorkflowPatterns/01_Sequence/Sequence.pione +9 -9
  137. data/example/WorkflowPatterns/01_Sequence/Sequence.pnml +191 -0
  138. data/example/WorkflowPatterns/01_Sequence/pione-package.json +19 -0
  139. data/example/WorkflowPatterns/02_PrallelSplit/Package.pione +2 -0
  140. data/example/WorkflowPatterns/02_PrallelSplit/ParallelSplit.pione +12 -12
  141. data/example/WorkflowPatterns/02_PrallelSplit/ParallelSplit.pnml +265 -0
  142. data/example/WorkflowPatterns/02_PrallelSplit/pione-package.json +19 -0
  143. data/example/WorkflowPatterns/03_Synchronization/Package.pione +2 -0
  144. data/example/WorkflowPatterns/03_Synchronization/Synchronization.pione +12 -13
  145. data/example/WorkflowPatterns/03_Synchronization/Synchronization.pnml +273 -0
  146. data/example/WorkflowPatterns/03_Synchronization/pione-package.json +19 -0
  147. data/example/WorkflowPatterns/04_ExclusiveChoice/ExclusiveChoice.pione +15 -22
  148. data/example/WorkflowPatterns/04_ExclusiveChoice/ExclusiveChoice.pnml +533 -0
  149. data/example/WorkflowPatterns/04_ExclusiveChoice/Package.pione +4 -0
  150. data/example/WorkflowPatterns/04_ExclusiveChoice/pione-package.json +19 -0
  151. data/example/WorkflowPatterns/05_SimpleMerge/Package.pione +4 -0
  152. data/example/WorkflowPatterns/05_SimpleMerge/SimpleMerge.pione +10 -18
  153. data/example/WorkflowPatterns/05_SimpleMerge/SimpleMerge.pnml +431 -0
  154. data/example/WorkflowPatterns/05_SimpleMerge/pione-package.json +19 -0
  155. data/example/WorkflowPatterns/06_MultiChoice/MultiChoice.pione +20 -28
  156. data/example/WorkflowPatterns/06_MultiChoice/MultiChoice.pnml +797 -0
  157. data/example/WorkflowPatterns/06_MultiChoice/Package.pione +5 -0
  158. data/example/WorkflowPatterns/06_MultiChoice/pione-package.json +19 -0
  159. data/example/WorkflowPatterns/07_StructuredSynchronizingMerge/Package.pione +5 -0
  160. data/example/WorkflowPatterns/07_StructuredSynchronizingMerge/StructuredSynchronizingMerge.pnml +668 -0
  161. data/example/WorkflowPatterns/08_MultiMerge/MultiMerge.pione +9 -20
  162. data/example/WorkflowPatterns/08_MultiMerge/MultiMerge.pnml +551 -0
  163. data/example/WorkflowPatterns/08_MultiMerge/Package.pione +4 -0
  164. data/example/WorkflowPatterns/08_MultiMerge/pione-package.json +19 -0
  165. data/example/WorkflowPatterns/11_ImplicitTermination/ImplicitTermination.pione +9 -17
  166. data/example/WorkflowPatterns/11_ImplicitTermination/ImplicitTermination.pnml +188 -0
  167. data/example/WorkflowPatterns/11_ImplicitTermination/Package.pione +2 -0
  168. data/example/WorkflowPatterns/11_ImplicitTermination/pione-package.json +19 -0
  169. data/example/WorkflowPatterns/12_MultipleInstancesWithoutSynchronization/MultipleInstancesWithoutSynchronization.pione +11 -11
  170. data/example/WorkflowPatterns/12_MultipleInstancesWithoutSynchronization/MultipleInstancesWithoutSynchronization.pnml +319 -0
  171. data/example/WorkflowPatterns/12_MultipleInstancesWithoutSynchronization/Package.pione +4 -0
  172. data/example/WorkflowPatterns/12_MultipleInstancesWithoutSynchronization/pione-package.json +19 -0
  173. data/example/WorkflowPatterns/13_MultipleInstancesWithDesignTimeKnowledge/MultipleInstancesWithDesignTimeKnowledge.pione +11 -11
  174. data/example/WorkflowPatterns/13_MultipleInstancesWithDesignTimeKnowledge/MultipleInstancesWithDesignTimeKnowledge.pnml +319 -0
  175. data/example/WorkflowPatterns/13_MultipleInstancesWithDesignTimeKnowledge/Package.pione +2 -0
  176. data/example/WorkflowPatterns/13_MultipleInstancesWithDesignTimeKnowledge/pione-package.json +19 -0
  177. data/example/WorkflowPatterns/14_MultipleInstancesWithRunTimeKnowledge/MultipleInstancesWithRunTimeKnowledge.pione +14 -17
  178. data/example/WorkflowPatterns/14_MultipleInstancesWithRunTimeKnowledge/MultipleInstancesWithRunTimeKnowledge.pnml +355 -0
  179. data/example/WorkflowPatterns/14_MultipleInstancesWithRunTimeKnowledge/Package.pione +4 -0
  180. data/example/WorkflowPatterns/14_MultipleInstancesWithRunTimeKnowledge/pione-package.json +19 -0
  181. data/example/WorkflowPatterns/33_GeneralizedANDJoin/GeneralizedANDJoin.pione +9 -10
  182. data/example/WorkflowPatterns/33_GeneralizedANDJoin/GeneralizedANDJoin.pnml +409 -0
  183. data/example/WorkflowPatterns/33_GeneralizedANDJoin/Package.pione +2 -0
  184. data/example/WorkflowPatterns/33_GeneralizedANDJoin/pione-package.json +19 -0
  185. data/example/WorkflowPatterns/37_LocalSynchronizingMerge/A.pione +34 -0
  186. data/example/WorkflowPatterns/37_LocalSynchronizingMerge/A.pnml +570 -0
  187. data/example/WorkflowPatterns/37_LocalSynchronizingMerge/LocalSynchronizingMerge.pione +36 -70
  188. data/example/WorkflowPatterns/37_LocalSynchronizingMerge/LocalSynchronizingMerge.pnml +854 -0
  189. data/example/WorkflowPatterns/37_LocalSynchronizingMerge/Package.pione +5 -0
  190. data/example/WorkflowPatterns/37_LocalSynchronizingMerge/pione-package.json +20 -0
  191. data/example/WorkflowPatterns/38_GeneralSynchronizingMerge/GeneralSynchronizingMerge.pnml +1003 -0
  192. data/example/WorkflowPatterns/38_GeneralSynchronizingMerge/Package.pione +6 -0
  193. data/example/WorkflowPatterns/41_ThreadMerge/A.pnml +429 -0
  194. data/example/WorkflowPatterns/41_ThreadMerge/A1.pnml +141 -0
  195. data/example/WorkflowPatterns/41_ThreadMerge/Package.pione +2 -0
  196. data/example/WorkflowPatterns/41_ThreadMerge/ThreadMerge.pnml +205 -0
  197. data/example/WorkflowPatterns/42_ThreadSplit/Package.pione +2 -0
  198. data/example/WorkflowPatterns/42_ThreadSplit/ThreadSplit.pnml +217 -0
  199. data/lib/pione/agent/job-manager.rb +4 -3
  200. data/lib/pione/agent/task-worker.rb +2 -7
  201. data/lib/pione/command.rb +1 -0
  202. data/lib/pione/command/basic-command.rb +3 -1
  203. data/lib/pione/command/command-exception.rb +14 -0
  204. data/lib/pione/command/pione-action-exec.rb +4 -1
  205. data/lib/pione/command/pione-clean.rb +13 -6
  206. data/lib/pione/command/pione-client.rb +5 -5
  207. data/lib/pione/command/pione-compile.rb +1 -1
  208. data/lib/pione/command/pione-log-format.rb +1 -1
  209. data/lib/pione/command/pione-package-add.rb +1 -1
  210. data/lib/pione/command/pione-package-build.rb +87 -32
  211. data/lib/pione/command/pione-package-remove.rb +117 -0
  212. data/lib/pione/command/pione-package.rb +1 -0
  213. data/lib/pione/command/spawner.rb +12 -3
  214. data/lib/pione/lang/boolean.rb +1 -1
  215. data/lib/pione/lang/common-parser.rb +5 -3
  216. data/lib/pione/lang/context-parser.rb +8 -2
  217. data/lib/pione/lang/context-transformer.rb +13 -3
  218. data/lib/pione/lang/context.rb +20 -2
  219. data/lib/pione/lang/data-expr.rb +1 -1
  220. data/lib/pione/lang/declaration-parser.rb +18 -4
  221. data/lib/pione/lang/declaration-transformer.rb +1 -1
  222. data/lib/pione/lang/declaration.rb +5 -3
  223. data/lib/pione/lang/definition.rb +1 -0
  224. data/lib/pione/lang/environment.rb +37 -2
  225. data/lib/pione/lang/expr.rb +10 -12
  226. data/lib/pione/lang/feature-expr.rb +1 -1
  227. data/lib/pione/lang/float.rb +1 -1
  228. data/lib/pione/lang/integer.rb +1 -1
  229. data/lib/pione/lang/keyed-sequence.rb +5 -5
  230. data/lib/pione/lang/lang-exception.rb +9 -5
  231. data/lib/pione/lang/literal-parser.rb +2 -2
  232. data/lib/pione/lang/literal-transformer.rb +3 -0
  233. data/lib/pione/lang/message.rb +3 -3
  234. data/lib/pione/lang/ordinal-sequence.rb +1 -1
  235. data/lib/pione/lang/package-expr.rb +1 -1
  236. data/lib/pione/lang/parameters.rb +1 -1
  237. data/lib/pione/lang/pione-method.rb +16 -16
  238. data/lib/pione/lang/rule-expr.rb +6 -1
  239. data/lib/pione/lang/sequence.rb +8 -3
  240. data/lib/pione/lang/string.rb +1 -1
  241. data/lib/pione/lang/ticket-expr.rb +1 -1
  242. data/lib/pione/lang/type.rb +17 -8
  243. data/lib/pione/lang/variable.rb +4 -1
  244. data/lib/pione/literate-action.rb +1 -2
  245. data/lib/pione/literate-action/document.rb +1 -1
  246. data/lib/pione/literate-action/handler.rb +22 -7
  247. data/lib/pione/literate-action/{parser.rb → markdown-parser.rb} +2 -1
  248. data/lib/pione/log/domain-log.rb +1 -1
  249. data/lib/pione/model/task-worker-broker-model.rb +1 -1
  250. data/lib/pione/package/package-database.rb +16 -2
  251. data/lib/pione/package/package-exception.rb +1 -1
  252. data/lib/pione/package/package-handler.rb +11 -7
  253. data/lib/pione/package/package-info.rb +13 -7
  254. data/lib/pione/package/package-scanner.rb +1 -1
  255. data/lib/pione/package/scenario-info.rb +2 -2
  256. data/lib/pione/pnml.rb +6 -0
  257. data/lib/pione/pnml/compiler.rb +329 -95
  258. data/lib/pione/pnml/declaration-extractor.rb +90 -0
  259. data/lib/pione/pnml/input-merge-complement.rb +17 -11
  260. data/lib/pione/pnml/input-parallelization-complement.rb +10 -6
  261. data/lib/pione/pnml/input-reduction.rb +5 -5
  262. data/lib/pione/pnml/invalid-arc-elimination.rb +2 -2
  263. data/lib/pione/pnml/io-expansion.rb +9 -5
  264. data/lib/pione/pnml/isolated-element-elimination.rb +2 -2
  265. data/lib/pione/pnml/label-extractor.rb +258 -0
  266. data/lib/pione/pnml/net-rewriter.rb +6 -4
  267. data/lib/pione/pnml/output-decomposition-complement.rb +12 -7
  268. data/lib/pione/pnml/output-reduction.rb +11 -5
  269. data/lib/pione/pnml/output-synchronization-complement.rb +11 -7
  270. data/lib/pione/pnml/parser.rb +106 -0
  271. data/lib/pione/pnml/pione-model.rb +685 -230
  272. data/lib/pione/pnml/pnml-model.rb +73 -41
  273. data/lib/pione/pnml/ticket-instantiation.rb +42 -0
  274. data/lib/pione/rule-engine/action-handler.rb +212 -135
  275. data/lib/pione/rule-engine/basic-handler.rb +29 -3
  276. data/lib/pione/rule-engine/engine-exception.rb +10 -6
  277. data/lib/pione/system/status.rb +12 -6
  278. data/lib/pione/version.rb +1 -1
  279. data/lib/rootage/help.md.erb +45 -0
  280. data/lib/rootage/help.rb +1 -0
  281. data/lib/rootage/scenario.rb +20 -2
  282. data/misc/pione-completion.bash +15 -5
  283. data/misc/pione-completion.zsh +16 -6
  284. data/test/command/spec_pione-client.rb +60 -60
  285. data/test/lang/data/context-parser.yml +12 -1
  286. data/test/lang/spec_pione-method.rb +7 -6
  287. data/test/literate-action/spec_handler.rb +19 -13
  288. data/test/literate-action/{spec_parser.rb → spec_markdown-parser.rb} +3 -3
  289. data/test/log/spec_message-log-receiver.rb +1 -1
  290. data/test/package/spec_package-info.rb +1 -1
  291. data/test/pnml/spec_input-merge-complement.rb +4 -2
  292. data/test/pnml/spec_input-parallelization-complement.rb +4 -2
  293. data/test/pnml/spec_input-reduction.rb +8 -4
  294. data/test/pnml/spec_invalid-arc-elimination.rb +2 -1
  295. data/test/pnml/spec_io-expansion.rb +4 -2
  296. data/test/pnml/spec_isolated-element-elimination.rb +2 -1
  297. data/test/pnml/spec_label-extractor.rb +100 -0
  298. data/test/pnml/spec_output-decomposition-complement.rb +4 -2
  299. data/test/pnml/spec_output-reduction.rb +8 -4
  300. data/test/pnml/spec_output-synchronization-complement.rb +4 -2
  301. data/test/pnml/spec_pione-element.rb +116 -37
  302. data/test/pnml/spec_pnml-element.rb +32 -8
  303. data/test/rule-engine/spec_action-handler.rb +12 -20
  304. metadata +159 -16
  305. data/example/CTFCorrection/package.yml +0 -1
  306. data/example/DeferredChoice/bin/ui.xml +0 -28
@@ -8,6 +8,7 @@ TestHelper.scope do |this|
8
8
 
9
9
  describe Pione::PNML::OutputReduction do
10
10
  it "should reduce nodes by `output reduction` in simple case" do
11
+ env = Lang::Environment.new
11
12
  net = PNML::Reader.read(this::SIMPLE)
12
13
 
13
14
  # save elements
@@ -17,7 +18,7 @@ TestHelper.scope do |this|
17
18
  arc_i1_A = net.find_arc(place_i1.id, transition_A.id)
18
19
 
19
20
  # apply output reduction
20
- PNML::NetRewriter.new{|rules| rules << PNML::OutputReduction}.rewrite(net)
21
+ PNML::NetRewriter.new{|rules| rules << PNML::OutputReduction}.rewrite(net, env)
21
22
 
22
23
  # test transitions
23
24
  net.transitions.size.should == 1
@@ -35,6 +36,7 @@ TestHelper.scope do |this|
35
36
  end
36
37
 
37
38
  it "should reduce nodes by `output reduction` in complex case" do
39
+ env = Lang::Environment.new
38
40
  net = PNML::Reader.read(this::COMPLEX)
39
41
 
40
42
  # save net elements
@@ -46,7 +48,7 @@ TestHelper.scope do |this|
46
48
  arc_i1_A = net.find_arc(place_i1.id, transition_A.id)
47
49
 
48
50
  # apply output reduction
49
- PNML::NetRewriter.new{|rules| rules << PNML::OutputReduction}.rewrite(net)
51
+ PNML::NetRewriter.new{|rules| rules << PNML::OutputReduction}.rewrite(net, env)
50
52
 
51
53
  # test transitions
52
54
  net.transitions.size.should == 1
@@ -68,6 +70,7 @@ TestHelper.scope do |this|
68
70
  end
69
71
 
70
72
  it "should reduce nodes by `output reduction` in long case" do
73
+ env = Lang::Environment.new
71
74
  net = PNML::Reader.read(this::LONG)
72
75
 
73
76
  # save elements
@@ -77,7 +80,7 @@ TestHelper.scope do |this|
77
80
  arc_i1_A = net.find_arc(place_i1.id, transition_A.id)
78
81
 
79
82
  # apply output reduction
80
- PNML::NetRewriter.new{|rules| rules << PNML::OutputReduction}.rewrite(net)
83
+ PNML::NetRewriter.new{|rules| rules << PNML::OutputReduction}.rewrite(net, env)
81
84
 
82
85
  # test transitions
83
86
  net.transitions.size.should == 1
@@ -95,6 +98,7 @@ TestHelper.scope do |this|
95
98
  end
96
99
 
97
100
  it "should not reduce any nodes if there aren't output reducible nodes" do
101
+ env = Lang::Environment.new
98
102
  net = PNML::Reader.read(this::DIR + "InputReductionSimple.pnml")
99
103
 
100
104
  # save net elements
@@ -103,7 +107,7 @@ TestHelper.scope do |this|
103
107
  arcs = net.arcs.clone
104
108
 
105
109
  # apply output reduction
106
- PNML::NetRewriter.new{|rules| rules << PNML::OutputReduction}.rewrite(net)
110
+ PNML::NetRewriter.new{|rules| rules << PNML::OutputReduction}.rewrite(net, env)
107
111
 
108
112
  # test
109
113
  net.places.should == places
@@ -7,6 +7,7 @@ TestHelper.scope do |this|
7
7
 
8
8
  describe Pione::PNML::OutputSynchronizationComplement do
9
9
  it "should name source place in simple case" do
10
+ env = Lang::Environment.new
10
11
  net = PNML::Reader.read(this::SIMPLE)
11
12
 
12
13
  # elements
@@ -18,7 +19,7 @@ TestHelper.scope do |this|
18
19
  place_RC = net.find_all_places_by_source_id(transition_C.id).first
19
20
 
20
21
  # apply "output synchronization complement" rule
21
- PNML::NetRewriter.new{|rules| rules << PNML::OutputSynchronizationComplement}.rewrite(net)
22
+ PNML::NetRewriter.new{|rules| rules << PNML::OutputSynchronizationComplement}.rewrite(net, env)
22
23
 
23
24
  # test
24
25
  place_RA.name.should == "'*.p1'"
@@ -27,6 +28,7 @@ TestHelper.scope do |this|
27
28
  end
28
29
 
29
30
  it "should name source place in complex case" do
31
+ env = Lang::Environment.new
30
32
  net = PNML::Reader.read(this::COMPLEX)
31
33
 
32
34
  # elements
@@ -48,7 +50,7 @@ TestHelper.scope do |this|
48
50
  place_RC_p2 = places_RC.find {|place| net.find_arc(place.id, transition_Lp2.id)}
49
51
 
50
52
  # apply "output synchronization complement" rule
51
- PNML::NetRewriter.new{|rules| rules << PNML::OutputSynchronizationComplement}.rewrite(net)
53
+ PNML::NetRewriter.new{|rules| rules << PNML::OutputSynchronizationComplement}.rewrite(net, env)
52
54
 
53
55
  # test
54
56
  place_RA_p1.name.should == "'*.p1'"
@@ -1,5 +1,54 @@
1
1
  require 'pione/test-helper'
2
2
 
3
+ describe Pione::PNML::Perspective do
4
+ def test(name, args, expected)
5
+ env = Lang::Environment.new
6
+ PNML::Perspective.send(name, env, *args).should == expected
7
+ end
8
+
9
+ def test_place(name, label, expected)
10
+ test(name, [PNML::Place.new(name: label)], expected)
11
+ end
12
+
13
+ def test_transition(name, label, expected)
14
+ test(name, [PNML::Transition.new(name: label)], expected)
15
+ end
16
+
17
+ it "should be empty places" do
18
+ test_place(:empty?, "", true)
19
+ test_place(:empty?, " ", true)
20
+ test_place(:empty?, ">", true)
21
+ test_place(:empty?, " > ", true)
22
+ test_place(:empty?, "# abc", true)
23
+ test_place(:empty?, " # a # b # c", true)
24
+ end
25
+
26
+ it "should be empty transitions" do
27
+ test_transition(:empty?, "", true)
28
+ test_transition(:empty?, " ", true)
29
+ test_transition(:empty?, "# abc", true)
30
+ test_transition(:empty?, " # a # b # c", true)
31
+ end
32
+
33
+ it "should be data places" do
34
+ test_place(:data_place?, "'*.a'", true)
35
+ test_place(:data_place?, "'*.a' # abc", true)
36
+ test_place(:data_place?, "<'*.a'", true)
37
+ test_place(:data_place?, "<'*.a' # abc", true)
38
+ test_place(:data_place?, ">'*.a'", true)
39
+ test_place(:data_place?, ">'*.a' # abc", true)
40
+ end
41
+
42
+ it "should be net input data places" do
43
+ test_place(:net_input_data_place?, "'*.a'", false)
44
+ test_place(:net_input_data_place?, "'*.a' # abc", false)
45
+ test_place(:net_input_data_place?, "<'*.a'", true)
46
+ test_place(:net_input_data_place?, "<'*.a' # abc", true)
47
+ test_place(:net_input_data_place?, ">'*.a'", false)
48
+ test_place(:net_input_data_place?, ">'*.a' # abc", false)
49
+ end
50
+ end
51
+
3
52
  describe Pione::PNML::ConstituentRule do
4
53
  it "should get declaration string" do
5
54
  PNML::ConstituentRule.new(:action, "R").tap do |rule|
@@ -15,93 +64,123 @@ describe Pione::PNML::ConstituentRule do
15
64
  end
16
65
 
17
66
  PNML::ConstituentRule.new(:action, "R").tap do |rule|
18
- rule.params << PNML::Param.new("x", "1")
19
- rule.as_declaration.should == "rule R {x: $x}"
67
+ rule.params << PNML::Param.set_of(PNML::Place.new(name: "{X: 1}"))
68
+ rule.as_declaration.should == "rule R {X: 1}"
20
69
  end
21
70
 
22
71
  PNML::ConstituentRule.new(:action, "R").tap do |rule|
23
- rule.params << PNML::Param.new("x", "1")
24
- rule.params << PNML::Param.new("y", '"abc"')
25
- rule.as_declaration.should == 'rule R {x: $x, y: $y}'
72
+ rule.params << PNML::Param.set_of(PNML::Place.new(name: "{X: 1}"))
73
+ rule.params << PNML::Param.set_of(PNML::Place.new(name: '{Y: "abc"}'))
74
+ rule.as_declaration.should == 'rule R {X: 1, Y: "abc"}'
26
75
  end
27
76
  end
28
77
  end
29
78
 
30
- describe Pione::PNML::DataCondition do
79
+ describe Pione::PNML::Data do
31
80
  it "should get input declaration string" do
32
- PNML::DataCondition.new("'a.txt'").tap do |cond|
33
- cond.as_input_declaration.should == "input 'a.txt'"
81
+ PNML::InputData.new(PNML::Place.new(name: "'a.txt'")).tap do |cond|
82
+ cond.as_declaration.should == "input 'a.txt'"
34
83
  end
35
84
 
36
- PNML::DataCondition.new("'a.txt' | 'b.txt' | 'c.txt'").tap do |cond|
37
- cond.as_input_declaration.should == "input 'a.txt' | 'b.txt' | 'c.txt'"
85
+ PNML::InputData.new(PNML::Place.new(name: "'a.txt' | 'b.txt' | 'c.txt'")).tap do |cond|
86
+ cond.as_declaration.should == "input 'a.txt' | 'b.txt' | 'c.txt'"
38
87
  end
39
88
 
40
- PNML::DataCondition.new("'a.txt'").tap do |cond|
89
+ PNML::InputData.new(PNML::Place.new(name: "'a.txt'")).tap do |cond|
41
90
  cond.input_nonexistable = true
42
- cond.as_input_declaration.should == "input 'a.txt' or null"
91
+ cond.as_declaration.should == "input 'a.txt' or null"
43
92
  end
44
93
 
45
- PNML::DataCondition.new("'*.txt'").tap do |cond|
46
- cond.as_input_declaration.should == "input '*.txt'"
94
+ PNML::InputData.new(PNML::Place.new(name: "'*.txt'")).tap do |cond|
95
+ cond.as_declaration.should == "input '*.txt'"
47
96
  end
48
97
 
49
- PNML::DataCondition.new("'a.txt'").tap do |cond|
98
+ PNML::InputData.new(PNML::Place.new(name: "'a.txt'")).tap do |cond|
50
99
  cond.input_distribution = :all
51
- cond.as_input_declaration.should == "input ('a.txt').all"
100
+ cond.as_declaration.should == "input ('a.txt').all"
52
101
  end
53
102
 
54
- PNML::DataCondition.new("'a.txt'").tap do |cond|
55
- cond.input_priority = 100
56
- cond.as_input_declaration.should == "input 'a.txt'"
103
+ PNML::InputData.new(PNML::Place.new(name: "'a.txt' #100")).tap do |cond|
104
+ cond.priority.should == 100
105
+ cond.as_declaration.should == "input 'a.txt'"
57
106
  end
58
107
  end
59
108
 
60
109
  it "should get output declaration string" do
61
- PNML::DataCondition.new("'a.txt'").tap do |cond|
62
- cond.as_output_declaration.should == "output 'a.txt'"
110
+ PNML::OutputData.new(PNML::Place.new(name: "'a.txt'")).tap do |cond|
111
+ cond.as_declaration.should == "output 'a.txt'"
63
112
  end
64
113
 
65
- PNML::DataCondition.new("'*.txt'").tap do |cond|
66
- cond.as_output_declaration.should == "output '*.txt'"
114
+ PNML::OutputData.new(PNML::Place.new(name: "'*.txt'")).tap do |cond|
115
+ cond.as_declaration.should == "output '*.txt'"
67
116
  end
68
117
 
69
- PNML::DataCondition.new("'a.txt' | 'b.txt' | 'c.txt'").tap do |cond|
70
- cond.as_output_declaration.should == "output 'a.txt' | 'b.txt' | 'c.txt'"
118
+ PNML::OutputData.new(PNML::Place.new(name: "'a.txt' | 'b.txt' | 'c.txt'")).tap do |cond|
119
+ cond.as_declaration.should == "output 'a.txt' | 'b.txt' | 'c.txt'"
71
120
  end
72
121
 
73
- PNML::DataCondition.new("'a.txt'").tap do |cond|
122
+ PNML::OutputData.new(PNML::Place.new(name: "'a.txt'")).tap do |cond|
74
123
  cond.output_nonexistable = true
75
- cond.as_output_declaration.should == "output 'a.txt' or null"
124
+ cond.as_declaration.should == "output 'a.txt' or null"
76
125
  end
77
126
 
78
- PNML::DataCondition.new("'a.txt'").tap do |cond|
127
+ PNML::OutputData.new(PNML::Place.new(name: "'a.txt'")).tap do |cond|
79
128
  cond.output_distribution = :all
80
- cond.as_output_declaration.should == "output ('a.txt').all"
129
+ cond.as_declaration.should == "output ('a.txt').all"
81
130
  end
82
131
 
83
- PNML::DataCondition.new("'a.txt'").tap do |cond|
84
- cond.output_priority = 100
85
- cond.as_output_declaration.should == "output 'a.txt'"
132
+ PNML::OutputData.new(PNML::Place.new(name: "'a.txt' #100")).tap do |cond|
133
+ cond.priority.should == 100
134
+ cond.as_declaration.should == "output 'a.txt'"
86
135
  end
87
136
  end
88
137
  end
89
138
 
90
139
  describe Pione::PNML::Param do
91
- it "should get declaration string" do
92
- PNML::Param.new("x", "1").tap do |param|
93
- param.as_declaration.should == "param $x := 1"
140
+ it "should create parameter from param sentence node" do
141
+ PNML::Param.sentence_of(PNML::Place.new(name: "param $X := 1")).tap do |param|
142
+ param.data.should == {"X" => "1"}
143
+ end
144
+ end
145
+
146
+ it "should create parameter from param set node" do
147
+ PNML::Param.set_of(PNML::Place.new(name: "{X: 1}")).tap do |param|
148
+ param.data.should == {"X" => "1"}
149
+ end
150
+
151
+ PNML::Param.set_of(PNML::Place.new(name: "{X: 1, Y: 2, Z: 3}")).tap do |param|
152
+ param.data.should == {"X" => "1", "Y" => "2", "Z" => "3"}
153
+ end
154
+ end
155
+
156
+ it "should get expression strings" do
157
+ PNML::Param.set_of(PNML::Place.new(name: "{X: 1}")).tap do |param|
158
+ param.as_expr.should == "{X: 1}"
159
+ end
160
+
161
+ PNML::Param.set_of(PNML::Place.new(name: "{X: 1, Y: 2, Z: 3}")).tap do |param|
162
+ param.as_expr.should == "{X: 1, Y: 2, Z: 3}"
163
+ end
164
+ end
165
+
166
+ it "should get declaration strings" do
167
+ PNML::Param.sentence_of(PNML::Place.new(name: "param $X := 1")).tap do |param|
168
+ param.as_declarations.should == ["param $X := 1"]
169
+ end
170
+
171
+ PNML::Param.set_of(PNML::Place.new(name: "{X: 1, Y: 2, Z: 3}")).tap do |param|
172
+ param.as_declarations.should == ["param $X := 1", "param $Y := 2", "param $Z := 3"]
94
173
  end
95
174
  end
96
175
  end
97
176
 
98
177
  describe Pione::PNML::ConditionalBranch do
99
178
  it "should get declaration string" do
100
- PNML::ConditionalBranch.new(:case, "$x").tap do |cb|
179
+ PNML::ConditionalBranch.new(:case, "$X").tap do |cb|
101
180
  cb.table["true"] << PNML::ConstituentRule.new(:action, "R1")
102
181
  cb.table["false"] << PNML::ConstituentRule.new(:action, "R2")
103
182
  cb.as_declaration.should == Util::Indentation.cut(<<-PIONE)
104
- case $x
183
+ case $X
105
184
  when true
106
185
  rule R1
107
186
  when false
@@ -309,19 +309,43 @@ end
309
309
 
310
310
  describe Pione::PNML::Place do
311
311
  it "should distinguish empty names" do
312
- PNML::Place.new(PNML::Net.new, Util::UUID.generate, "a").should.not.empty_name
313
- PNML::Place.new(PNML::Net.new, Util::UUID.generate, "").should.empty_name
314
- PNML::Place.new(PNML::Net.new, Util::UUID.generate, " ").should.empty_name
315
- PNML::Place.new(PNML::Net.new, Util::UUID.generate, " #abc").should.empty_name
312
+ PNML::Perspective.empty_place?(
313
+ Lang::Environment.new,
314
+ PNML::Place.new(PNML::Net.new, Util::UUID.generate, "a")
315
+ ).should.not.be.true
316
+ PNML::Perspective.empty_place?(
317
+ Lang::Environment.new,
318
+ PNML::Place.new(PNML::Net.new, Util::UUID.generate, "")
319
+ ).should.be.true
320
+ PNML::Perspective.empty_place?(
321
+ Lang::Environment.new,
322
+ PNML::Place.new(PNML::Net.new, Util::UUID.generate, " ")
323
+ ).should.be.true
324
+ PNML::Perspective.empty_place?(
325
+ Lang::Environment.new,
326
+ PNML::Place.new(PNML::Net.new, Util::UUID.generate, " #abc")
327
+ ).should.be.true
316
328
  end
317
329
  end
318
330
 
319
331
  describe Pione::PNML::Transition do
320
332
  it "should distinguish empty names" do
321
- PNML::Transition.new(PNML::Net.new, Util::UUID.generate, "a").should.not.empty_name
322
- PNML::Transition.new(PNML::Net.new, Util::UUID.generate, "").should.empty_name
323
- PNML::Transition.new(PNML::Net.new, Util::UUID.generate, " ").should.empty_name
324
- PNML::Transition.new(PNML::Net.new, Util::UUID.generate, " #abc").should.empty_name
333
+ PNML::Perspective.empty_transition?(
334
+ Lang::Environment.new,
335
+ PNML::Transition.new(PNML::Net.new, Util::UUID.generate, "a")
336
+ ).should.not.be.true
337
+ PNML::Perspective.empty_transition?(
338
+ Lang::Environment.new,
339
+ PNML::Transition.new(PNML::Net.new, Util::UUID.generate, "")
340
+ ).should.be.true
341
+ PNML::Perspective.empty_transition?(
342
+ Lang::Environment.new,
343
+ PNML::Transition.new(PNML::Net.new, Util::UUID.generate, " ")
344
+ ).should.be.true
345
+ PNML::Perspective.empty_transition?(
346
+ Lang::Environment.new,
347
+ PNML::Transition.new(PNML::Net.new, Util::UUID.generate, " #abc")
348
+ ).should.be.true
325
349
  end
326
350
  end
327
351
 
@@ -66,31 +66,23 @@ TestHelper.scope do |this|
66
66
  end
67
67
 
68
68
  it 'should have working directory' do
69
- @handler_sh1.working_directory.should.exist
70
- @handler_sh2.working_directory.should.exist
71
- @handler_ruby.working_directory.should.exist
69
+ @handler_sh1.working_directory.location.should.exist
70
+ @handler_sh2.working_directory.location.should.exist
71
+ @handler_ruby.working_directory.location.should.exist
72
72
  end
73
73
 
74
74
  it 'should make different working directories' do
75
- @handler_sh1.working_directory.should != @handler_sh2.working_directory
76
- @handler_sh2.working_directory.should != @handler_ruby.working_directory
77
- @handler_ruby.working_directory.should != @handler_sh1.working_directory
75
+ @handler_sh1.working_directory.location.should != @handler_sh2.working_directory.location
76
+ @handler_sh2.working_directory.location.should != @handler_ruby.working_directory.location
77
+ @handler_ruby.working_directory.location.should != @handler_sh1.working_directory.location
78
78
  end
79
79
 
80
80
  it 'should write a shell script' do
81
- @handler_sh1.write_shell_script do |path|
82
- File.should.exist(path)
83
- File.should.executable(path)
84
- File.read(path).should == "VAL1=`cat 1.a`;\nVAL2=`cat 1.b`;\nexpr $VAL1 + $VAL2 > 1.c\n"
85
- end
86
- end
87
-
88
- it 'should call shell script' do
89
- @handler_sh1.setup_working_directory
90
- @handler_sh1.write_shell_script do |path|
91
- @handler_sh1.call_shell_script(path)
92
- (@handler_sh1.working_directory + "1.b").should.exist
93
- end
81
+ @handler_sh1.shell_script.write
82
+ location = @handler_sh1.shell_script.location
83
+ location.should.exist
84
+ location.path.should.executable
85
+ location.read.should == "VAL1=`cat 1.a`;\nVAL2=`cat 1.b`;\nexpr $VAL1 + $VAL2 > 1.c\n"
94
86
  end
95
87
 
96
88
  [:sh1, :sh2, :ruby].each do |sym|
@@ -132,7 +124,7 @@ TestHelper.scope do |this|
132
124
  tuple_a = TupleSpace::DataTuple.new(name: '1.a', location: location_a, time: Time.now)
133
125
  inputs = [tuple_a]
134
126
 
135
- sh = (@ts.base_location + "package" + "bin" + "test.sh")
127
+ sh = @ts.base_location + "package" + "bin" + "test.sh"
136
128
  sh.write("echo abc > 1.b")
137
129
  sh.path.chmod(0700)
138
130
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pione
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0.alpha.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keita Yamaguchi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-31 00:00:00.000000000 Z
11
+ date: 2015-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parslet
@@ -473,13 +473,25 @@ files:
473
473
  - doc/man/pione-compiler.md
474
474
  - doc/man/pione-list-param.md
475
475
  - doc/man/pione-update-package-info.md
476
+ - example/ActionError/ActionError.action.md
476
477
  - example/ActionError/ActionError.pione
478
+ - example/ActionError/ActionError.pnml
479
+ - example/ActionError/Package.pione
477
480
  - example/ActionError/pione-package.json
481
+ - example/CTFCorrection/CTFCorrection.action.md
478
482
  - example/CTFCorrection/CTFCorrection.pione
479
- - example/CTFCorrection/package.yml
483
+ - example/CTFCorrection/CTFCorrection.pnml
484
+ - example/CTFCorrection/Package.pione
485
+ - example/CTFCorrection/Params.pione
486
+ - example/CTFCorrection/pione-package.json
487
+ - example/ChildPackage/ChildPackage.pione
488
+ - example/ChildPackage/pione-package.json
480
489
  - example/CountChar/CountChar.action.md
490
+ - example/CountChar/CountChar.pione
491
+ - example/CountChar/CountChar.pnml
481
492
  - example/CountChar/Main.pione
482
493
  - example/CountChar/Main.pnml
494
+ - example/CountChar/Package.pione
483
495
  - example/CountChar/flow.png
484
496
  - example/CountChar/misc/CountChar.rb
485
497
  - example/CountChar/pione-package.json
@@ -493,21 +505,39 @@ files:
493
505
  - example/CountChar/text/saikachibuchi.txt
494
506
  - example/CountChar/text/saikonihonno_josei.txt
495
507
  - example/CountChar/text/taishojugonenno_bundan.txt
508
+ - example/DeferredChoice/DeferredChoice.action.md
496
509
  - example/DeferredChoice/DeferredChoice.pione
497
- - example/DeferredChoice/bin/ui.xml
510
+ - example/DeferredChoice/DeferredChoice.pnml
511
+ - example/DeferredChoice/Package.pione
498
512
  - example/DeferredChoice/pione-package.json
513
+ - example/DeferredChoiceWithPage/DeferredChoiceWithPage.action.md
499
514
  - example/DeferredChoiceWithPage/DeferredChoiceWithPage.pione
515
+ - example/DeferredChoiceWithPage/DefferredChoiceWithPage.pnml
516
+ - example/DeferredChoiceWithPage/Package.pione
500
517
  - example/DeferredChoiceWithPage/etc/index.html
501
518
  - example/DeferredChoiceWithPage/pione-package.json
519
+ - example/FeatureExample/FeatureExample.action.md
502
520
  - example/FeatureExample/FeatureExample.pione
521
+ - example/FeatureExample/FeatureExample.pnml
522
+ - example/FeatureExample/Package.pione
503
523
  - example/FeatureExample/pione-package.json
524
+ - example/Fib/Fib.action.md
504
525
  - example/Fib/Fib.pione
526
+ - example/Fib/Fib.pnml
527
+ - example/Fib/FibN.pnml
528
+ - example/Fib/Package.pione
529
+ - example/HelloWorld/HelloWorld.action.md
505
530
  - example/HelloWorld/HelloWorld.pione
531
+ - example/HelloWorld/HelloWorld.pnml
532
+ - example/HelloWorld/Package.pione
506
533
  - example/HelloWorld/pione-package.json
507
534
  - example/HelloWorld/scenario/Scenario.pione
508
535
  - example/HelloWorld/scenario/output/message.txt
509
536
  - example/HelloWorld/scenario/pione-scenario.json
537
+ - example/Interaction/Interaction.action.md
510
538
  - example/Interaction/Interaction.pione
539
+ - example/Interaction/Interaction.pnml
540
+ - example/Interaction/Package.pione
511
541
  - example/Interaction/bin/show-environment.cgi
512
542
  - example/Interaction/etc/.hidden-file.txt
513
543
  - example/Interaction/etc/cgi.html
@@ -518,14 +548,25 @@ files:
518
548
  - example/Interaction/etc/list-files.html
519
549
  - example/Interaction/pione-package.json
520
550
  - example/LoopByTouch/LoopByTouch.pione
551
+ - example/LoopByTouch/LoopByTouch.pnml
552
+ - example/LoopByTouch/Package.pione
521
553
  - example/LoopByTouch/PairLoop.pione
554
+ - example/LoopByTouch/PairLoop.pnml
522
555
  - example/LoopByTouch/SingleLoop.pione
556
+ - example/LoopByTouch/SingleLoop.pnml
523
557
  - example/LoopByTouch/TripletLoop.pione
558
+ - example/LoopByTouch/TripletLoop.pnml
524
559
  - example/LoopByTouch/package.yml
525
560
  - example/LoopByTouch/pione-package.json
561
+ - example/LucasNumber/LucasNumber.action.md
526
562
  - example/LucasNumber/LucasNumber.pione
563
+ - example/LucasNumber/LucasNumber.pnml
564
+ - example/LucasNumber/LucasNumberN.pnml
565
+ - example/LucasNumber/Package.pione
527
566
  - example/LucasNumber/pione-package.json
528
567
  - example/MakePair/MakePair.pione
568
+ - example/MakePair/MakePair.pnml
569
+ - example/MakePair/Package.pione
529
570
  - example/MakePair/pione-package.json
530
571
  - example/MakePair/scenario/case1/Scenario.pione
531
572
  - example/MakePair/scenario/case1/input/1.i
@@ -622,6 +663,8 @@ files:
622
663
  - example/MakePair/scenario/case3/output/perm-9-7.pair
623
664
  - example/MakePair/scenario/case3/pione-scenario.json
624
665
  - example/OddSelector/OddSelector.pione
666
+ - example/OddSelector/OddSelector.pnml
667
+ - example/OddSelector/Package.pione
625
668
  - example/OddSelector/pione-package.json
626
669
  - example/OddSelector/scenario/Scenario.pione
627
670
  - example/OddSelector/scenario/input/1.i
@@ -640,13 +683,27 @@ files:
640
683
  - example/OddSelector/scenario/output/7.res
641
684
  - example/OddSelector/scenario/output/9.res
642
685
  - example/OddSelector/scenario/pione-scenario.json
643
- - example/PegasusWMS/Merge/Merge.pione
686
+ - example/ParentPackage/ParentPackage.pione
687
+ - example/ParentPackage/pione-package.json
688
+ - example/PegasusWMS/Merge/Package.pione
689
+ - example/PegasusWMS/Merge/PegasusWMSMerge.action.md
690
+ - example/PegasusWMS/Merge/PegasusWMSMerge.pione
691
+ - example/PegasusWMS/Merge/PegasusWMSMerge.pnml
644
692
  - example/PegasusWMS/Merge/pione-package.json
645
- - example/PegasusWMS/Pipeline/Pipeline.pione
693
+ - example/PegasusWMS/Pipeline/Package.pione
694
+ - example/PegasusWMS/Pipeline/PegasusWMSPipeline.action.md
695
+ - example/PegasusWMS/Pipeline/PegasusWMSPipeline.pione
696
+ - example/PegasusWMS/Pipeline/PegasusWMSPipeline.pnml
646
697
  - example/PegasusWMS/Pipeline/pione-package.json
647
- - example/PegasusWMS/Split/Split.pione
698
+ - example/PegasusWMS/Split/Package.pione
699
+ - example/PegasusWMS/Split/PegasusWMSSplit.action.md
700
+ - example/PegasusWMS/Split/PegasusWMSSplit.pione
701
+ - example/PegasusWMS/Split/PegasusWMSSplit.pnml
648
702
  - example/PegasusWMS/Split/pione-package.json
703
+ - example/ScoreAggregation/Package.pione
704
+ - example/ScoreAggregation/ScoreAggregation.action.md
649
705
  - example/ScoreAggregation/ScoreAggregation.pione
706
+ - example/ScoreAggregation/ScoreAggregation.pnml
650
707
  - example/ScoreAggregation/bin/apply-template.rb
651
708
  - example/ScoreAggregation/bin/histgram-graph.sh
652
709
  - example/ScoreAggregation/bin/mean-summary.rb
@@ -685,7 +742,10 @@ files:
685
742
  - example/ScoreAggregation/scenario/case1/input/Z.score
686
743
  - example/ScoreAggregation/scenario/case1/input/stat-template.erb
687
744
  - example/ScoreAggregation/scenario/case1/pione-scenario.json
745
+ - example/SelectRuleByParam/Package.pione
746
+ - example/SelectRuleByParam/SelectRuleByParam.action.md
688
747
  - example/SelectRuleByParam/SelectRuleByParam.pione
748
+ - example/SelectRuleByParam/SelectRuleByParam.pnml
689
749
  - example/SelectRuleByParam/pione-package.json
690
750
  - example/SelectRuleByParam/scenario/a/Scenario.pione
691
751
  - example/SelectRuleByParam/scenario/a/output/message.txt
@@ -696,17 +756,30 @@ files:
696
756
  - example/SelectRuleByParam/scenario/c/Scenario.pione
697
757
  - example/SelectRuleByParam/scenario/c/output/message.txt
698
758
  - example/SelectRuleByParam/scenario/c/pione-scenario.json
759
+ - example/SequentialParameter/Package.pione
699
760
  - example/SequentialParameter/SequentialParameter.pione
761
+ - example/SequentialParameter/SequentialParameter.pnml
762
+ - example/SequentialParameter/pione-package.json
763
+ - example/SerialProcessing/A.pione
764
+ - example/SerialProcessing/A.pnml
765
+ - example/SerialProcessing/B.pione
766
+ - example/SerialProcessing/B.pnml
767
+ - example/SerialProcessing/Package.pione
700
768
  - example/SerialProcessing/SerialProcessing.pione
769
+ - example/SerialProcessing/SerialProcessing.pnml
701
770
  - example/SerialProcessing/pione-package.json
702
771
  - example/SerialProcessing/scenario/Scenario.pione
703
772
  - example/SerialProcessing/scenario/pione-scenario.json
773
+ - example/SieveOfEratosthenes/CreateUndeterminedNumbers.pnml
774
+ - example/SieveOfEratosthenes/Package.pione
775
+ - example/SieveOfEratosthenes/Sieve.pnml
704
776
  - example/SieveOfEratosthenes/SieveOfEratosthenes.pione
705
- - example/SingleParticlesWithRef/Makefile
706
- - example/SingleParticlesWithRef/SingleParticlesWithRef.Display2.pione
707
- - example/SingleParticlesWithRef/SingleParticlesWithRef.Makefile
777
+ - example/SieveOfEratosthenes/SieveOfEratosthenes.pnml
778
+ - example/SingleParticlesWithRef/Create3dinfo.pnml
779
+ - example/SingleParticlesWithRef/Package.pione
780
+ - example/SingleParticlesWithRef/SingleParticlesWithRef.action.md
708
781
  - example/SingleParticlesWithRef/SingleParticlesWithRef.pione
709
- - example/SingleParticlesWithRef/SingleParticlesWithRefFull.pione
782
+ - example/SingleParticlesWithRef/SingleParticlesWithRef.pnml
710
783
  - example/SingleParticlesWithRef/data/121p-shift-0-0-0.roi
711
784
  - example/SingleParticlesWithRef/data/121p-shift-0-120-0.roi
712
785
  - example/SingleParticlesWithRef/data/121p-shift-0-180-0.roi
@@ -782,31 +855,93 @@ files:
782
855
  - example/SingleParticlesWithRef/data/121p-shift.pdb
783
856
  - example/SingleParticlesWithRef/data/all.ref2d
784
857
  - example/SingleParticlesWithRef/data/all.ref3d
858
+ - example/SingleParticlesWithRef/misc/Makefile
859
+ - example/SingleParticlesWithRef/misc/SingleParticlesWithRef.Display2.pione
860
+ - example/SingleParticlesWithRef/misc/SingleParticlesWithRef.Makefile
861
+ - example/SingleParticlesWithRef/misc/SingleParticlesWithRefFull.pione
862
+ - example/Sum/CalcEachLine.pione
863
+ - example/Sum/CalcEachLine.pnml
864
+ - example/Sum/Package.pione
865
+ - example/Sum/Sum.action.md
785
866
  - example/Sum/Sum.pione
867
+ - example/Sum/Sum.pnml
786
868
  - example/Sum/pione-package.json
787
869
  - example/Sum/scenario/Scenario.pione
788
870
  - example/Sum/scenario/input/list.txt
789
871
  - example/Sum/scenario/output/sum.txt
790
872
  - example/Sum/scenario/pione-scenario.json
873
+ - example/Touch/Package.pione
791
874
  - example/Touch/Touch.pione
875
+ - example/Touch/Touch.pnml
792
876
  - example/Touch/pione-package.json
877
+ - example/WorkflowPatterns/01_Sequence/Package.pione
793
878
  - example/WorkflowPatterns/01_Sequence/Sequence.pione
879
+ - example/WorkflowPatterns/01_Sequence/Sequence.pnml
880
+ - example/WorkflowPatterns/01_Sequence/pione-package.json
881
+ - example/WorkflowPatterns/02_PrallelSplit/Package.pione
794
882
  - example/WorkflowPatterns/02_PrallelSplit/ParallelSplit.pione
883
+ - example/WorkflowPatterns/02_PrallelSplit/ParallelSplit.pnml
884
+ - example/WorkflowPatterns/02_PrallelSplit/pione-package.json
885
+ - example/WorkflowPatterns/03_Synchronization/Package.pione
795
886
  - example/WorkflowPatterns/03_Synchronization/Synchronization.pione
887
+ - example/WorkflowPatterns/03_Synchronization/Synchronization.pnml
888
+ - example/WorkflowPatterns/03_Synchronization/pione-package.json
796
889
  - example/WorkflowPatterns/04_ExclusiveChoice/ExclusiveChoice.pione
890
+ - example/WorkflowPatterns/04_ExclusiveChoice/ExclusiveChoice.pnml
891
+ - example/WorkflowPatterns/04_ExclusiveChoice/Package.pione
892
+ - example/WorkflowPatterns/04_ExclusiveChoice/pione-package.json
893
+ - example/WorkflowPatterns/05_SimpleMerge/Package.pione
797
894
  - example/WorkflowPatterns/05_SimpleMerge/SimpleMerge.pione
895
+ - example/WorkflowPatterns/05_SimpleMerge/SimpleMerge.pnml
896
+ - example/WorkflowPatterns/05_SimpleMerge/pione-package.json
798
897
  - example/WorkflowPatterns/06_MultiChoice/MultiChoice.pione
898
+ - example/WorkflowPatterns/06_MultiChoice/MultiChoice.pnml
899
+ - example/WorkflowPatterns/06_MultiChoice/Package.pione
900
+ - example/WorkflowPatterns/06_MultiChoice/pione-package.json
901
+ - example/WorkflowPatterns/07_StructuredSynchronizingMerge/Package.pione
799
902
  - example/WorkflowPatterns/07_StructuredSynchronizingMerge/StructuredSynchronizingMerge.pione
903
+ - example/WorkflowPatterns/07_StructuredSynchronizingMerge/StructuredSynchronizingMerge.pnml
800
904
  - example/WorkflowPatterns/08_MultiMerge/MultiMerge.pione
905
+ - example/WorkflowPatterns/08_MultiMerge/MultiMerge.pnml
906
+ - example/WorkflowPatterns/08_MultiMerge/Package.pione
907
+ - example/WorkflowPatterns/08_MultiMerge/pione-package.json
801
908
  - example/WorkflowPatterns/11_ImplicitTermination/ImplicitTermination.pione
909
+ - example/WorkflowPatterns/11_ImplicitTermination/ImplicitTermination.pnml
910
+ - example/WorkflowPatterns/11_ImplicitTermination/Package.pione
911
+ - example/WorkflowPatterns/11_ImplicitTermination/pione-package.json
802
912
  - example/WorkflowPatterns/12_MultipleInstancesWithoutSynchronization/MultipleInstancesWithoutSynchronization.pione
913
+ - example/WorkflowPatterns/12_MultipleInstancesWithoutSynchronization/MultipleInstancesWithoutSynchronization.pnml
914
+ - example/WorkflowPatterns/12_MultipleInstancesWithoutSynchronization/Package.pione
915
+ - example/WorkflowPatterns/12_MultipleInstancesWithoutSynchronization/pione-package.json
803
916
  - example/WorkflowPatterns/13_MultipleInstancesWithDesignTimeKnowledge/MultipleInstancesWithDesignTimeKnowledge.pione
917
+ - example/WorkflowPatterns/13_MultipleInstancesWithDesignTimeKnowledge/MultipleInstancesWithDesignTimeKnowledge.pnml
918
+ - example/WorkflowPatterns/13_MultipleInstancesWithDesignTimeKnowledge/Package.pione
919
+ - example/WorkflowPatterns/13_MultipleInstancesWithDesignTimeKnowledge/pione-package.json
804
920
  - example/WorkflowPatterns/14_MultipleInstancesWithRunTimeKnowledge/MultipleInstancesWithRunTimeKnowledge.pione
921
+ - example/WorkflowPatterns/14_MultipleInstancesWithRunTimeKnowledge/MultipleInstancesWithRunTimeKnowledge.pnml
922
+ - example/WorkflowPatterns/14_MultipleInstancesWithRunTimeKnowledge/Package.pione
923
+ - example/WorkflowPatterns/14_MultipleInstancesWithRunTimeKnowledge/pione-package.json
805
924
  - example/WorkflowPatterns/33_GeneralizedANDJoin/GeneralizedANDJoin.pione
925
+ - example/WorkflowPatterns/33_GeneralizedANDJoin/GeneralizedANDJoin.pnml
926
+ - example/WorkflowPatterns/33_GeneralizedANDJoin/Package.pione
927
+ - example/WorkflowPatterns/33_GeneralizedANDJoin/pione-package.json
928
+ - example/WorkflowPatterns/37_LocalSynchronizingMerge/A.pione
929
+ - example/WorkflowPatterns/37_LocalSynchronizingMerge/A.pnml
806
930
  - example/WorkflowPatterns/37_LocalSynchronizingMerge/LocalSynchronizingMerge.pione
931
+ - example/WorkflowPatterns/37_LocalSynchronizingMerge/LocalSynchronizingMerge.pnml
932
+ - example/WorkflowPatterns/37_LocalSynchronizingMerge/Package.pione
933
+ - example/WorkflowPatterns/37_LocalSynchronizingMerge/pione-package.json
807
934
  - example/WorkflowPatterns/38_GeneralSynchronizingMerge/GeneralSynchronizingMerge.pione
935
+ - example/WorkflowPatterns/38_GeneralSynchronizingMerge/GeneralSynchronizingMerge.pnml
936
+ - example/WorkflowPatterns/38_GeneralSynchronizingMerge/Package.pione
937
+ - example/WorkflowPatterns/41_ThreadMerge/A.pnml
938
+ - example/WorkflowPatterns/41_ThreadMerge/A1.pnml
939
+ - example/WorkflowPatterns/41_ThreadMerge/Package.pione
808
940
  - example/WorkflowPatterns/41_ThreadMerge/ThreadMerge.pione
941
+ - example/WorkflowPatterns/41_ThreadMerge/ThreadMerge.pnml
942
+ - example/WorkflowPatterns/42_ThreadSplit/Package.pione
809
943
  - example/WorkflowPatterns/42_ThreadSplit/ThreadSplit.pione
944
+ - example/WorkflowPatterns/42_ThreadSplit/ThreadSplit.pnml
810
945
  - lib/pione.rb
811
946
  - lib/pione/agent.rb
812
947
  - lib/pione/agent/agent-exception.rb
@@ -852,6 +987,7 @@ files:
852
987
  - lib/pione/command/pione-notification-listener.rb
853
988
  - lib/pione/command/pione-package-add.rb
854
989
  - lib/pione/command/pione-package-build.rb
990
+ - lib/pione/command/pione-package-remove.rb
855
991
  - lib/pione/command/pione-package-show.rb
856
992
  - lib/pione/command/pione-package-update.rb
857
993
  - lib/pione/command/pione-package.rb
@@ -934,7 +1070,7 @@ files:
934
1070
  - lib/pione/literate-action.rb
935
1071
  - lib/pione/literate-action/document.rb
936
1072
  - lib/pione/literate-action/handler.rb
937
- - lib/pione/literate-action/parser.rb
1073
+ - lib/pione/literate-action/markdown-parser.rb
938
1074
  - lib/pione/location.rb
939
1075
  - lib/pione/location/basic-location.rb
940
1076
  - lib/pione/location/broadcast-scheme.rb
@@ -997,20 +1133,24 @@ files:
997
1133
  - lib/pione/pnml.rb
998
1134
  - lib/pione/pnml/annotation-extractor.rb
999
1135
  - lib/pione/pnml/compiler.rb
1136
+ - lib/pione/pnml/declaration-extractor.rb
1000
1137
  - lib/pione/pnml/input-merge-complement.rb
1001
1138
  - lib/pione/pnml/input-parallelization-complement.rb
1002
1139
  - lib/pione/pnml/input-reduction.rb
1003
1140
  - lib/pione/pnml/invalid-arc-elimination.rb
1004
1141
  - lib/pione/pnml/io-expansion.rb
1005
1142
  - lib/pione/pnml/isolated-element-elimination.rb
1143
+ - lib/pione/pnml/label-extractor.rb
1006
1144
  - lib/pione/pnml/net-rewriter.rb
1007
1145
  - lib/pione/pnml/output-decomposition-complement.rb
1008
1146
  - lib/pione/pnml/output-reduction.rb
1009
1147
  - lib/pione/pnml/output-synchronization-complement.rb
1148
+ - lib/pione/pnml/parser.rb
1010
1149
  - lib/pione/pnml/pione-model.rb
1011
1150
  - lib/pione/pnml/pnml-exception.rb
1012
1151
  - lib/pione/pnml/pnml-model.rb
1013
1152
  - lib/pione/pnml/reader.rb
1153
+ - lib/pione/pnml/ticket-instantiation.rb
1014
1154
  - lib/pione/relay.rb
1015
1155
  - lib/pione/relay/receiver-socket.rb
1016
1156
  - lib/pione/relay/relay-account-db.rb
@@ -1092,6 +1232,7 @@ files:
1092
1232
  - lib/rootage/command.rb
1093
1233
  - lib/rootage/core.rb
1094
1234
  - lib/rootage/exception.rb
1235
+ - lib/rootage/help.md.erb
1095
1236
  - lib/rootage/help.rb
1096
1237
  - lib/rootage/help.txt.erb
1097
1238
  - lib/rootage/log.rb
@@ -1228,7 +1369,7 @@ files:
1228
1369
  - test/literate-action/data/HelloWorld.md
1229
1370
  - test/literate-action/spec_document.rb
1230
1371
  - test/literate-action/spec_handler.rb
1231
- - test/literate-action/spec_parser.rb
1372
+ - test/literate-action/spec_markdown-parser.rb
1232
1373
  - test/location/data/myftp-scheme.yml
1233
1374
  - test/location/http-behavior.rb
1234
1375
  - test/location/location-behavior.rb
@@ -1377,6 +1518,7 @@ files:
1377
1518
  - test/pnml/spec_invalid-arc-elimination.rb
1378
1519
  - test/pnml/spec_io-expansion.rb
1379
1520
  - test/pnml/spec_isolated-element-elimination.rb
1521
+ - test/pnml/spec_label-extractor.rb
1380
1522
  - test/pnml/spec_output-decomposition-complement.rb
1381
1523
  - test/pnml/spec_output-reduction.rb
1382
1524
  - test/pnml/spec_output-synchronization-complement.rb
@@ -1448,9 +1590,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
1448
1590
  version: 1.9.3
1449
1591
  required_rubygems_version: !ruby/object:Gem::Requirement
1450
1592
  requirements:
1451
- - - ! '>='
1593
+ - - ! '>'
1452
1594
  - !ruby/object:Gem::Version
1453
- version: '0'
1595
+ version: 1.3.1
1454
1596
  requirements: []
1455
1597
  rubyforge_project:
1456
1598
  rubygems_version: 2.1.11
@@ -1579,7 +1721,7 @@ test_files:
1579
1721
  - test/literate-action/data/HelloWorld.md
1580
1722
  - test/literate-action/spec_document.rb
1581
1723
  - test/literate-action/spec_handler.rb
1582
- - test/literate-action/spec_parser.rb
1724
+ - test/literate-action/spec_markdown-parser.rb
1583
1725
  - test/location/data/myftp-scheme.yml
1584
1726
  - test/location/http-behavior.rb
1585
1727
  - test/location/location-behavior.rb
@@ -1728,6 +1870,7 @@ test_files:
1728
1870
  - test/pnml/spec_invalid-arc-elimination.rb
1729
1871
  - test/pnml/spec_io-expansion.rb
1730
1872
  - test/pnml/spec_isolated-element-elimination.rb
1873
+ - test/pnml/spec_label-extractor.rb
1731
1874
  - test/pnml/spec_output-decomposition-complement.rb
1732
1875
  - test/pnml/spec_output-reduction.rb
1733
1876
  - test/pnml/spec_output-synchronization-complement.rb