expressir 0.2.0 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (459) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +46 -0
  3. data/.github/workflows/release.yml +75 -0
  4. data/.gitignore +2 -2
  5. data/.gitmodules +3 -0
  6. data/Gemfile +2 -0
  7. data/Rakefile +11 -0
  8. data/demo.rb +3 -1
  9. data/exe/generate-parser +48 -0
  10. data/expressir.gemspec +8 -4
  11. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/CMakeLists.txt +118 -0
  12. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj +637 -0
  13. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj.filters +984 -0
  14. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj +652 -0
  15. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj.filters +990 -0
  16. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj +652 -0
  17. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj.filters +990 -0
  18. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj +652 -0
  19. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj.filters +990 -0
  20. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/Info.plist +26 -0
  21. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/antlrcpp_ios.h +17 -0
  22. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.pbxproj +3024 -0
  23. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  24. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  25. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4.xcscheme +76 -0
  26. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_ios.xcscheme +80 -0
  27. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_static.xcscheme +80 -0
  28. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +10 -0
  29. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.h +167 -0
  30. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +10 -0
  31. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +121 -0
  32. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +34 -0
  33. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.h +27 -0
  34. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +155 -0
  35. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.h +69 -0
  36. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +61 -0
  37. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.h +59 -0
  38. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.cpp +25 -0
  39. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.h +36 -0
  40. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +414 -0
  41. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.h +200 -0
  42. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.cpp +11 -0
  43. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.h +37 -0
  44. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.cpp +195 -0
  45. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.h +158 -0
  46. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +39 -0
  47. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.h +74 -0
  48. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.cpp +78 -0
  49. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.h +79 -0
  50. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +15 -0
  51. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.h +35 -0
  52. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +333 -0
  53. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +466 -0
  54. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +84 -0
  55. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +80 -0
  56. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.cpp +64 -0
  57. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.h +99 -0
  58. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.cpp +51 -0
  59. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.h +32 -0
  60. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.cpp +18 -0
  61. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.h +24 -0
  62. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.cpp +12 -0
  63. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.h +218 -0
  64. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +19 -0
  65. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.h +45 -0
  66. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.cpp +295 -0
  67. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.h +196 -0
  68. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.cpp +75 -0
  69. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.h +52 -0
  70. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +36 -0
  71. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.h +31 -0
  72. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.cpp +92 -0
  73. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.h +88 -0
  74. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.cpp +46 -0
  75. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.h +42 -0
  76. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.cpp +648 -0
  77. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.h +467 -0
  78. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.cpp +306 -0
  79. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.h +179 -0
  80. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.cpp +141 -0
  81. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.h +147 -0
  82. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +53 -0
  83. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.h +38 -0
  84. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.cpp +66 -0
  85. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.h +98 -0
  86. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.cpp +167 -0
  87. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.h +164 -0
  88. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.cpp +143 -0
  89. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.h +137 -0
  90. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +27 -0
  91. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +32 -0
  92. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +53 -0
  93. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.h +155 -0
  94. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.cpp +9 -0
  95. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.h +92 -0
  96. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenFactory.h +30 -0
  97. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.cpp +9 -0
  98. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.h +85 -0
  99. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.cpp +11 -0
  100. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.h +137 -0
  101. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +425 -0
  102. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.h +293 -0
  103. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +211 -0
  104. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.h +123 -0
  105. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +270 -0
  106. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +115 -0
  107. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.cpp +104 -0
  108. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.h +193 -0
  109. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.cpp +9 -0
  110. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.h +23 -0
  111. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-common.h +137 -0
  112. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-runtime.h +167 -0
  113. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.cpp +209 -0
  114. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.h +112 -0
  115. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +113 -0
  116. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.h +148 -0
  117. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +228 -0
  118. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +110 -0
  119. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +64 -0
  120. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +50 -0
  121. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +758 -0
  122. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +85 -0
  123. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.cpp +621 -0
  124. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.h +61 -0
  125. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +63 -0
  126. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.h +87 -0
  127. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.cpp +72 -0
  128. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.h +133 -0
  129. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNType.h +20 -0
  130. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.cpp +14 -0
  131. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.h +24 -0
  132. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +33 -0
  133. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.h +33 -0
  134. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +16 -0
  135. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +68 -0
  136. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +82 -0
  137. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +43 -0
  138. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +31 -0
  139. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.h +30 -0
  140. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.cpp +12 -0
  141. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +22 -0
  142. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.cpp +12 -0
  143. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.h +21 -0
  144. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.cpp +15 -0
  145. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.h +24 -0
  146. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.cpp +9 -0
  147. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.h +21 -0
  148. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +14 -0
  149. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +47 -0
  150. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +14 -0
  151. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +70 -0
  152. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +25 -0
  153. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.h +227 -0
  154. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.cpp +17 -0
  155. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.h +30 -0
  156. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.cpp +35 -0
  157. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.h +27 -0
  158. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +35 -0
  159. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +39 -0
  160. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +15 -0
  161. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.h +43 -0
  162. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +158 -0
  163. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +109 -0
  164. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +84 -0
  165. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +44 -0
  166. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +628 -0
  167. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +210 -0
  168. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.cpp +9 -0
  169. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.h +66 -0
  170. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +107 -0
  171. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +115 -0
  172. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionType.h +55 -0
  173. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +55 -0
  174. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +63 -0
  175. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +62 -0
  176. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +87 -0
  177. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +63 -0
  178. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +82 -0
  179. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +56 -0
  180. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.h +61 -0
  181. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +47 -0
  182. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +57 -0
  183. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +47 -0
  184. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +57 -0
  185. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +56 -0
  186. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +61 -0
  187. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +47 -0
  188. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +55 -0
  189. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +56 -0
  190. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +55 -0
  191. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +16 -0
  192. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +42 -0
  193. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.cpp +12 -0
  194. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.h +22 -0
  195. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Makefile +67 -0
  196. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +27 -0
  197. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.h +25 -0
  198. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +12 -0
  199. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +20 -0
  200. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +102 -0
  201. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.h +102 -0
  202. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +1366 -0
  203. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +904 -0
  204. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.cpp +12 -0
  205. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +25 -0
  206. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.cpp +12 -0
  207. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +22 -0
  208. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +32 -0
  209. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +29 -0
  210. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +17 -0
  211. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +62 -0
  212. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +34 -0
  213. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.h +39 -0
  214. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +662 -0
  215. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.h +254 -0
  216. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +201 -0
  217. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.h +436 -0
  218. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +179 -0
  219. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +60 -0
  220. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +30 -0
  221. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.h +29 -0
  222. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.cpp +16 -0
  223. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.h +25 -0
  224. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.cpp +12 -0
  225. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.h +25 -0
  226. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +37 -0
  227. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.h +40 -0
  228. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +377 -0
  229. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.h +222 -0
  230. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.cpp +32 -0
  231. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.h +30 -0
  232. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +81 -0
  233. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +36 -0
  234. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.cpp +12 -0
  235. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +21 -0
  236. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.cpp +15 -0
  237. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +35 -0
  238. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +19 -0
  239. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +21 -0
  240. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.cpp +12 -0
  241. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.h +21 -0
  242. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.cpp +44 -0
  243. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.h +76 -0
  244. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +25 -0
  245. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.h +25 -0
  246. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.cpp +127 -0
  247. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.h +91 -0
  248. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +67 -0
  249. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.h +32 -0
  250. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.cpp +100 -0
  251. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h +144 -0
  252. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +20 -0
  253. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +23 -0
  254. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +124 -0
  255. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +31 -0
  256. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.cpp +89 -0
  257. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.h +84 -0
  258. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +521 -0
  259. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.h +198 -0
  260. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +134 -0
  261. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.h +76 -0
  262. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.cpp +4 -0
  263. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.h +21 -0
  264. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.cpp +13 -0
  265. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.h +170 -0
  266. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.cpp +43 -0
  267. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.h +110 -0
  268. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/BitSet.h +76 -0
  269. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.cpp +248 -0
  270. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.h +78 -0
  271. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Declarations.h +163 -0
  272. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.cpp +36 -0
  273. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.h +54 -0
  274. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.cpp +303 -0
  275. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.h +112 -0
  276. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +128 -0
  277. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.cpp +9 -0
  278. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.h +19 -0
  279. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +23 -0
  280. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +33 -0
  281. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +71 -0
  282. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +53 -0
  283. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.cpp +15 -0
  284. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.h +102 -0
  285. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +9 -0
  286. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +39 -0
  287. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +50 -0
  288. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +9 -0
  289. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +57 -0
  290. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +49 -0
  291. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +31 -0
  292. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.cpp +9 -0
  293. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.h +32 -0
  294. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +57 -0
  295. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +33 -0
  296. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.cpp +241 -0
  297. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.h +78 -0
  298. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +9 -0
  299. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +44 -0
  300. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +69 -0
  301. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +132 -0
  302. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +64 -0
  303. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +105 -0
  304. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +371 -0
  305. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +185 -0
  306. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +77 -0
  307. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +117 -0
  308. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +39 -0
  309. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +86 -0
  310. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +28 -0
  311. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +51 -0
  312. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +36 -0
  313. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +80 -0
  314. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +154 -0
  315. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.h +86 -0
  316. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +31 -0
  317. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +40 -0
  318. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +173 -0
  319. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.g4 +64 -0
  320. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +56 -0
  321. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.tokens +12 -0
  322. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +13 -0
  323. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +22 -0
  324. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +20 -0
  325. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +27 -0
  326. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +30 -0
  327. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +26 -0
  328. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +20 -0
  329. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +25 -0
  330. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +33 -0
  331. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +26 -0
  332. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +23 -0
  333. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +23 -0
  334. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +24 -0
  335. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +23 -0
  336. data/ext/express-parser/antlrgen/Express.interp +532 -0
  337. data/ext/express-parser/antlrgen/Express.tokens +190 -0
  338. data/ext/express-parser/antlrgen/ExpressBaseListener.cpp +7 -0
  339. data/ext/express-parser/antlrgen/ExpressBaseListener.h +623 -0
  340. data/ext/express-parser/antlrgen/ExpressBaseVisitor.cpp +7 -0
  341. data/ext/express-parser/antlrgen/ExpressBaseVisitor.h +816 -0
  342. data/ext/express-parser/antlrgen/ExpressLexer.cpp +1169 -0
  343. data/ext/express-parser/antlrgen/ExpressLexer.h +85 -0
  344. data/ext/express-parser/antlrgen/ExpressLexer.interp +534 -0
  345. data/ext/express-parser/antlrgen/ExpressLexer.tokens +190 -0
  346. data/ext/express-parser/antlrgen/ExpressListener.cpp +7 -0
  347. data/ext/express-parser/antlrgen/ExpressListener.h +616 -0
  348. data/ext/express-parser/antlrgen/ExpressParser.cpp +17284 -0
  349. data/ext/express-parser/antlrgen/ExpressParser.h +3696 -0
  350. data/ext/express-parser/antlrgen/ExpressVisitor.cpp +7 -0
  351. data/ext/express-parser/antlrgen/ExpressVisitor.h +422 -0
  352. data/ext/express-parser/express_parser.cpp +17931 -0
  353. data/ext/express-parser/extconf.rb +34 -0
  354. data/lib/expressir/express.rb +0 -1
  355. data/lib/expressir/express_exp/formatter.rb +1450 -0
  356. data/lib/expressir/express_exp/parser.rb +20 -9
  357. data/lib/expressir/express_exp/visitor.rb +1601 -1253
  358. data/lib/expressir/model.rb +65 -0
  359. data/lib/expressir/model/attribute.rb +27 -0
  360. data/lib/expressir/model/constant.rb +3 -1
  361. data/lib/expressir/model/entity.rb +30 -13
  362. data/lib/expressir/model/{ref.rb → enumeration_item.rb} +2 -2
  363. data/lib/expressir/model/expressions/aggregate_initializer.rb +13 -0
  364. data/lib/expressir/model/expressions/aggregate_item.rb +15 -0
  365. data/lib/expressir/model/expressions/{attribute_qualifier.rb → attribute_reference.rb} +3 -1
  366. data/lib/expressir/model/expressions/binary_expression.rb +40 -0
  367. data/lib/expressir/model/expressions/{function_call.rb → call.rb} +3 -3
  368. data/lib/expressir/model/expressions/entity_constructor.rb +11 -11
  369. data/lib/expressir/model/expressions/{group_qualifier.rb → group_reference.rb} +3 -1
  370. data/lib/expressir/model/expressions/{index_qualifier.rb → index_reference.rb} +3 -1
  371. data/lib/expressir/model/expressions/interval.rb +17 -17
  372. data/lib/expressir/model/expressions/query_expression.rb +26 -0
  373. data/lib/expressir/model/expressions/simple_reference.rb +13 -0
  374. data/lib/expressir/model/expressions/{expression.rb → unary_expression.rb} +7 -3
  375. data/lib/expressir/model/function.rb +42 -3
  376. data/lib/expressir/model/identifier.rb +9 -0
  377. data/lib/expressir/model/{reference.rb → interface.rb} +6 -1
  378. data/lib/expressir/model/literals/binary.rb +13 -0
  379. data/lib/expressir/model/literals/integer.rb +13 -0
  380. data/lib/expressir/model/literals/logical.rb +17 -0
  381. data/lib/expressir/model/literals/real.rb +13 -0
  382. data/lib/expressir/model/literals/string.rb +15 -0
  383. data/lib/expressir/model/parameter.rb +5 -3
  384. data/lib/expressir/model/procedure.rb +42 -3
  385. data/lib/expressir/model/repository.rb +8 -0
  386. data/lib/expressir/model/rule.rb +44 -5
  387. data/lib/expressir/model/schema.rb +29 -3
  388. data/lib/expressir/model/scope.rb +17 -0
  389. data/lib/expressir/model/statements/alias.rb +10 -1
  390. data/lib/expressir/model/statements/{procedure_call.rb → call.rb} +3 -3
  391. data/lib/expressir/model/statements/case.rb +2 -2
  392. data/lib/expressir/model/statements/case_action.rb +2 -2
  393. data/lib/expressir/model/statements/if.rb +2 -2
  394. data/lib/expressir/model/statements/repeat.rb +11 -2
  395. data/lib/expressir/model/subtype_constraint.rb +13 -5
  396. data/lib/expressir/model/type.rb +10 -1
  397. data/lib/expressir/model/types/aggregate.rb +4 -2
  398. data/lib/expressir/model/types/enumeration.rb +4 -4
  399. data/lib/expressir/model/types/generic.rb +2 -2
  400. data/lib/expressir/model/types/generic_entity.rb +2 -2
  401. data/lib/expressir/model/types/select.rb +4 -4
  402. data/lib/expressir/model/unique.rb +3 -1
  403. data/lib/expressir/model/{derived.rb → variable.rb} +4 -2
  404. data/lib/expressir/model/where.rb +3 -1
  405. data/lib/expressir/version.rb +1 -1
  406. data/original/examples/syntax/remark.exp +145 -0
  407. data/original/examples/syntax/remark_formatted.exp +174 -0
  408. data/original/examples/syntax/syntax.exp +287 -272
  409. data/original/examples/syntax/syntax_formatted.exp +1187 -0
  410. data/spec/expressir/express_exp/ap233_spec.rb +1 -1
  411. data/spec/expressir/express_exp/format_remark_spec.rb +28 -0
  412. data/spec/expressir/express_exp/format_syntax_spec.rb +28 -0
  413. data/spec/expressir/express_exp/parse_remark_spec.rb +345 -0
  414. data/spec/expressir/express_exp/parse_syntax_spec.rb +2998 -0
  415. data/spec/expressir/model/find_spec.rb +110 -0
  416. metadata +407 -65
  417. data/.github/workflows/macos.yml +0 -38
  418. data/.github/workflows/ubuntu.yml +0 -56
  419. data/.github/workflows/windows.yml +0 -40
  420. data/generate-parser.sh +0 -29
  421. data/lib/expressir/express_exp/generated/ExpressBaseVisitor.rb +0 -779
  422. data/lib/expressir/express_exp/generated/ExpressLexer.rb +0 -841
  423. data/lib/expressir/express_exp/generated/ExpressParser.rb +0 -12136
  424. data/lib/expressir/express_exp/generated/ExpressVisitor.rb +0 -394
  425. data/lib/expressir/model/explicit.rb +0 -15
  426. data/lib/expressir/model/expressions/aggregate_element.rb +0 -15
  427. data/lib/expressir/model/expressions/qualified_ref.rb +0 -15
  428. data/lib/expressir/model/expressions/query.rb +0 -17
  429. data/lib/expressir/model/expressions/unknown.rb +0 -8
  430. data/lib/expressir/model/inverse.rb +0 -15
  431. data/lib/expressir/model/local.rb +0 -15
  432. data/lib/expressir/model/operators/addition.rb +0 -8
  433. data/lib/expressir/model/operators/and.rb +0 -8
  434. data/lib/expressir/model/operators/andor.rb +0 -8
  435. data/lib/expressir/model/operators/combine.rb +0 -8
  436. data/lib/expressir/model/operators/equal.rb +0 -8
  437. data/lib/expressir/model/operators/exponentiation.rb +0 -8
  438. data/lib/expressir/model/operators/greater_than.rb +0 -8
  439. data/lib/expressir/model/operators/greater_than_or_equal.rb +0 -8
  440. data/lib/expressir/model/operators/in.rb +0 -8
  441. data/lib/expressir/model/operators/instance_equal.rb +0 -8
  442. data/lib/expressir/model/operators/instance_not_equal.rb +0 -8
  443. data/lib/expressir/model/operators/integer_division.rb +0 -8
  444. data/lib/expressir/model/operators/less_than.rb +0 -8
  445. data/lib/expressir/model/operators/less_than_or_equal.rb +0 -8
  446. data/lib/expressir/model/operators/like.rb +0 -8
  447. data/lib/expressir/model/operators/modulo.rb +0 -8
  448. data/lib/expressir/model/operators/multiplication.rb +0 -8
  449. data/lib/expressir/model/operators/not.rb +0 -8
  450. data/lib/expressir/model/operators/not_equal.rb +0 -8
  451. data/lib/expressir/model/operators/oneof.rb +0 -8
  452. data/lib/expressir/model/operators/or.rb +0 -8
  453. data/lib/expressir/model/operators/real_division.rb +0 -8
  454. data/lib/expressir/model/operators/subtraction.rb +0 -8
  455. data/lib/expressir/model/operators/unary_minus.rb +0 -8
  456. data/lib/expressir/model/operators/unary_plus.rb +0 -8
  457. data/lib/expressir/model/operators/xor.rb +0 -8
  458. data/lib/expressir/model/use.rb +0 -13
  459. data/spec/expressir/express_exp/syntax_spec.rb +0 -2640
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Expressions
4
- class Unknown
5
- end
6
- end
7
- end
8
- end
@@ -1,15 +0,0 @@
1
- module Expressir
2
- module Model
3
- class Inverse
4
- attr_accessor :id
5
- attr_accessor :type
6
- attr_accessor :attribute
7
-
8
- def initialize(options = {})
9
- @id = options[:id]
10
- @type = options[:type]
11
- @attribute = options[:attribute]
12
- end
13
- end
14
- end
15
- end
@@ -1,15 +0,0 @@
1
- module Expressir
2
- module Model
3
- class Local
4
- attr_accessor :id
5
- attr_accessor :type
6
- attr_accessor :expression
7
-
8
- def initialize(options = {})
9
- @id = options[:id]
10
- @type = options[:type]
11
- @expression = options[:expression]
12
- end
13
- end
14
- end
15
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class Addition
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class And
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class Andor
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class Combine
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class Equal
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class Exponentiation
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class GreaterThan
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class GreaterThanOrEqual
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class In
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class InstanceEqual
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class InstanceNotEqual
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class IntegerDivision
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class LessThan
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class LessThanOrEqual
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class Like
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class Modulo
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class Multiplication
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class Not
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class NotEqual
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class Oneof
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class Or
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class RealDivision
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class Subtraction
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class UnaryMinus
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class UnaryPlus
5
- end
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Expressir
2
- module Model
3
- module Operators
4
- class Xor
5
- end
6
- end
7
- end
8
- end
@@ -1,13 +0,0 @@
1
- module Expressir
2
- module Model
3
- class Use
4
- attr_accessor :schema
5
- attr_accessor :items
6
-
7
- def initialize(options = {})
8
- @schema = options[:schema]
9
- @items = options[:items]
10
- end
11
- end
12
- end
13
- end
@@ -1,2640 +0,0 @@
1
- require "spec_helper"
2
- require_relative "../../../lib/expressir/express_exp/parser"
3
-
4
- RSpec.describe Expressir::ExpressExp::Parser do
5
- describe ".from_file" do
6
- it "build an instance from a file" do
7
- repo = Expressir::ExpressExp::Parser.from_exp(sample_file)
8
-
9
- schemas = repo.schemas
10
-
11
- schema = schemas.find{|x| x.id == "syntaxSchema"}
12
- expect(schema.version).to eq("version")
13
-
14
- interfaces = schema.interfaces
15
- constants = schema.constants
16
- types = schema.types
17
- entities = schema.entities
18
- subtype_constraints = schema.subtype_constraints
19
- functions = schema.functions
20
- procedures = schema.procedures
21
- rules = schema.rules
22
-
23
- # intefaces
24
- interfaces.find{|x| x.schema.id == "useInterface"}.tap do |x|
25
- expect(x).to be_instance_of(Expressir::Model::Use)
26
- end
27
-
28
- interfaces.find{|x| x.schema.id == "useItemInterface"}.tap do |x|
29
- expect(x).to be_instance_of(Expressir::Model::Use)
30
- expect(x.items).to be_instance_of(Array)
31
- expect(x.items.count).to eq(1)
32
- expect(x.items[0]).to be_instance_of(Expressir::Model::Ref)
33
- expect(x.items[0].id).to eq("test")
34
- end
35
-
36
- interfaces.find{|x| x.schema.id == "useItemRenameInterface"}.tap do |x|
37
- expect(x).to be_instance_of(Expressir::Model::Use)
38
- expect(x.items).to be_instance_of(Array)
39
- expect(x.items.count).to eq(1)
40
- expect(x.items[0]).to be_instance_of(Expressir::Model::RenamedRef)
41
- expect(x.items[0].ref).to be_instance_of(Expressir::Model::Ref)
42
- expect(x.items[0].ref.id).to eq("test")
43
- expect(x.items[0].id).to eq("test2")
44
- end
45
-
46
- interfaces.find{|x| x.schema.id == "referenceInterface"}.tap do |x|
47
- expect(x).to be_instance_of(Expressir::Model::Reference)
48
- end
49
-
50
- interfaces.find{|x| x.schema.id == "referenceItemInterface"}.tap do |x|
51
- expect(x).to be_instance_of(Expressir::Model::Reference)
52
- expect(x.items).to be_instance_of(Array)
53
- expect(x.items.count).to eq(1)
54
- expect(x.items[0]).to be_instance_of(Expressir::Model::Ref)
55
- expect(x.items[0].id).to eq("test")
56
- end
57
-
58
- interfaces.find{|x| x.schema.id == "referenceItemRenameInterface"}.tap do |x|
59
- expect(x).to be_instance_of(Expressir::Model::Reference)
60
- expect(x.items).to be_instance_of(Array)
61
- expect(x.items.count).to eq(1)
62
- expect(x.items[0]).to be_instance_of(Expressir::Model::RenamedRef)
63
- expect(x.items[0].ref).to be_instance_of(Expressir::Model::Ref)
64
- expect(x.items[0].ref.id).to eq("test")
65
- expect(x.items[0].id).to eq("test2")
66
- end
67
-
68
- # literals
69
- constants.find{|x| x.id == "binaryExpression"}.expression.tap do |x|
70
- expect(x).to eq("xxx")
71
- end
72
-
73
- constants.find{|x| x.id == "integerExpression"}.expression.tap do |x|
74
- expect(x).to eq(999)
75
- end
76
-
77
- constants.find{|x| x.id == "logicalTrueExpression"}.expression.tap do |x|
78
- expect(x).to eq(true)
79
- end
80
-
81
- constants.find{|x| x.id == "logicalFalseExpression"}.expression.tap do |x|
82
- expect(x).to eq(false)
83
- end
84
-
85
- constants.find{|x| x.id == "logicalUnknownExpression"}.expression.tap do |x|
86
- expect(x).to be_instance_of(Expressir::Model::Expressions::Unknown)
87
- end
88
-
89
- constants.find{|x| x.id == "realExpression"}.expression.tap do |x|
90
- expect(x).to eq(999.999)
91
- end
92
-
93
- constants.find{|x| x.id == "stringSimpleExpression"}.expression.tap do |x|
94
- expect(x).to eq("xxx")
95
- end
96
-
97
- constants.find{|x| x.id == "stringEncodedExpression"}.expression.tap do |x|
98
- expect(x).to eq("xxx")
99
- end
100
-
101
- # constants
102
- constants.find{|x| x.id == "constEExpression"}.expression.tap do |x|
103
- expect(x).to be_instance_of(Expressir::Model::Ref)
104
- expect(x.id).to eq("CONST_E")
105
- end
106
-
107
- constants.find{|x| x.id == "indeterminateExpression"}.expression.tap do |x|
108
- expect(x).to be_instance_of(Expressir::Model::Ref)
109
- expect(x.id).to eq("?")
110
- end
111
-
112
- constants.find{|x| x.id == "piExpression"}.expression.tap do |x|
113
- expect(x).to be_instance_of(Expressir::Model::Ref)
114
- expect(x.id).to eq("PI")
115
- end
116
-
117
- constants.find{|x| x.id == "selfExpression"}.expression.tap do |x|
118
- expect(x).to be_instance_of(Expressir::Model::Ref)
119
- expect(x.id).to eq("SELF")
120
- end
121
-
122
- # functions
123
- constants.find{|x| x.id == "absExpression"}.expression.tap do |x|
124
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
125
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
126
- expect(x.function.id).to eq("ABS")
127
- expect(x.parameters).to be_instance_of(Array)
128
- expect(x.parameters.count).to eq(1)
129
- expect(x.parameters[0]).to eq(true)
130
- end
131
-
132
- constants.find{|x| x.id == "acosExpression"}.expression.tap do |x|
133
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
134
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
135
- expect(x.function.id).to eq("ACOS")
136
- expect(x.parameters).to be_instance_of(Array)
137
- expect(x.parameters.count).to eq(1)
138
- expect(x.parameters[0]).to eq(true)
139
- end
140
-
141
- constants.find{|x| x.id == "asinExpression"}.expression.tap do |x|
142
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
143
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
144
- expect(x.function.id).to eq("ASIN")
145
- expect(x.parameters).to be_instance_of(Array)
146
- expect(x.parameters.count).to eq(1)
147
- expect(x.parameters[0]).to eq(true)
148
- end
149
-
150
- constants.find{|x| x.id == "atanExpression"}.expression.tap do |x|
151
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
152
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
153
- expect(x.function.id).to eq("ATAN")
154
- expect(x.parameters).to be_instance_of(Array)
155
- expect(x.parameters.count).to eq(1)
156
- expect(x.parameters[0]).to eq(true)
157
- end
158
-
159
- constants.find{|x| x.id == "blengthExpression"}.expression.tap do |x|
160
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
161
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
162
- expect(x.function.id).to eq("BLENGTH")
163
- expect(x.parameters).to be_instance_of(Array)
164
- expect(x.parameters.count).to eq(1)
165
- expect(x.parameters[0]).to eq(true)
166
- end
167
-
168
- constants.find{|x| x.id == "cosExpression"}.expression.tap do |x|
169
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
170
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
171
- expect(x.function.id).to eq("COS")
172
- expect(x.parameters).to be_instance_of(Array)
173
- expect(x.parameters.count).to eq(1)
174
- expect(x.parameters[0]).to eq(true)
175
- end
176
-
177
- constants.find{|x| x.id == "existsExpression"}.expression.tap do |x|
178
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
179
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
180
- expect(x.function.id).to eq("EXISTS")
181
- expect(x.parameters).to be_instance_of(Array)
182
- expect(x.parameters.count).to eq(1)
183
- expect(x.parameters[0]).to eq(true)
184
- end
185
-
186
- constants.find{|x| x.id == "expExpression"}.expression.tap do |x|
187
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
188
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
189
- expect(x.function.id).to eq("EXP")
190
- expect(x.parameters).to be_instance_of(Array)
191
- expect(x.parameters.count).to eq(1)
192
- expect(x.parameters[0]).to eq(true)
193
- end
194
-
195
- constants.find{|x| x.id == "formatExpression"}.expression.tap do |x|
196
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
197
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
198
- expect(x.function.id).to eq("FORMAT")
199
- expect(x.parameters).to be_instance_of(Array)
200
- expect(x.parameters.count).to eq(1)
201
- expect(x.parameters[0]).to eq(true)
202
- end
203
-
204
- constants.find{|x| x.id == "hiboundExpression"}.expression.tap do |x|
205
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
206
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
207
- expect(x.function.id).to eq("HIBOUND")
208
- expect(x.parameters).to be_instance_of(Array)
209
- expect(x.parameters.count).to eq(1)
210
- expect(x.parameters[0]).to eq(true)
211
- end
212
-
213
- constants.find{|x| x.id == "hiindexExpression"}.expression.tap do |x|
214
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
215
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
216
- expect(x.function.id).to eq("HIINDEX")
217
- expect(x.parameters).to be_instance_of(Array)
218
- expect(x.parameters.count).to eq(1)
219
- expect(x.parameters[0]).to eq(true)
220
- end
221
-
222
- constants.find{|x| x.id == "lengthExpression"}.expression.tap do |x|
223
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
224
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
225
- expect(x.function.id).to eq("LENGTH")
226
- expect(x.parameters).to be_instance_of(Array)
227
- expect(x.parameters.count).to eq(1)
228
- expect(x.parameters[0]).to eq(true)
229
- end
230
-
231
- constants.find{|x| x.id == "loboundExpression"}.expression.tap do |x|
232
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
233
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
234
- expect(x.function.id).to eq("LOBOUND")
235
- expect(x.parameters).to be_instance_of(Array)
236
- expect(x.parameters.count).to eq(1)
237
- expect(x.parameters[0]).to eq(true)
238
- end
239
-
240
- constants.find{|x| x.id == "loindexExpression"}.expression.tap do |x|
241
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
242
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
243
- expect(x.function.id).to eq("LOINDEX")
244
- expect(x.parameters).to be_instance_of(Array)
245
- expect(x.parameters.count).to eq(1)
246
- expect(x.parameters[0]).to eq(true)
247
- end
248
-
249
- constants.find{|x| x.id == "logExpression"}.expression.tap do |x|
250
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
251
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
252
- expect(x.function.id).to eq("LOG")
253
- expect(x.parameters).to be_instance_of(Array)
254
- expect(x.parameters.count).to eq(1)
255
- expect(x.parameters[0]).to eq(true)
256
- end
257
-
258
- constants.find{|x| x.id == "log2Expression"}.expression.tap do |x|
259
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
260
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
261
- expect(x.function.id).to eq("LOG2")
262
- expect(x.parameters).to be_instance_of(Array)
263
- expect(x.parameters.count).to eq(1)
264
- expect(x.parameters[0]).to eq(true)
265
- end
266
-
267
- constants.find{|x| x.id == "log10Expression"}.expression.tap do |x|
268
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
269
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
270
- expect(x.function.id).to eq("LOG10")
271
- expect(x.parameters).to be_instance_of(Array)
272
- expect(x.parameters.count).to eq(1)
273
- expect(x.parameters[0]).to eq(true)
274
- end
275
-
276
- constants.find{|x| x.id == "nvlExpression"}.expression.tap do |x|
277
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
278
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
279
- expect(x.function.id).to eq("NVL")
280
- expect(x.parameters).to be_instance_of(Array)
281
- expect(x.parameters.count).to eq(1)
282
- expect(x.parameters[0]).to eq(true)
283
- end
284
-
285
- constants.find{|x| x.id == "oddExpression"}.expression.tap do |x|
286
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
287
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
288
- expect(x.function.id).to eq("ODD")
289
- expect(x.parameters).to be_instance_of(Array)
290
- expect(x.parameters.count).to eq(1)
291
- expect(x.parameters[0]).to eq(true)
292
- end
293
-
294
- constants.find{|x| x.id == "rolesofExpression"}.expression.tap do |x|
295
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
296
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
297
- expect(x.function.id).to eq("ROLESOF")
298
- expect(x.parameters).to be_instance_of(Array)
299
- expect(x.parameters.count).to eq(1)
300
- expect(x.parameters[0]).to eq(true)
301
- end
302
-
303
- constants.find{|x| x.id == "sinExpression"}.expression.tap do |x|
304
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
305
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
306
- expect(x.function.id).to eq("SIN")
307
- expect(x.parameters).to be_instance_of(Array)
308
- expect(x.parameters.count).to eq(1)
309
- expect(x.parameters[0]).to eq(true)
310
- end
311
-
312
- constants.find{|x| x.id == "sizeofExpression"}.expression.tap do |x|
313
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
314
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
315
- expect(x.function.id).to eq("SIZEOF")
316
- expect(x.parameters).to be_instance_of(Array)
317
- expect(x.parameters.count).to eq(1)
318
- expect(x.parameters[0]).to eq(true)
319
- end
320
-
321
- constants.find{|x| x.id == "sqrtExpression"}.expression.tap do |x|
322
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
323
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
324
- expect(x.function.id).to eq("SQRT")
325
- expect(x.parameters).to be_instance_of(Array)
326
- expect(x.parameters.count).to eq(1)
327
- expect(x.parameters[0]).to eq(true)
328
- end
329
-
330
- constants.find{|x| x.id == "tanExpression"}.expression.tap do |x|
331
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
332
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
333
- expect(x.function.id).to eq("TAN")
334
- expect(x.parameters).to be_instance_of(Array)
335
- expect(x.parameters.count).to eq(1)
336
- expect(x.parameters[0]).to eq(true)
337
- end
338
-
339
- constants.find{|x| x.id == "typeofExpression"}.expression.tap do |x|
340
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
341
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
342
- expect(x.function.id).to eq("TYPEOF")
343
- expect(x.parameters).to be_instance_of(Array)
344
- expect(x.parameters.count).to eq(1)
345
- expect(x.parameters[0]).to eq(true)
346
- end
347
-
348
- constants.find{|x| x.id == "usedinExpression"}.expression.tap do |x|
349
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
350
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
351
- expect(x.function.id).to eq("USEDIN")
352
- expect(x.parameters).to be_instance_of(Array)
353
- expect(x.parameters.count).to eq(1)
354
- expect(x.parameters[0]).to eq(true)
355
- end
356
-
357
- constants.find{|x| x.id == "valueExpression"}.expression.tap do |x|
358
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
359
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
360
- expect(x.function.id).to eq("VALUE")
361
- expect(x.parameters).to be_instance_of(Array)
362
- expect(x.parameters.count).to eq(1)
363
- expect(x.parameters[0]).to eq(true)
364
- end
365
-
366
- constants.find{|x| x.id == "valueInExpression"}.expression.tap do |x|
367
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
368
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
369
- expect(x.function.id).to eq("VALUE_IN")
370
- expect(x.parameters).to be_instance_of(Array)
371
- expect(x.parameters.count).to eq(1)
372
- expect(x.parameters[0]).to eq(true)
373
- end
374
-
375
- constants.find{|x| x.id == "valueUniqueExpression"}.expression.tap do |x|
376
- expect(x).to be_instance_of(Expressir::Model::Expressions::FunctionCall)
377
- expect(x.function).to be_instance_of(Expressir::Model::Ref)
378
- expect(x.function.id).to eq("VALUE_UNIQUE")
379
- expect(x.parameters).to be_instance_of(Array)
380
- expect(x.parameters.count).to eq(1)
381
- expect(x.parameters[0]).to eq(true)
382
- end
383
-
384
- # operations
385
- constants.find{|x| x.id == "unaryPlusExpression"}.expression.tap do |x|
386
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
387
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::UnaryPlus)
388
- expect(x.operands).to be_instance_of(Array)
389
- expect(x.operands.count).to eq(1)
390
- expect(x.operands[0]).to eq(4)
391
- end
392
-
393
- constants.find{|x| x.id == "unaryMinusExpression"}.expression.tap do |x|
394
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
395
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::UnaryMinus)
396
- expect(x.operands).to be_instance_of(Array)
397
- expect(x.operands.count).to eq(1)
398
- expect(x.operands[0]).to eq(4)
399
- end
400
-
401
- constants.find{|x| x.id == "additionExpression"}.expression.tap do |x|
402
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
403
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Addition)
404
- expect(x.operands).to be_instance_of(Array)
405
- expect(x.operands.count).to eq(2)
406
- expect(x.operands[0]).to eq(4)
407
- expect(x.operands[1]).to eq(2)
408
- end
409
-
410
- constants.find{|x| x.id == "subtractionExpression"}.expression.tap do |x|
411
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
412
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Subtraction)
413
- expect(x.operands).to be_instance_of(Array)
414
- expect(x.operands.count).to eq(2)
415
- expect(x.operands[0]).to eq(4)
416
- expect(x.operands[1]).to eq(2)
417
- end
418
-
419
- constants.find{|x| x.id == "multiplicationExpression"}.expression.tap do |x|
420
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
421
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Multiplication)
422
- expect(x.operands).to be_instance_of(Array)
423
- expect(x.operands.count).to eq(2)
424
- expect(x.operands[0]).to eq(4)
425
- expect(x.operands[1]).to eq(2)
426
- end
427
-
428
- constants.find{|x| x.id == "realDivisionExpression"}.expression.tap do |x|
429
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
430
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::RealDivision)
431
- expect(x.operands).to be_instance_of(Array)
432
- expect(x.operands.count).to eq(2)
433
- expect(x.operands[0]).to eq(4)
434
- expect(x.operands[1]).to eq(2)
435
- end
436
-
437
- constants.find{|x| x.id == "integerDivisionExpression"}.expression.tap do |x|
438
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
439
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::IntegerDivision)
440
- expect(x.operands).to be_instance_of(Array)
441
- expect(x.operands.count).to eq(2)
442
- expect(x.operands[0]).to eq(4)
443
- expect(x.operands[1]).to eq(2)
444
- end
445
-
446
- constants.find{|x| x.id == "moduloExpression"}.expression.tap do |x|
447
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
448
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Modulo)
449
- expect(x.operands).to be_instance_of(Array)
450
- expect(x.operands.count).to eq(2)
451
- expect(x.operands[0]).to eq(4)
452
- expect(x.operands[1]).to eq(2)
453
- end
454
-
455
- constants.find{|x| x.id == "exponentiationExpression"}.expression.tap do |x|
456
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
457
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Exponentiation)
458
- expect(x.operands).to be_instance_of(Array)
459
- expect(x.operands.count).to eq(2)
460
- expect(x.operands[0]).to eq(4)
461
- expect(x.operands[1]).to eq(2)
462
- end
463
-
464
- constants.find{|x| x.id == "additionAdditionExpression"}.expression.tap do |x|
465
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
466
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Addition)
467
- expect(x.operands).to be_instance_of(Array)
468
- expect(x.operands.count).to eq(2)
469
- expect(x.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
470
- expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Addition)
471
- expect(x.operands[0].operands).to be_instance_of(Array)
472
- expect(x.operands[0].operands.count).to eq(2)
473
- expect(x.operands[0].operands[0]).to eq(4)
474
- expect(x.operands[0].operands[1]).to eq(2)
475
- expect(x.operands[1]).to eq(1)
476
- end
477
-
478
- constants.find{|x| x.id == "subtractionSubtractionExpression"}.expression.tap do |x|
479
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
480
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Subtraction)
481
- expect(x.operands).to be_instance_of(Array)
482
- expect(x.operands.count).to eq(2)
483
- expect(x.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
484
- expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Subtraction)
485
- expect(x.operands[0].operands).to be_instance_of(Array)
486
- expect(x.operands[0].operands.count).to eq(2)
487
- expect(x.operands[0].operands[0]).to eq(4)
488
- expect(x.operands[0].operands[1]).to eq(2)
489
- expect(x.operands[1]).to eq(1)
490
- end
491
-
492
- constants.find{|x| x.id == "additionSubtractionExpression"}.expression.tap do |x|
493
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
494
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Subtraction)
495
- expect(x.operands).to be_instance_of(Array)
496
- expect(x.operands.count).to eq(2)
497
- expect(x.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
498
- expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Addition)
499
- expect(x.operands[0].operands).to be_instance_of(Array)
500
- expect(x.operands[0].operands.count).to eq(2)
501
- expect(x.operands[0].operands[0]).to eq(4)
502
- expect(x.operands[0].operands[1]).to eq(2)
503
- expect(x.operands[1]).to eq(1)
504
- end
505
-
506
- constants.find{|x| x.id == "subtractionAdditionExpression"}.expression.tap do |x|
507
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
508
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Addition)
509
- expect(x.operands).to be_instance_of(Array)
510
- expect(x.operands.count).to eq(2)
511
- expect(x.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
512
- expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Subtraction)
513
- expect(x.operands[0].operands).to be_instance_of(Array)
514
- expect(x.operands[0].operands.count).to eq(2)
515
- expect(x.operands[0].operands[0]).to eq(4)
516
- expect(x.operands[0].operands[1]).to eq(2)
517
- expect(x.operands[1]).to eq(1)
518
- end
519
-
520
- constants.find{|x| x.id == "additionMultiplicationExpression"}.expression.tap do |x|
521
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
522
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Addition)
523
- expect(x.operands).to be_instance_of(Array)
524
- expect(x.operands.count).to eq(2)
525
- expect(x.operands[0]).to eq(8)
526
- expect(x.operands[1]).to be_instance_of(Expressir::Model::Expressions::Expression)
527
- expect(x.operands[1].operator).to be_instance_of(Expressir::Model::Operators::Multiplication)
528
- expect(x.operands[1].operands).to be_instance_of(Array)
529
- expect(x.operands[1].operands.count).to eq(2)
530
- expect(x.operands[1].operands[0]).to eq(4)
531
- expect(x.operands[1].operands[1]).to eq(2)
532
- end
533
-
534
- constants.find{|x| x.id == "multiplicationAdditionExpression"}.expression.tap do |x|
535
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
536
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Addition)
537
- expect(x.operands).to be_instance_of(Array)
538
- expect(x.operands.count).to eq(2)
539
- expect(x.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
540
- expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Multiplication)
541
- expect(x.operands[0].operands).to be_instance_of(Array)
542
- expect(x.operands[0].operands.count).to eq(2)
543
- expect(x.operands[0].operands[0]).to eq(8)
544
- expect(x.operands[0].operands[1]).to eq(4)
545
- expect(x.operands[1]).to eq(2)
546
- end
547
-
548
- constants.find{|x| x.id == "parenthesisAdditionMultiplicationExpression"}.expression.tap do |x|
549
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
550
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Multiplication)
551
- expect(x.operands).to be_instance_of(Array)
552
- expect(x.operands.count).to eq(2)
553
- expect(x.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
554
- expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Addition)
555
- expect(x.operands[0].operands).to be_instance_of(Array)
556
- expect(x.operands[0].operands.count).to eq(2)
557
- expect(x.operands[0].operands[0]).to eq(8)
558
- expect(x.operands[0].operands[1]).to eq(4)
559
- expect(x.operands[1]).to eq(2)
560
- end
561
-
562
- constants.find{|x| x.id == "multiplicationParenthesisAdditionExpression"}.expression.tap do |x|
563
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
564
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Multiplication)
565
- expect(x.operands).to be_instance_of(Array)
566
- expect(x.operands.count).to eq(2)
567
- expect(x.operands[0]).to eq(8)
568
- expect(x.operands[1]).to be_instance_of(Expressir::Model::Expressions::Expression)
569
- expect(x.operands[1].operator).to be_instance_of(Expressir::Model::Operators::Addition)
570
- expect(x.operands[1].operands).to be_instance_of(Array)
571
- expect(x.operands[1].operands.count).to eq(2)
572
- expect(x.operands[1].operands[0]).to eq(4)
573
- expect(x.operands[1].operands[1]).to eq(2)
574
- end
575
-
576
- constants.find{|x| x.id == "equalExpression"}.expression.tap do |x|
577
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
578
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Equal)
579
- expect(x.operands).to be_instance_of(Array)
580
- expect(x.operands.count).to eq(2)
581
- expect(x.operands[0]).to eq(4)
582
- expect(x.operands[1]).to eq(2)
583
- end
584
-
585
- constants.find{|x| x.id == "notEqualExpression"}.expression.tap do |x|
586
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
587
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::NotEqual)
588
- expect(x.operands).to be_instance_of(Array)
589
- expect(x.operands.count).to eq(2)
590
- expect(x.operands[0]).to eq(4)
591
- expect(x.operands[1]).to eq(2)
592
- end
593
-
594
- constants.find{|x| x.id == "ltExpression"}.expression.tap do |x|
595
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
596
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::LessThan)
597
- expect(x.operands).to be_instance_of(Array)
598
- expect(x.operands.count).to eq(2)
599
- expect(x.operands[0]).to eq(4)
600
- expect(x.operands[1]).to eq(2)
601
- end
602
-
603
- constants.find{|x| x.id == "gtExpression"}.expression.tap do |x|
604
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
605
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::GreaterThan)
606
- expect(x.operands).to be_instance_of(Array)
607
- expect(x.operands.count).to eq(2)
608
- expect(x.operands[0]).to eq(4)
609
- expect(x.operands[1]).to eq(2)
610
- end
611
-
612
- constants.find{|x| x.id == "lteExpression"}.expression.tap do |x|
613
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
614
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::LessThanOrEqual)
615
- expect(x.operands).to be_instance_of(Array)
616
- expect(x.operands.count).to eq(2)
617
- expect(x.operands[0]).to eq(4)
618
- expect(x.operands[1]).to eq(2)
619
- end
620
-
621
- constants.find{|x| x.id == "gteExpression"}.expression.tap do |x|
622
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
623
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::GreaterThanOrEqual)
624
- expect(x.operands).to be_instance_of(Array)
625
- expect(x.operands.count).to eq(2)
626
- expect(x.operands[0]).to eq(4)
627
- expect(x.operands[1]).to eq(2)
628
- end
629
-
630
- constants.find{|x| x.id == "orExpression"}.expression.tap do |x|
631
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
632
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Or)
633
- expect(x.operands).to be_instance_of(Array)
634
- expect(x.operands.count).to eq(2)
635
- expect(x.operands[0]).to eq(true)
636
- expect(x.operands[1]).to eq(false)
637
- end
638
-
639
- constants.find{|x| x.id == "andExpression"}.expression.tap do |x|
640
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
641
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::And)
642
- expect(x.operands).to be_instance_of(Array)
643
- expect(x.operands.count).to eq(2)
644
- expect(x.operands[0]).to eq(true)
645
- expect(x.operands[1]).to eq(false)
646
- end
647
-
648
- constants.find{|x| x.id == "orOrExpression"}.expression.tap do |x|
649
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
650
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Or)
651
- expect(x.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
652
- expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Or)
653
- expect(x.operands[0].operands).to be_instance_of(Array)
654
- expect(x.operands[0].operands.count).to eq(2)
655
- expect(x.operands[0].operands[0]).to eq(true)
656
- expect(x.operands[0].operands[1]).to eq(false)
657
- expect(x.operands[1]).to eq(true)
658
- end
659
-
660
- constants.find{|x| x.id == "andAndExpression"}.expression.tap do |x|
661
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
662
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::And)
663
- expect(x.operands).to be_instance_of(Array)
664
- expect(x.operands.count).to eq(2)
665
- expect(x.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
666
- expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::And)
667
- expect(x.operands[0].operands).to be_instance_of(Array)
668
- expect(x.operands[0].operands.count).to eq(2)
669
- expect(x.operands[0].operands[0]).to eq(true)
670
- expect(x.operands[0].operands[1]).to eq(false)
671
- expect(x.operands[1]).to eq(true)
672
- end
673
-
674
- constants.find{|x| x.id == "orAndExpression"}.expression.tap do |x|
675
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
676
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Or)
677
- expect(x.operands).to be_instance_of(Array)
678
- expect(x.operands.count).to eq(2)
679
- expect(x.operands[0]).to eq(true)
680
- expect(x.operands[1]).to be_instance_of(Expressir::Model::Expressions::Expression)
681
- expect(x.operands[1].operator).to be_instance_of(Expressir::Model::Operators::And)
682
- expect(x.operands[1].operands).to be_instance_of(Array)
683
- expect(x.operands[1].operands.count).to eq(2)
684
- expect(x.operands[1].operands[0]).to eq(false)
685
- expect(x.operands[1].operands[1]).to eq(true)
686
- end
687
-
688
- constants.find{|x| x.id == "andOrExpression"}.expression.tap do |x|
689
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
690
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Or)
691
- expect(x.operands).to be_instance_of(Array)
692
- expect(x.operands.count).to eq(2)
693
- expect(x.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
694
- expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::And)
695
- expect(x.operands[0].operands).to be_instance_of(Array)
696
- expect(x.operands[0].operands.count).to eq(2)
697
- expect(x.operands[0].operands[0]).to eq(true)
698
- expect(x.operands[0].operands[1]).to eq(false)
699
- expect(x.operands[1]).to eq(true)
700
- end
701
-
702
- constants.find{|x| x.id == "parenthesisOrAndExpression"}.expression.tap do |x|
703
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
704
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::And)
705
- expect(x.operands).to be_instance_of(Array)
706
- expect(x.operands.count).to eq(2)
707
- expect(x.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
708
- expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Or)
709
- expect(x.operands[0].operands).to be_instance_of(Array)
710
- expect(x.operands[0].operands.count).to eq(2)
711
- expect(x.operands[0].operands[0]).to eq(true)
712
- expect(x.operands[0].operands[1]).to eq(false)
713
- expect(x.operands[1]).to eq(true)
714
- end
715
-
716
- constants.find{|x| x.id == "andParenthesisOrExpression"}.expression.tap do |x|
717
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
718
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::And)
719
- expect(x.operands).to be_instance_of(Array)
720
- expect(x.operands.count).to eq(2)
721
- expect(x.operands[0]).to eq(true)
722
- expect(x.operands[1]).to be_instance_of(Expressir::Model::Expressions::Expression)
723
- expect(x.operands[1].operator).to be_instance_of(Expressir::Model::Operators::Or)
724
- expect(x.operands[1].operands).to be_instance_of(Array)
725
- expect(x.operands[1].operands.count).to eq(2)
726
- expect(x.operands[1].operands[0]).to eq(false)
727
- expect(x.operands[1].operands[1]).to eq(true)
728
- end
729
-
730
- # aggregate initializers
731
- constants.find{|x| x.id == "aggregateExpression"}.expression.tap do |x|
732
- expect(x).to be_instance_of(Array)
733
- expect(x.count).to eq(1)
734
- expect(x[0]).to eq("xxx")
735
- end
736
-
737
- constants.find{|x| x.id == "aggregateRepeatedExpression"}.expression.tap do |x|
738
- expect(x).to be_instance_of(Array)
739
- expect(x.count).to eq(1)
740
- expect(x[0]).to be_instance_of(Expressir::Model::Expressions::AggregateElement)
741
- expect(x[0].expression).to eq("xxx")
742
- expect(x[0].repetition).to eq(2)
743
- end
744
-
745
- constants.find{|x| x.id == "aggregateComplexExpression"}.expression.tap do |x|
746
- expect(x).to be_instance_of(Array)
747
- expect(x.count).to eq(1)
748
- expect(x[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
749
- expect(x[0].operator).to be_instance_of(Expressir::Model::Operators::Addition)
750
- expect(x[0].operands).to be_instance_of(Array)
751
- expect(x[0].operands.count).to eq(2)
752
- expect(x[0].operands[0]).to eq(4)
753
- expect(x[0].operands[1]).to eq(2)
754
- end
755
-
756
- constants.find{|x| x.id == "aggregateComplexRepeatedExpression"}.expression.tap do |x|
757
- expect(x).to be_instance_of(Array)
758
- expect(x.count).to eq(1)
759
- expect(x[0]).to be_instance_of(Expressir::Model::Expressions::AggregateElement)
760
- expect(x[0].expression).to be_instance_of(Expressir::Model::Expressions::Expression)
761
- expect(x[0].expression.operator).to be_instance_of(Expressir::Model::Operators::Addition)
762
- expect(x[0].expression.operands).to be_instance_of(Array)
763
- expect(x[0].expression.operands.count).to eq(2)
764
- expect(x[0].expression.operands[0]).to eq(4)
765
- expect(x[0].expression.operands[1]).to eq(2)
766
- expect(x[0].repetition).to be_instance_of(Expressir::Model::Expressions::Expression)
767
- expect(x[0].repetition.operator).to be_instance_of(Expressir::Model::Operators::Addition)
768
- expect(x[0].repetition.operands).to be_instance_of(Array)
769
- expect(x[0].repetition.operands.count).to eq(2)
770
- expect(x[0].repetition.operands[0]).to eq(4)
771
- expect(x[0].repetition.operands[1]).to eq(2)
772
- end
773
-
774
- # entity constructors
775
- constants.find{|x| x.id == "entityConstructorExpression"}.expression.tap do |x|
776
- expect(x).to be_instance_of(Expressir::Model::Expressions::EntityConstructor)
777
- expect(x.entity).to be_instance_of(Expressir::Model::Ref)
778
- expect(x.entity.id).to eq("explicitAttributeEntity")
779
- expect(x.parameters).to be_instance_of(Array)
780
- expect(x.parameters.count).to eq(1)
781
- expect(x.parameters[0]).to eq(true)
782
- end
783
-
784
- # enumeration references
785
- constants.find{|x| x.id == "enumerationReferenceExpression"}.expression.tap do |x|
786
- expect(x).to be_instance_of(Expressir::Model::Ref)
787
- expect(x.id).to eq("test")
788
- end
789
-
790
- constants.find{|x| x.id == "attributeEnumerationReferenceExpression"}.expression.tap do |x|
791
- expect(x).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
792
- expect(x.ref).to be_instance_of(Expressir::Model::Ref)
793
- expect(x.ref.id).to eq("test")
794
- expect(x.qualifiers).to be_instance_of(Array)
795
- expect(x.qualifiers.count).to eq(1)
796
- expect(x.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::AttributeQualifier)
797
- expect(x.qualifiers[0].attribute).to be_instance_of(Expressir::Model::Ref)
798
- expect(x.qualifiers[0].attribute.id).to eq("test")
799
- end
800
-
801
- # intervals
802
- constants.find{|x| x.id == "ltLtIntervalExpression"}.expression.tap do |x|
803
- expect(x).to be_instance_of(Expressir::Model::Expressions::Interval)
804
- expect(x.low).to eq(1)
805
- expect(x.operator1).to be_instance_of(Expressir::Model::Operators::LessThan)
806
- expect(x.item).to eq(5)
807
- expect(x.operator2).to be_instance_of(Expressir::Model::Operators::LessThan)
808
- expect(x.high).to eq(9)
809
- end
810
-
811
- constants.find{|x| x.id == "lteLtIntervalExpression"}.expression.tap do |x|
812
- expect(x).to be_instance_of(Expressir::Model::Expressions::Interval)
813
- expect(x.low).to eq(1)
814
- expect(x.operator1).to be_instance_of(Expressir::Model::Operators::LessThanOrEqual)
815
- expect(x.item).to eq(5)
816
- expect(x.operator2).to be_instance_of(Expressir::Model::Operators::LessThan)
817
- expect(x.high).to eq(9)
818
- end
819
-
820
- constants.find{|x| x.id == "ltLteIntervalExpression"}.expression.tap do |x|
821
- expect(x).to be_instance_of(Expressir::Model::Expressions::Interval)
822
- expect(x.low).to eq(1)
823
- expect(x.operator1).to be_instance_of(Expressir::Model::Operators::LessThan)
824
- expect(x.item).to eq(5)
825
- expect(x.operator2).to be_instance_of(Expressir::Model::Operators::LessThanOrEqual)
826
- expect(x.high).to eq(9)
827
- end
828
-
829
- constants.find{|x| x.id == "lteLteIntervalExpression"}.expression.tap do |x|
830
- expect(x).to be_instance_of(Expressir::Model::Expressions::Interval)
831
- expect(x.low).to eq(1)
832
- expect(x.operator1).to be_instance_of(Expressir::Model::Operators::LessThanOrEqual)
833
- expect(x.item).to eq(5)
834
- expect(x.operator2).to be_instance_of(Expressir::Model::Operators::LessThanOrEqual)
835
- expect(x.high).to eq(9)
836
- end
837
-
838
- constants.find{|x| x.id == "combineExpression"}.expression.tap do |x|
839
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
840
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Combine)
841
- expect(x.operands).to be_instance_of(Array)
842
- expect(x.operands.count).to eq(2)
843
- expect(x.operands[0]).to be_instance_of(Expressir::Model::Ref)
844
- expect(x.operands[0].id).to eq("test")
845
- expect(x.operands[1]).to be_instance_of(Expressir::Model::Ref)
846
- expect(x.operands[1].id).to eq("test")
847
- end
848
-
849
- constants.find{|x| x.id == "inExpression"}.expression.tap do |x|
850
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
851
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::In)
852
- expect(x.operands).to be_instance_of(Array)
853
- expect(x.operands.count).to eq(2)
854
- expect(x.operands[0]).to eq(true)
855
- expect(x.operands[1]).to be_instance_of(Array)
856
- expect(x.operands[1].count).to eq(1)
857
- expect(x.operands[1][0]).to eq(true)
858
- end
859
-
860
- constants.find{|x| x.id == "likeExpression"}.expression.tap do |x|
861
- expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
862
- expect(x.operator).to be_instance_of(Expressir::Model::Operators::Like)
863
- expect(x.operands).to be_instance_of(Array)
864
- expect(x.operands.count).to eq(2)
865
- expect(x.operands[0]).to eq("xxx")
866
- expect(x.operands[1]).to eq("xxx")
867
- end
868
-
869
- # queries
870
- constants.find{|x| x.id == "queryExpression"}.expression.tap do |x|
871
- expect(x).to be_instance_of(Expressir::Model::Expressions::Query)
872
- expect(x.id).to eq("test")
873
- expect(x.source).to be_instance_of(Expressir::Model::Ref)
874
- expect(x.source.id).to eq("test2")
875
- expect(x.expression).to eq(true)
876
- end
877
-
878
- # types
879
- types.find{|x| x.id == "integerType"}.tap do |x|
880
- expect(x).to be_instance_of(Expressir::Model::Type)
881
- expect(x.type).to be_instance_of(Expressir::Model::Types::Integer)
882
- end
883
-
884
- types.find{|x| x.id == "integerWhereType"}.tap do |x|
885
- expect(x).to be_instance_of(Expressir::Model::Type)
886
- expect(x.type).to be_instance_of(Expressir::Model::Types::Integer)
887
- expect(x.where).to be_instance_of(Array)
888
- expect(x.where.count).to eq(1)
889
- expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
890
- expect(x.where[0].expression).to eq(true)
891
- end
892
-
893
- types.find{|x| x.id == "integerWhereLabelType"}.tap do |x|
894
- expect(x).to be_instance_of(Expressir::Model::Type)
895
- expect(x.type).to be_instance_of(Expressir::Model::Types::Integer)
896
- expect(x.where).to be_instance_of(Array)
897
- expect(x.where.count).to eq(1)
898
- expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
899
- expect(x.where[0].id).to eq("WR1")
900
- expect(x.where[0].expression).to eq(true)
901
- end
902
-
903
- # simple types
904
- types.find{|x| x.id == "binaryType"}.type.tap do |x|
905
- expect(x).to be_instance_of(Expressir::Model::Types::Binary)
906
- end
907
-
908
- types.find{|x| x.id == "binaryWidthType"}.type.tap do |x|
909
- expect(x).to be_instance_of(Expressir::Model::Types::Binary)
910
- expect(x.width).to eq(3)
911
- end
912
-
913
- types.find{|x| x.id == "binaryWidthFixedType"}.type.tap do |x|
914
- expect(x).to be_instance_of(Expressir::Model::Types::Binary)
915
- expect(x.width).to eq(3)
916
- expect(x.fixed).to eq(true)
917
- end
918
-
919
- types.find{|x| x.id == "booleanType"}.type.tap do |x|
920
- expect(x).to be_instance_of(Expressir::Model::Types::Boolean)
921
- end
922
-
923
- types.find{|x| x.id == "integerType"}.type.tap do |x|
924
- expect(x).to be_instance_of(Expressir::Model::Types::Integer)
925
- end
926
-
927
- types.find{|x| x.id == "logicalType"}.type.tap do |x|
928
- expect(x).to be_instance_of(Expressir::Model::Types::Logical)
929
- end
930
-
931
- types.find{|x| x.id == "numberType"}.type.tap do |x|
932
- expect(x).to be_instance_of(Expressir::Model::Types::Number)
933
- end
934
-
935
- types.find{|x| x.id == "realType"}.type.tap do |x|
936
- expect(x).to be_instance_of(Expressir::Model::Types::Real)
937
- end
938
-
939
- types.find{|x| x.id == "realPrecisionType"}.type.tap do |x|
940
- expect(x).to be_instance_of(Expressir::Model::Types::Real)
941
- expect(x.precision).to eq(3)
942
- end
943
-
944
- types.find{|x| x.id == "stringType"}.type.tap do |x|
945
- expect(x).to be_instance_of(Expressir::Model::Types::String)
946
- end
947
-
948
- types.find{|x| x.id == "stringWidthType"}.type.tap do |x|
949
- expect(x).to be_instance_of(Expressir::Model::Types::String)
950
- expect(x.width).to eq(3)
951
- end
952
-
953
- types.find{|x| x.id == "stringWidthFixedType"}.type.tap do |x|
954
- expect(x).to be_instance_of(Expressir::Model::Types::String)
955
- expect(x.width).to eq(3)
956
- expect(x.fixed).to eq(true)
957
- end
958
-
959
- # aggregation types
960
- types.find{|x| x.id == "arrayType"}.type.tap do |x|
961
- expect(x).to be_instance_of(Expressir::Model::Types::Array)
962
- expect(x.bound1).to eq(1)
963
- expect(x.bound2).to eq(9)
964
- expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
965
- end
966
-
967
- types.find{|x| x.id == "arrayOptionalType"}.type.tap do |x|
968
- expect(x).to be_instance_of(Expressir::Model::Types::Array)
969
- expect(x.bound1).to eq(1)
970
- expect(x.bound2).to eq(9)
971
- expect(x.optional).to eq(true)
972
- expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
973
- end
974
-
975
- types.find{|x| x.id == "arrayUniqueType"}.type.tap do |x|
976
- expect(x).to be_instance_of(Expressir::Model::Types::Array)
977
- expect(x.bound1).to eq(1)
978
- expect(x.bound2).to eq(9)
979
- expect(x.unique).to eq(true)
980
- expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
981
- end
982
-
983
- types.find{|x| x.id == "arrayOptionalUniqueType"}.type.tap do |x|
984
- expect(x).to be_instance_of(Expressir::Model::Types::Array)
985
- expect(x.bound1).to eq(1)
986
- expect(x.bound2).to eq(9)
987
- expect(x.optional).to eq(true)
988
- expect(x.unique).to eq(true)
989
- expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
990
- end
991
-
992
- types.find{|x| x.id == "bagType"}.type.tap do |x|
993
- expect(x).to be_instance_of(Expressir::Model::Types::Bag)
994
- expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
995
- end
996
-
997
- types.find{|x| x.id == "bagBoundType"}.type.tap do |x|
998
- expect(x).to be_instance_of(Expressir::Model::Types::Bag)
999
- expect(x.bound1).to eq(1)
1000
- expect(x.bound2).to eq(9)
1001
- expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
1002
- end
1003
-
1004
- types.find{|x| x.id == "listType"}.type.tap do |x|
1005
- expect(x).to be_instance_of(Expressir::Model::Types::List)
1006
- expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
1007
- end
1008
-
1009
- types.find{|x| x.id == "listBoundType"}.type.tap do |x|
1010
- expect(x).to be_instance_of(Expressir::Model::Types::List)
1011
- expect(x.bound1).to eq(1)
1012
- expect(x.bound2).to eq(9)
1013
- expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
1014
- end
1015
-
1016
- types.find{|x| x.id == "listUniqueType"}.type.tap do |x|
1017
- expect(x).to be_instance_of(Expressir::Model::Types::List)
1018
- expect(x.unique).to eq(true)
1019
- expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
1020
- end
1021
-
1022
- types.find{|x| x.id == "listBoundUniqueType"}.type.tap do |x|
1023
- expect(x).to be_instance_of(Expressir::Model::Types::List)
1024
- expect(x.bound1).to eq(1)
1025
- expect(x.bound2).to eq(9)
1026
- expect(x.unique).to eq(true)
1027
- expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
1028
- end
1029
-
1030
- types.find{|x| x.id == "setType"}.type.tap do |x|
1031
- expect(x).to be_instance_of(Expressir::Model::Types::Set)
1032
- expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
1033
- end
1034
-
1035
- types.find{|x| x.id == "setBoundType"}.type.tap do |x|
1036
- expect(x).to be_instance_of(Expressir::Model::Types::Set)
1037
- expect(x.bound1).to eq(1)
1038
- expect(x.bound2).to eq(9)
1039
- expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
1040
- end
1041
-
1042
- # constructed types
1043
- types.find{|x| x.id == "selectType"}.type.tap do |x|
1044
- expect(x).to be_instance_of(Expressir::Model::Types::Select)
1045
- end
1046
-
1047
- types.find{|x| x.id == "selectExtensibleType"}.type.tap do |x|
1048
- expect(x).to be_instance_of(Expressir::Model::Types::Select)
1049
- expect(x.extensible).to eq(true)
1050
- end
1051
-
1052
- types.find{|x| x.id == "selectExtensibleGenericEntityType"}.type.tap do |x|
1053
- expect(x).to be_instance_of(Expressir::Model::Types::Select)
1054
- expect(x.extensible).to eq(true)
1055
- expect(x.generic_entity).to eq(true)
1056
- end
1057
-
1058
- types.find{|x| x.id == "selectListType"}.type.tap do |x|
1059
- expect(x).to be_instance_of(Expressir::Model::Types::Select)
1060
- expect(x.list).to be_instance_of(Array)
1061
- expect(x.list.count).to eq(1)
1062
- expect(x.list[0]).to be_instance_of(Expressir::Model::Ref)
1063
- expect(x.list[0].id).to eq("test")
1064
- end
1065
-
1066
- types.find{|x| x.id == "selectExtensionTypeRefType"}.type.tap do |x|
1067
- expect(x).to be_instance_of(Expressir::Model::Types::Select)
1068
- expect(x.extension_type).to be_instance_of(Expressir::Model::Ref)
1069
- expect(x.extension_type.id).to eq("selectType")
1070
- end
1071
-
1072
- types.find{|x| x.id == "selectExtensionTypeRefListType"}.type.tap do |x|
1073
- expect(x).to be_instance_of(Expressir::Model::Types::Select)
1074
- expect(x.extension_type).to be_instance_of(Expressir::Model::Ref)
1075
- expect(x.extension_type.id).to eq("selectType")
1076
- expect(x.extension_list).to be_instance_of(Array)
1077
- expect(x.extension_list.count).to eq(1)
1078
- expect(x.extension_list[0]).to be_instance_of(Expressir::Model::Ref)
1079
- expect(x.extension_list[0].id).to eq("test")
1080
- end
1081
-
1082
- types.find{|x| x.id == "enumerationType"}.type.tap do |x|
1083
- expect(x).to be_instance_of(Expressir::Model::Types::Enumeration)
1084
- end
1085
-
1086
- types.find{|x| x.id == "enumerationExtensibleType"}.type.tap do |x|
1087
- expect(x).to be_instance_of(Expressir::Model::Types::Enumeration)
1088
- expect(x.extensible).to eq(true)
1089
- end
1090
-
1091
- types.find{|x| x.id == "enumerationListType"}.type.tap do |x|
1092
- expect(x).to be_instance_of(Expressir::Model::Types::Enumeration)
1093
- expect(x.list).to be_instance_of(Array)
1094
- expect(x.list.count).to eq(1)
1095
- expect(x.list[0]).to eq("test")
1096
- end
1097
-
1098
- types.find{|x| x.id == "enumerationExtensionTypeRefType"}.type.tap do |x|
1099
- expect(x).to be_instance_of(Expressir::Model::Types::Enumeration)
1100
- expect(x.extension_type).to be_instance_of(Expressir::Model::Ref)
1101
- expect(x.extension_type.id).to eq("enumerationType")
1102
- end
1103
-
1104
- types.find{|x| x.id == "enumerationExtensionTypeRefListType"}.type.tap do |x|
1105
- expect(x).to be_instance_of(Expressir::Model::Types::Enumeration)
1106
- expect(x.extension_type).to be_instance_of(Expressir::Model::Ref)
1107
- expect(x.extension_type.id).to eq("enumerationType")
1108
- expect(x.extension_list).to be_instance_of(Array)
1109
- expect(x.extension_list.count).to eq(1)
1110
- expect(x.extension_list[0]).to eq("test")
1111
- end
1112
-
1113
- # entities
1114
- entities.find{|x| x.id == "emptyEntity"}.tap do |x|
1115
- expect(x).to be_instance_of(Expressir::Model::Entity)
1116
- end
1117
-
1118
- entities.find{|x| x.id == "abstractEntity"}.tap do |x|
1119
- expect(x).to be_instance_of(Expressir::Model::Entity)
1120
- expect(x.abstract).to eq(true)
1121
- end
1122
-
1123
- entities.find{|x| x.id == "abstractSupertypeEntity"}.tap do |x|
1124
- expect(x).to be_instance_of(Expressir::Model::Entity)
1125
- expect(x.abstract_supertype).to eq(true)
1126
- end
1127
-
1128
- entities.find{|x| x.id == "abstractSupertypeConstraintEntity"}.tap do |x|
1129
- expect(x).to be_instance_of(Expressir::Model::Entity)
1130
- expect(x.abstract_supertype).to eq(true)
1131
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Ref)
1132
- expect(x.subtype_expression.id).to eq("emptyEntity")
1133
- end
1134
-
1135
- entities.find{|x| x.id == "supertypeConstraintEntity"}.tap do |x|
1136
- expect(x).to be_instance_of(Expressir::Model::Entity)
1137
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Ref)
1138
- expect(x.subtype_expression.id).to eq("emptyEntity")
1139
- end
1140
-
1141
- entities.find{|x| x.id == "subtypeEntity"}.tap do |x|
1142
- expect(x).to be_instance_of(Expressir::Model::Entity)
1143
- expect(x.supertypes).to be_instance_of(Array)
1144
- expect(x.supertypes.count).to eq(1)
1145
- expect(x.supertypes[0]).to be_instance_of(Expressir::Model::Ref)
1146
- expect(x.supertypes[0].id).to eq("emptyEntity")
1147
- end
1148
-
1149
- entities.find{|x| x.id == "supertypeConstraintSubtypeEntity"}.tap do |x|
1150
- expect(x).to be_instance_of(Expressir::Model::Entity)
1151
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Ref)
1152
- expect(x.subtype_expression.id).to eq("emptyEntity")
1153
- expect(x.supertypes).to be_instance_of(Array)
1154
- expect(x.supertypes.count).to eq(1)
1155
- expect(x.supertypes[0]).to be_instance_of(Expressir::Model::Ref)
1156
- expect(x.supertypes[0].id).to eq("emptyEntity")
1157
- end
1158
-
1159
- entities.find{|x| x.id == "explicitAttributeEntity"}.tap do |x|
1160
- expect(x).to be_instance_of(Expressir::Model::Entity)
1161
- expect(x.explicit).to be_instance_of(Array)
1162
- expect(x.explicit.count).to eq(1)
1163
- expect(x.explicit[0]).to be_instance_of(Expressir::Model::Explicit)
1164
- expect(x.explicit[0].id).to eq("test")
1165
- expect(x.explicit[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1166
- end
1167
-
1168
- entities.find{|x| x.id == "explicitAttributeOptionalEntity"}.tap do |x|
1169
- expect(x).to be_instance_of(Expressir::Model::Entity)
1170
- expect(x.explicit).to be_instance_of(Array)
1171
- expect(x.explicit.count).to eq(1)
1172
- expect(x.explicit[0]).to be_instance_of(Expressir::Model::Explicit)
1173
- expect(x.explicit[0].id).to eq("test")
1174
- expect(x.explicit[0].optional).to eq(true)
1175
- expect(x.explicit[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1176
- end
1177
-
1178
- entities.find{|x| x.id == "explicitAttributeMultipleEntity"}.tap do |x|
1179
- expect(x).to be_instance_of(Expressir::Model::Entity)
1180
- expect(x.explicit).to be_instance_of(Array)
1181
- expect(x.explicit.count).to eq(2)
1182
- expect(x.explicit[0]).to be_instance_of(Expressir::Model::Explicit)
1183
- expect(x.explicit[0].id).to eq("test")
1184
- expect(x.explicit[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1185
- expect(x.explicit[1]).to be_instance_of(Expressir::Model::Explicit)
1186
- expect(x.explicit[1].id).to eq("test2")
1187
- expect(x.explicit[1].type).to be_instance_of(Expressir::Model::Types::Boolean)
1188
- end
1189
-
1190
- entities.find{|x| x.id == "explicitAttributeMultipleShorthandEntity"}.tap do |x|
1191
- expect(x).to be_instance_of(Expressir::Model::Entity)
1192
- expect(x.explicit).to be_instance_of(Array)
1193
- expect(x.explicit.count).to eq(2)
1194
- expect(x.explicit[0]).to be_instance_of(Expressir::Model::Explicit)
1195
- expect(x.explicit[0].id).to eq("test")
1196
- expect(x.explicit[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1197
- expect(x.explicit[1]).to be_instance_of(Expressir::Model::Explicit)
1198
- expect(x.explicit[1].id).to eq("test2")
1199
- expect(x.explicit[1].type).to be_instance_of(Expressir::Model::Types::Boolean)
1200
- end
1201
-
1202
- entities.find{|x| x.id == "explicitAttributeRenamedEntity"}.tap do |x|
1203
- expect(x).to be_instance_of(Expressir::Model::Entity)
1204
- expect(x.explicit).to be_instance_of(Array)
1205
- expect(x.explicit.count).to eq(1)
1206
- expect(x.explicit[0]).to be_instance_of(Expressir::Model::Explicit)
1207
- expect(x.explicit[0].id).to be_instance_of(Expressir::Model::RenamedRef)
1208
- expect(x.explicit[0].id.ref).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
1209
- expect(x.explicit[0].id.ref.ref).to be_instance_of(Expressir::Model::Ref)
1210
- expect(x.explicit[0].id.ref.ref.id).to eq("SELF")
1211
- expect(x.explicit[0].id.ref.qualifiers).to be_instance_of(Array)
1212
- expect(x.explicit[0].id.ref.qualifiers.count).to eq(2)
1213
- expect(x.explicit[0].id.ref.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::GroupQualifier)
1214
- expect(x.explicit[0].id.ref.qualifiers[0].entity).to be_instance_of(Expressir::Model::Ref)
1215
- expect(x.explicit[0].id.ref.qualifiers[0].entity.id).to eq("explicitAttributeEntity")
1216
- expect(x.explicit[0].id.ref.qualifiers[1]).to be_instance_of(Expressir::Model::Expressions::AttributeQualifier)
1217
- expect(x.explicit[0].id.ref.qualifiers[1].attribute).to be_instance_of(Expressir::Model::Ref)
1218
- expect(x.explicit[0].id.ref.qualifiers[1].attribute.id).to eq("test")
1219
- expect(x.explicit[0].id.id).to eq("test2")
1220
- expect(x.explicit[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1221
- end
1222
-
1223
- entities.find{|x| x.id == "derivedAttributeEntity"}.tap do |x|
1224
- expect(x).to be_instance_of(Expressir::Model::Entity)
1225
- expect(x.derived).to be_instance_of(Array)
1226
- expect(x.derived.count).to eq(1)
1227
- expect(x.derived[0]).to be_instance_of(Expressir::Model::Derived)
1228
- expect(x.derived[0].id).to eq("test")
1229
- expect(x.derived[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1230
- expect(x.derived[0].expression).to eq(true)
1231
- end
1232
-
1233
- entities.find{|x| x.id == "inverseAttributeEntity"}.tap do |x|
1234
- expect(x).to be_instance_of(Expressir::Model::Entity)
1235
- expect(x.inverse).to be_instance_of(Array)
1236
- expect(x.inverse.count).to eq(1)
1237
- expect(x.inverse[0]).to be_instance_of(Expressir::Model::Inverse)
1238
- expect(x.inverse[0].id).to eq("test")
1239
- expect(x.inverse[0].type).to be_instance_of(Expressir::Model::Ref)
1240
- expect(x.inverse[0].type.id).to eq("explicitAttributeEntity")
1241
- expect(x.inverse[0].attribute).to be_instance_of(Expressir::Model::Ref)
1242
- expect(x.inverse[0].attribute.id).to eq("test")
1243
- end
1244
-
1245
- entities.find{|x| x.id == "inverseAttributeEntityEntity"}.tap do |x|
1246
- expect(x).to be_instance_of(Expressir::Model::Entity)
1247
- expect(x.inverse).to be_instance_of(Array)
1248
- expect(x.inverse.count).to eq(1)
1249
- expect(x.inverse[0]).to be_instance_of(Expressir::Model::Inverse)
1250
- expect(x.inverse[0].id).to eq("test")
1251
- expect(x.inverse[0].type).to be_instance_of(Expressir::Model::Ref)
1252
- expect(x.inverse[0].type.id).to eq("explicitAttributeEntity")
1253
- expect(x.inverse[0].attribute).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
1254
- expect(x.inverse[0].attribute.ref).to be_instance_of(Expressir::Model::Ref)
1255
- expect(x.inverse[0].attribute.ref.id).to eq("explicitAttributeEntity")
1256
- expect(x.inverse[0].attribute.qualifiers).to be_instance_of(Array)
1257
- expect(x.inverse[0].attribute.qualifiers.count).to eq(1)
1258
- expect(x.inverse[0].attribute.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::AttributeQualifier)
1259
- expect(x.inverse[0].attribute.qualifiers[0].attribute).to be_instance_of(Expressir::Model::Ref)
1260
- expect(x.inverse[0].attribute.qualifiers[0].attribute.id).to eq("test")
1261
- end
1262
-
1263
- entities.find{|x| x.id == "inverseAttributeSetEntity"}.tap do |x|
1264
- expect(x).to be_instance_of(Expressir::Model::Entity)
1265
- expect(x.inverse).to be_instance_of(Array)
1266
- expect(x.inverse.count).to eq(1)
1267
- expect(x.inverse[0]).to be_instance_of(Expressir::Model::Inverse)
1268
- expect(x.inverse[0].id).to eq("test")
1269
- expect(x.inverse[0].type).to be_instance_of(Expressir::Model::Types::Set)
1270
- expect(x.inverse[0].type.base_type).to be_instance_of(Expressir::Model::Ref)
1271
- expect(x.inverse[0].type.base_type.id).to eq("explicitAttributeEntity")
1272
- expect(x.inverse[0].attribute).to be_instance_of(Expressir::Model::Ref)
1273
- expect(x.inverse[0].attribute.id).to eq("test")
1274
- end
1275
-
1276
- entities.find{|x| x.id == "inverseAttributeSetBoundEntity"}.tap do |x|
1277
- expect(x).to be_instance_of(Expressir::Model::Entity)
1278
- expect(x.inverse).to be_instance_of(Array)
1279
- expect(x.inverse.count).to eq(1)
1280
- expect(x.inverse[0]).to be_instance_of(Expressir::Model::Inverse)
1281
- expect(x.inverse[0].id).to eq("test")
1282
- expect(x.inverse[0].type).to be_instance_of(Expressir::Model::Types::Set)
1283
- expect(x.inverse[0].type.bound1).to eq(1)
1284
- expect(x.inverse[0].type.bound2).to eq(9)
1285
- expect(x.inverse[0].type.base_type).to be_instance_of(Expressir::Model::Ref)
1286
- expect(x.inverse[0].type.base_type.id).to eq("explicitAttributeEntity")
1287
- expect(x.inverse[0].attribute).to be_instance_of(Expressir::Model::Ref)
1288
- expect(x.inverse[0].attribute.id).to eq("test")
1289
- end
1290
-
1291
- entities.find{|x| x.id == "inverseAttributeBagEntity"}.tap do |x|
1292
- expect(x).to be_instance_of(Expressir::Model::Entity)
1293
- expect(x.inverse).to be_instance_of(Array)
1294
- expect(x.inverse.count).to eq(1)
1295
- expect(x.inverse[0]).to be_instance_of(Expressir::Model::Inverse)
1296
- expect(x.inverse[0].id).to eq("test")
1297
- expect(x.inverse[0].type).to be_instance_of(Expressir::Model::Types::Bag)
1298
- expect(x.inverse[0].type.base_type).to be_instance_of(Expressir::Model::Ref)
1299
- expect(x.inverse[0].type.base_type.id).to eq("explicitAttributeEntity")
1300
- expect(x.inverse[0].attribute).to be_instance_of(Expressir::Model::Ref)
1301
- expect(x.inverse[0].attribute.id).to eq("test")
1302
- end
1303
-
1304
- entities.find{|x| x.id == "inverseAttributeBagBoundEntity"}.tap do |x|
1305
- expect(x).to be_instance_of(Expressir::Model::Entity)
1306
- expect(x.inverse).to be_instance_of(Array)
1307
- expect(x.inverse.count).to eq(1)
1308
- expect(x.inverse[0]).to be_instance_of(Expressir::Model::Inverse)
1309
- expect(x.inverse[0].id).to eq("test")
1310
- expect(x.inverse[0].type).to be_instance_of(Expressir::Model::Types::Bag)
1311
- expect(x.inverse[0].type.bound1).to eq(1)
1312
- expect(x.inverse[0].type.bound2).to eq(9)
1313
- expect(x.inverse[0].type.base_type).to be_instance_of(Expressir::Model::Ref)
1314
- expect(x.inverse[0].type.base_type.id).to eq("explicitAttributeEntity")
1315
- expect(x.inverse[0].attribute).to be_instance_of(Expressir::Model::Ref)
1316
- expect(x.inverse[0].attribute.id).to eq("test")
1317
- end
1318
-
1319
- entities.find{|x| x.id == "uniqueEntity"}.tap do |x|
1320
- expect(x).to be_instance_of(Expressir::Model::Entity)
1321
- expect(x.unique).to be_instance_of(Array)
1322
- expect(x.unique.count).to eq(1)
1323
- expect(x.unique[0]).to be_instance_of(Expressir::Model::Unique)
1324
- expect(x.unique[0].attributes).to be_instance_of(Array)
1325
- expect(x.unique[0].attributes.count).to eq(1)
1326
- expect(x.unique[0].attributes[0]).to be_instance_of(Expressir::Model::Ref)
1327
- expect(x.unique[0].attributes[0].id).to eq("test")
1328
- end
1329
-
1330
- entities.find{|x| x.id == "uniqueLabelEntity"}.tap do |x|
1331
- expect(x).to be_instance_of(Expressir::Model::Entity)
1332
- expect(x.unique).to be_instance_of(Array)
1333
- expect(x.unique.count).to eq(1)
1334
- expect(x.unique[0]).to be_instance_of(Expressir::Model::Unique)
1335
- expect(x.unique[0].id).to eq("UR1")
1336
- expect(x.unique[0].attributes).to be_instance_of(Array)
1337
- expect(x.unique[0].attributes.count).to eq(1)
1338
- expect(x.unique[0].attributes[0]).to be_instance_of(Expressir::Model::Ref)
1339
- expect(x.unique[0].attributes[0].id).to eq("test")
1340
- end
1341
-
1342
- entities.find{|x| x.id == "uniqueQualifiedEntity"}.tap do |x|
1343
- expect(x).to be_instance_of(Expressir::Model::Entity)
1344
- expect(x.unique).to be_instance_of(Array)
1345
- expect(x.unique.count).to eq(1)
1346
- expect(x.unique[0]).to be_instance_of(Expressir::Model::Unique)
1347
- expect(x.unique[0].attributes).to be_instance_of(Array)
1348
- expect(x.unique[0].attributes.count).to eq(1)
1349
- expect(x.unique[0].attributes[0]).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
1350
- expect(x.unique[0].attributes[0].ref).to be_instance_of(Expressir::Model::Ref)
1351
- expect(x.unique[0].attributes[0].ref.id).to eq("SELF")
1352
- expect(x.unique[0].attributes[0].qualifiers).to be_instance_of(Array)
1353
- expect(x.unique[0].attributes[0].qualifiers.count).to eq(2)
1354
- expect(x.unique[0].attributes[0].qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::GroupQualifier)
1355
- expect(x.unique[0].attributes[0].qualifiers[0].entity).to be_instance_of(Expressir::Model::Ref)
1356
- expect(x.unique[0].attributes[0].qualifiers[0].entity.id).to eq("explicitAttributeEntity")
1357
- expect(x.unique[0].attributes[0].qualifiers[1]).to be_instance_of(Expressir::Model::Expressions::AttributeQualifier)
1358
- expect(x.unique[0].attributes[0].qualifiers[1].attribute).to be_instance_of(Expressir::Model::Ref)
1359
- expect(x.unique[0].attributes[0].qualifiers[1].attribute.id).to eq("test")
1360
- end
1361
-
1362
- entities.find{|x| x.id == "uniqueLabelEntity"}.tap do |x|
1363
- expect(x).to be_instance_of(Expressir::Model::Entity)
1364
- expect(x.unique).to be_instance_of(Array)
1365
- expect(x.unique.count).to eq(1)
1366
- expect(x.unique[0]).to be_instance_of(Expressir::Model::Unique)
1367
- expect(x.unique[0].id).to eq("UR1")
1368
- expect(x.unique[0].attributes).to be_instance_of(Array)
1369
- expect(x.unique[0].attributes.count).to eq(1)
1370
- expect(x.unique[0].attributes[0]).to be_instance_of(Expressir::Model::Ref)
1371
- expect(x.unique[0].attributes[0].id).to eq("test")
1372
- end
1373
-
1374
- entities.find{|x| x.id == "uniqueLabelQualifiedEntity"}.tap do |x|
1375
- expect(x).to be_instance_of(Expressir::Model::Entity)
1376
- expect(x.unique).to be_instance_of(Array)
1377
- expect(x.unique.count).to eq(1)
1378
- expect(x.unique[0]).to be_instance_of(Expressir::Model::Unique)
1379
- expect(x.unique[0].id).to eq("UR1")
1380
- expect(x.unique[0].attributes).to be_instance_of(Array)
1381
- expect(x.unique[0].attributes.count).to eq(1)
1382
- expect(x.unique[0].attributes[0]).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
1383
- expect(x.unique[0].attributes[0].ref).to be_instance_of(Expressir::Model::Ref)
1384
- expect(x.unique[0].attributes[0].ref.id).to eq("SELF")
1385
- expect(x.unique[0].attributes[0].qualifiers).to be_instance_of(Array)
1386
- expect(x.unique[0].attributes[0].qualifiers.count).to eq(2)
1387
- expect(x.unique[0].attributes[0].qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::GroupQualifier)
1388
- expect(x.unique[0].attributes[0].qualifiers[0].entity).to be_instance_of(Expressir::Model::Ref)
1389
- expect(x.unique[0].attributes[0].qualifiers[0].entity.id).to eq("explicitAttributeEntity")
1390
- expect(x.unique[0].attributes[0].qualifiers[1]).to be_instance_of(Expressir::Model::Expressions::AttributeQualifier)
1391
- expect(x.unique[0].attributes[0].qualifiers[1].attribute).to be_instance_of(Expressir::Model::Ref)
1392
- expect(x.unique[0].attributes[0].qualifiers[1].attribute.id).to eq("test")
1393
- end
1394
-
1395
- entities.find{|x| x.id == "whereEntity"}.tap do |x|
1396
- expect(x).to be_instance_of(Expressir::Model::Entity)
1397
- expect(x.where).to be_instance_of(Array)
1398
- expect(x.where.count).to eq(1)
1399
- expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
1400
- expect(x.where[0].expression).to eq(true)
1401
- end
1402
-
1403
- entities.find{|x| x.id == "whereLabelEntity"}.tap do |x|
1404
- expect(x).to be_instance_of(Expressir::Model::Entity)
1405
- expect(x.where).to be_instance_of(Array)
1406
- expect(x.where.count).to eq(1)
1407
- expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
1408
- expect(x.where[0].id).to eq("WR1")
1409
- expect(x.where[0].expression).to eq(true)
1410
- end
1411
-
1412
- # subtype constraints
1413
- subtype_constraints.find{|x| x.id == "emptySubtypeConstraint"}.tap do |x|
1414
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1415
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1416
- expect(x.applies_to.id).to eq("emptyEntity")
1417
- end
1418
-
1419
- subtype_constraints.find{|x| x.id == "abstractSupertypeSubtypeConstraint"}.tap do |x|
1420
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1421
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1422
- expect(x.applies_to.id).to eq("emptyEntity")
1423
- expect(x.abstract_supertype).to eq(true)
1424
- end
1425
-
1426
- subtype_constraints.find{|x| x.id == "totalOverSubtypeConstraint"}.tap do |x|
1427
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1428
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1429
- expect(x.applies_to.id).to eq("emptyEntity")
1430
- expect(x.total_over).to be_instance_of(Array)
1431
- expect(x.total_over.count).to eq(1)
1432
- expect(x.total_over[0]).to be_instance_of(Expressir::Model::Ref)
1433
- expect(x.total_over[0].id).to eq("a")
1434
- end
1435
-
1436
- subtype_constraints.find{|x| x.id == "supertypeExpressionSubtypeConstraint"}.tap do |x|
1437
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1438
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1439
- expect(x.applies_to.id).to eq("emptyEntity")
1440
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Ref)
1441
- expect(x.subtype_expression.id).to eq("a")
1442
- end
1443
-
1444
- subtype_constraints.find{|x| x.id == "supertypeExpressionAndorSubtypeConstraint"}.tap do |x|
1445
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1446
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1447
- expect(x.applies_to.id).to eq("emptyEntity")
1448
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Expressions::Expression)
1449
- expect(x.subtype_expression.operator).to be_instance_of(Expressir::Model::Operators::Andor)
1450
- expect(x.subtype_expression.operands).to be_instance_of(Array)
1451
- expect(x.subtype_expression.operands.count).to eq(2)
1452
- expect(x.subtype_expression.operands[0]).to be_instance_of(Expressir::Model::Ref)
1453
- expect(x.subtype_expression.operands[0].id).to eq("a")
1454
- expect(x.subtype_expression.operands[1]).to be_instance_of(Expressir::Model::Ref)
1455
- expect(x.subtype_expression.operands[1].id).to eq("b")
1456
- end
1457
-
1458
- subtype_constraints.find{|x| x.id == "supertypeExpressionAndSubtypeConstraint"}.tap do |x|
1459
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1460
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1461
- expect(x.applies_to.id).to eq("emptyEntity")
1462
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Expressions::Expression)
1463
- expect(x.subtype_expression.operator).to be_instance_of(Expressir::Model::Operators::And)
1464
- expect(x.subtype_expression.operands).to be_instance_of(Array)
1465
- expect(x.subtype_expression.operands.count).to eq(2)
1466
- expect(x.subtype_expression.operands[0]).to be_instance_of(Expressir::Model::Ref)
1467
- expect(x.subtype_expression.operands[0].id).to eq("a")
1468
- expect(x.subtype_expression.operands[1]).to be_instance_of(Expressir::Model::Ref)
1469
- expect(x.subtype_expression.operands[1].id).to eq("b")
1470
- end
1471
-
1472
- subtype_constraints.find{|x| x.id == "supertypeExpressionAndorAndSubtypeConstraint"}.tap do |x|
1473
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1474
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1475
- expect(x.applies_to.id).to eq("emptyEntity")
1476
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Expressions::Expression)
1477
- expect(x.subtype_expression.operator).to be_instance_of(Expressir::Model::Operators::Andor)
1478
- expect(x.subtype_expression.operands).to be_instance_of(Array)
1479
- expect(x.subtype_expression.operands.count).to eq(2)
1480
- expect(x.subtype_expression.operands[0]).to be_instance_of(Expressir::Model::Ref)
1481
- expect(x.subtype_expression.operands[0].id).to eq("a")
1482
- expect(x.subtype_expression.operands[1]).to be_instance_of(Expressir::Model::Expressions::Expression)
1483
- expect(x.subtype_expression.operands[1].operator).to be_instance_of(Expressir::Model::Operators::And)
1484
- expect(x.subtype_expression.operands[1].operands).to be_instance_of(Array)
1485
- expect(x.subtype_expression.operands[1].operands.count).to eq(2)
1486
- expect(x.subtype_expression.operands[1].operands[0]).to be_instance_of(Expressir::Model::Ref)
1487
- expect(x.subtype_expression.operands[1].operands[0].id).to eq("b")
1488
- expect(x.subtype_expression.operands[1].operands[1]).to be_instance_of(Expressir::Model::Ref)
1489
- expect(x.subtype_expression.operands[1].operands[1].id).to eq("c")
1490
- end
1491
-
1492
- subtype_constraints.find{|x| x.id == "supertypeExpressionAndAndorSubtypeConstraint"}.tap do |x|
1493
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1494
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1495
- expect(x.applies_to.id).to eq("emptyEntity")
1496
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Expressions::Expression)
1497
- expect(x.subtype_expression.operator).to be_instance_of(Expressir::Model::Operators::Andor)
1498
- expect(x.subtype_expression.operands).to be_instance_of(Array)
1499
- expect(x.subtype_expression.operands.count).to eq(2)
1500
- expect(x.subtype_expression.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
1501
- expect(x.subtype_expression.operands[0].operator).to be_instance_of(Expressir::Model::Operators::And)
1502
- expect(x.subtype_expression.operands[0].operands).to be_instance_of(Array)
1503
- expect(x.subtype_expression.operands[0].operands.count).to eq(2)
1504
- expect(x.subtype_expression.operands[0].operands[0]).to be_instance_of(Expressir::Model::Ref)
1505
- expect(x.subtype_expression.operands[0].operands[0].id).to eq("a")
1506
- expect(x.subtype_expression.operands[0].operands[1]).to be_instance_of(Expressir::Model::Ref)
1507
- expect(x.subtype_expression.operands[0].operands[1].id).to eq("b")
1508
- expect(x.subtype_expression.operands[1]).to be_instance_of(Expressir::Model::Ref)
1509
- expect(x.subtype_expression.operands[1].id).to eq("c")
1510
- end
1511
-
1512
- subtype_constraints.find{|x| x.id == "supertypeExpressionParenthesisAndorAndSubtypeConstraint"}.tap do |x|
1513
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1514
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1515
- expect(x.applies_to.id).to eq("emptyEntity")
1516
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Expressions::Expression)
1517
- expect(x.subtype_expression.operator).to be_instance_of(Expressir::Model::Operators::And)
1518
- expect(x.subtype_expression.operands).to be_instance_of(Array)
1519
- expect(x.subtype_expression.operands.count).to eq(2)
1520
- expect(x.subtype_expression.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
1521
- expect(x.subtype_expression.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Andor)
1522
- expect(x.subtype_expression.operands[0].operands).to be_instance_of(Array)
1523
- expect(x.subtype_expression.operands[0].operands.count).to eq(2)
1524
- expect(x.subtype_expression.operands[0].operands[0]).to be_instance_of(Expressir::Model::Ref)
1525
- expect(x.subtype_expression.operands[0].operands[0].id).to eq("a")
1526
- expect(x.subtype_expression.operands[0].operands[1]).to be_instance_of(Expressir::Model::Ref)
1527
- expect(x.subtype_expression.operands[0].operands[1].id).to eq("b")
1528
- expect(x.subtype_expression.operands[1]).to be_instance_of(Expressir::Model::Ref)
1529
- expect(x.subtype_expression.operands[1].id).to eq("c")
1530
- end
1531
-
1532
- subtype_constraints.find{|x| x.id == "supertypeExpressionAndParenthesisAndorSubtypeConstraint"}.tap do |x|
1533
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1534
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1535
- expect(x.applies_to.id).to eq("emptyEntity")
1536
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Expressions::Expression)
1537
- expect(x.subtype_expression.operator).to be_instance_of(Expressir::Model::Operators::And)
1538
- expect(x.subtype_expression.operands).to be_instance_of(Array)
1539
- expect(x.subtype_expression.operands.count).to eq(2)
1540
- expect(x.subtype_expression.operands[0]).to be_instance_of(Expressir::Model::Ref)
1541
- expect(x.subtype_expression.operands[0].id).to eq("a")
1542
- expect(x.subtype_expression.operands[1]).to be_instance_of(Expressir::Model::Expressions::Expression)
1543
- expect(x.subtype_expression.operands[1].operator).to be_instance_of(Expressir::Model::Operators::Andor)
1544
- expect(x.subtype_expression.operands[1].operands).to be_instance_of(Array)
1545
- expect(x.subtype_expression.operands[1].operands.count).to eq(2)
1546
- expect(x.subtype_expression.operands[1].operands[0]).to be_instance_of(Expressir::Model::Ref)
1547
- expect(x.subtype_expression.operands[1].operands[0].id).to eq("b")
1548
- expect(x.subtype_expression.operands[1].operands[1]).to be_instance_of(Expressir::Model::Ref)
1549
- expect(x.subtype_expression.operands[1].operands[1].id).to eq("c")
1550
- end
1551
-
1552
- subtype_constraints.find{|x| x.id == "supertypeExpressionOneofSubtypeConstraint"}.tap do |x|
1553
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1554
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1555
- expect(x.applies_to.id).to eq("emptyEntity")
1556
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Expressions::Expression)
1557
- expect(x.subtype_expression.operator).to be_instance_of(Expressir::Model::Operators::Oneof)
1558
- expect(x.subtype_expression.operands).to be_instance_of(Array)
1559
- expect(x.subtype_expression.operands.count).to eq(2)
1560
- expect(x.subtype_expression.operands[0]).to be_instance_of(Expressir::Model::Ref)
1561
- expect(x.subtype_expression.operands[0].id).to eq("a")
1562
- expect(x.subtype_expression.operands[1]).to be_instance_of(Expressir::Model::Ref)
1563
- expect(x.subtype_expression.operands[1].id).to eq("b")
1564
- end
1565
-
1566
- subtype_constraints.find{|x| x.id == "supertypeExpressionAndOneofSubtypeConstraint"}.tap do |x|
1567
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1568
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1569
- expect(x.applies_to.id).to eq("emptyEntity")
1570
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Expressions::Expression)
1571
- expect(x.subtype_expression.operator).to be_instance_of(Expressir::Model::Operators::And)
1572
- expect(x.subtype_expression.operands).to be_instance_of(Array)
1573
- expect(x.subtype_expression.operands.count).to eq(2)
1574
- expect(x.subtype_expression.operands[0]).to be_instance_of(Expressir::Model::Ref)
1575
- expect(x.subtype_expression.operands[0].id).to eq("a")
1576
- expect(x.subtype_expression.operands[1]).to be_instance_of(Expressir::Model::Expressions::Expression)
1577
- expect(x.subtype_expression.operands[1].operator).to be_instance_of(Expressir::Model::Operators::Oneof)
1578
- expect(x.subtype_expression.operands[1].operands).to be_instance_of(Array)
1579
- expect(x.subtype_expression.operands[1].operands.count).to eq(2)
1580
- expect(x.subtype_expression.operands[1].operands[0]).to be_instance_of(Expressir::Model::Ref)
1581
- expect(x.subtype_expression.operands[1].operands[0].id).to eq("b")
1582
- expect(x.subtype_expression.operands[1].operands[1]).to be_instance_of(Expressir::Model::Ref)
1583
- expect(x.subtype_expression.operands[1].operands[1].id).to eq("c")
1584
- end
1585
-
1586
- subtype_constraints.find{|x| x.id == "supertypeExpressionAndorOneofSubtypeConstraint"}.tap do |x|
1587
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1588
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1589
- expect(x.applies_to.id).to eq("emptyEntity")
1590
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Expressions::Expression)
1591
- expect(x.subtype_expression.operator).to be_instance_of(Expressir::Model::Operators::Andor)
1592
- expect(x.subtype_expression.operands).to be_instance_of(Array)
1593
- expect(x.subtype_expression.operands.count).to eq(2)
1594
- expect(x.subtype_expression.operands[0]).to be_instance_of(Expressir::Model::Ref)
1595
- expect(x.subtype_expression.operands[0].id).to eq("a")
1596
- expect(x.subtype_expression.operands[1]).to be_instance_of(Expressir::Model::Expressions::Expression)
1597
- expect(x.subtype_expression.operands[1].operator).to be_instance_of(Expressir::Model::Operators::Oneof)
1598
- expect(x.subtype_expression.operands[1].operands).to be_instance_of(Array)
1599
- expect(x.subtype_expression.operands[1].operands.count).to eq(2)
1600
- expect(x.subtype_expression.operands[1].operands[0]).to be_instance_of(Expressir::Model::Ref)
1601
- expect(x.subtype_expression.operands[1].operands[0].id).to eq("b")
1602
- expect(x.subtype_expression.operands[1].operands[1]).to be_instance_of(Expressir::Model::Ref)
1603
- expect(x.subtype_expression.operands[1].operands[1].id).to eq("c")
1604
- end
1605
-
1606
- subtype_constraints.find{|x| x.id == "supertypeExpressionOneofAndSubtypeConstraint"}.tap do |x|
1607
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1608
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1609
- expect(x.applies_to.id).to eq("emptyEntity")
1610
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Expressions::Expression)
1611
- expect(x.subtype_expression.operator).to be_instance_of(Expressir::Model::Operators::And)
1612
- expect(x.subtype_expression.operands).to be_instance_of(Array)
1613
- expect(x.subtype_expression.operands.count).to eq(2)
1614
- expect(x.subtype_expression.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
1615
- expect(x.subtype_expression.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Oneof)
1616
- expect(x.subtype_expression.operands[0].operands).to be_instance_of(Array)
1617
- expect(x.subtype_expression.operands[0].operands.count).to eq(2)
1618
- expect(x.subtype_expression.operands[0].operands[0]).to be_instance_of(Expressir::Model::Ref)
1619
- expect(x.subtype_expression.operands[0].operands[0].id).to eq("a")
1620
- expect(x.subtype_expression.operands[0].operands[1]).to be_instance_of(Expressir::Model::Ref)
1621
- expect(x.subtype_expression.operands[0].operands[1].id).to eq("b")
1622
- expect(x.subtype_expression.operands[1]).to be_instance_of(Expressir::Model::Ref)
1623
- expect(x.subtype_expression.operands[1].id).to eq("c")
1624
- end
1625
-
1626
- subtype_constraints.find{|x| x.id == "supertypeExpressionOneofAndorSubtypeConstraint"}.tap do |x|
1627
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1628
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1629
- expect(x.applies_to.id).to eq("emptyEntity")
1630
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Expressions::Expression)
1631
- expect(x.subtype_expression.operator).to be_instance_of(Expressir::Model::Operators::Andor)
1632
- expect(x.subtype_expression.operands).to be_instance_of(Array)
1633
- expect(x.subtype_expression.operands.count).to eq(2)
1634
- expect(x.subtype_expression.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
1635
- expect(x.subtype_expression.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Oneof)
1636
- expect(x.subtype_expression.operands[0].operands).to be_instance_of(Array)
1637
- expect(x.subtype_expression.operands[0].operands.count).to eq(2)
1638
- expect(x.subtype_expression.operands[0].operands[0]).to be_instance_of(Expressir::Model::Ref)
1639
- expect(x.subtype_expression.operands[0].operands[0].id).to eq("a")
1640
- expect(x.subtype_expression.operands[0].operands[1]).to be_instance_of(Expressir::Model::Ref)
1641
- expect(x.subtype_expression.operands[0].operands[1].id).to eq("b")
1642
- expect(x.subtype_expression.operands[1]).to be_instance_of(Expressir::Model::Ref)
1643
- expect(x.subtype_expression.operands[1].id).to eq("c")
1644
- end
1645
-
1646
- subtype_constraints.find{|x| x.id == "supertypeExpressionOneofAndOneofSubtypeConstraint"}.tap do |x|
1647
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1648
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1649
- expect(x.applies_to.id).to eq("emptyEntity")
1650
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Expressions::Expression)
1651
- expect(x.subtype_expression.operator).to be_instance_of(Expressir::Model::Operators::And)
1652
- expect(x.subtype_expression.operands).to be_instance_of(Array)
1653
- expect(x.subtype_expression.operands.count).to eq(2)
1654
- expect(x.subtype_expression.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
1655
- expect(x.subtype_expression.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Oneof)
1656
- expect(x.subtype_expression.operands[0].operands).to be_instance_of(Array)
1657
- expect(x.subtype_expression.operands[0].operands.count).to eq(2)
1658
- expect(x.subtype_expression.operands[0].operands[0]).to be_instance_of(Expressir::Model::Ref)
1659
- expect(x.subtype_expression.operands[0].operands[0].id).to eq("a")
1660
- expect(x.subtype_expression.operands[0].operands[1]).to be_instance_of(Expressir::Model::Ref)
1661
- expect(x.subtype_expression.operands[0].operands[1].id).to eq("b")
1662
- expect(x.subtype_expression.operands[1]).to be_instance_of(Expressir::Model::Expressions::Expression)
1663
- expect(x.subtype_expression.operands[1].operator).to be_instance_of(Expressir::Model::Operators::Oneof)
1664
- expect(x.subtype_expression.operands[1].operands).to be_instance_of(Array)
1665
- expect(x.subtype_expression.operands[1].operands.count).to eq(2)
1666
- expect(x.subtype_expression.operands[1].operands[0]).to be_instance_of(Expressir::Model::Ref)
1667
- expect(x.subtype_expression.operands[1].operands[0].id).to eq("c")
1668
- expect(x.subtype_expression.operands[1].operands[1]).to be_instance_of(Expressir::Model::Ref)
1669
- expect(x.subtype_expression.operands[1].operands[1].id).to eq("d")
1670
- end
1671
-
1672
- subtype_constraints.find{|x| x.id == "supertypeExpressionOneofAndorOneofSubtypeConstraint"}.tap do |x|
1673
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
1674
- expect(x.applies_to).to be_instance_of(Expressir::Model::Ref)
1675
- expect(x.applies_to.id).to eq("emptyEntity")
1676
- expect(x.subtype_expression).to be_instance_of(Expressir::Model::Expressions::Expression)
1677
- expect(x.subtype_expression.operator).to be_instance_of(Expressir::Model::Operators::Andor)
1678
- expect(x.subtype_expression.operands).to be_instance_of(Array)
1679
- expect(x.subtype_expression.operands.count).to eq(2)
1680
- expect(x.subtype_expression.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
1681
- expect(x.subtype_expression.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Oneof)
1682
- expect(x.subtype_expression.operands[0].operands).to be_instance_of(Array)
1683
- expect(x.subtype_expression.operands[0].operands.count).to eq(2)
1684
- expect(x.subtype_expression.operands[0].operands[0]).to be_instance_of(Expressir::Model::Ref)
1685
- expect(x.subtype_expression.operands[0].operands[0].id).to eq("a")
1686
- expect(x.subtype_expression.operands[0].operands[1]).to be_instance_of(Expressir::Model::Ref)
1687
- expect(x.subtype_expression.operands[0].operands[1].id).to eq("b")
1688
- expect(x.subtype_expression.operands[1]).to be_instance_of(Expressir::Model::Expressions::Expression)
1689
- expect(x.subtype_expression.operands[1].operator).to be_instance_of(Expressir::Model::Operators::Oneof)
1690
- expect(x.subtype_expression.operands[1].operands).to be_instance_of(Array)
1691
- expect(x.subtype_expression.operands[1].operands.count).to eq(2)
1692
- expect(x.subtype_expression.operands[1].operands[0]).to be_instance_of(Expressir::Model::Ref)
1693
- expect(x.subtype_expression.operands[1].operands[0].id).to eq("c")
1694
- expect(x.subtype_expression.operands[1].operands[1]).to be_instance_of(Expressir::Model::Ref)
1695
- expect(x.subtype_expression.operands[1].operands[1].id).to eq("d")
1696
- end
1697
-
1698
- # functions
1699
- functions.find{|x| x.id == "emptyFunction"}.tap do |x|
1700
- expect(x).to be_instance_of(Expressir::Model::Function)
1701
- expect(x.return_type).to be_instance_of(Expressir::Model::Types::Boolean)
1702
- expect(x.statements).to be_instance_of(Array)
1703
- expect(x.statements.count).to eq(1)
1704
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
1705
- end
1706
-
1707
- functions.find{|x| x.id == "parameterFunction"}.tap do |x|
1708
- expect(x).to be_instance_of(Expressir::Model::Function)
1709
- expect(x.parameters).to be_instance_of(Array)
1710
- expect(x.parameters.count).to eq(1)
1711
- expect(x.parameters[0]).to be_instance_of(Expressir::Model::Parameter)
1712
- expect(x.parameters[0].id).to eq("test")
1713
- expect(x.parameters[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1714
- expect(x.return_type).to be_instance_of(Expressir::Model::Types::Boolean)
1715
- expect(x.statements).to be_instance_of(Array)
1716
- expect(x.statements.count).to eq(1)
1717
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
1718
- end
1719
-
1720
- functions.find{|x| x.id == "multipleParameterFunction"}.tap do |x|
1721
- expect(x).to be_instance_of(Expressir::Model::Function)
1722
- expect(x.parameters).to be_instance_of(Array)
1723
- expect(x.parameters.count).to eq(2)
1724
- expect(x.parameters[0]).to be_instance_of(Expressir::Model::Parameter)
1725
- expect(x.parameters[0].id).to eq("test")
1726
- expect(x.parameters[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1727
- expect(x.parameters[1]).to be_instance_of(Expressir::Model::Parameter)
1728
- expect(x.parameters[1].id).to eq("test2")
1729
- expect(x.parameters[1].type).to be_instance_of(Expressir::Model::Types::Boolean)
1730
- expect(x.return_type).to be_instance_of(Expressir::Model::Types::Boolean)
1731
- expect(x.statements).to be_instance_of(Array)
1732
- expect(x.statements.count).to eq(1)
1733
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
1734
- end
1735
-
1736
- functions.find{|x| x.id == "multipleShorthandParameterFunction"}.tap do |x|
1737
- expect(x).to be_instance_of(Expressir::Model::Function)
1738
- expect(x.parameters).to be_instance_of(Array)
1739
- expect(x.parameters.count).to eq(2)
1740
- expect(x.parameters[0]).to be_instance_of(Expressir::Model::Parameter)
1741
- expect(x.parameters[0].id).to eq("test")
1742
- expect(x.parameters[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1743
- expect(x.parameters[1]).to be_instance_of(Expressir::Model::Parameter)
1744
- expect(x.parameters[1].id).to eq("test2")
1745
- expect(x.parameters[1].type).to be_instance_of(Expressir::Model::Types::Boolean)
1746
- expect(x.return_type).to be_instance_of(Expressir::Model::Types::Boolean)
1747
- expect(x.statements).to be_instance_of(Array)
1748
- expect(x.statements.count).to eq(1)
1749
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
1750
- end
1751
-
1752
- functions.find{|x| x.id == "typeFunction"}.tap do |x|
1753
- expect(x).to be_instance_of(Expressir::Model::Function)
1754
- expect(x.return_type).to be_instance_of(Expressir::Model::Types::Boolean)
1755
- expect(x.declarations).to be_instance_of(Array)
1756
- expect(x.declarations.count).to eq(1)
1757
- expect(x.declarations[0]).to be_instance_of(Expressir::Model::Type)
1758
- expect(x.declarations[0].id).to eq("integerType")
1759
- expect(x.declarations[0].type).to be_instance_of(Expressir::Model::Types::Integer)
1760
- expect(x.statements).to be_instance_of(Array)
1761
- expect(x.statements.count).to eq(1)
1762
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
1763
- end
1764
-
1765
- functions.find{|x| x.id == "constantFunction"}.tap do |x|
1766
- expect(x).to be_instance_of(Expressir::Model::Function)
1767
- expect(x.return_type).to be_instance_of(Expressir::Model::Types::Boolean)
1768
- expect(x.constants).to be_instance_of(Array)
1769
- expect(x.constants.count).to eq(1)
1770
- expect(x.constants[0]).to be_instance_of(Expressir::Model::Constant)
1771
- expect(x.constants[0].id).to eq("test")
1772
- expect(x.constants[0].type).to be_instance_of(Expressir::Model::Types::String)
1773
- expect(x.constants[0].expression).to eq("xxx")
1774
- expect(x.statements).to be_instance_of(Array)
1775
- expect(x.statements.count).to eq(1)
1776
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
1777
- end
1778
-
1779
- functions.find{|x| x.id == "multipleConstantFunction"}.tap do |x|
1780
- expect(x).to be_instance_of(Expressir::Model::Function)
1781
- expect(x.return_type).to be_instance_of(Expressir::Model::Types::Boolean)
1782
- expect(x.constants).to be_instance_of(Array)
1783
- expect(x.constants.count).to eq(2)
1784
- expect(x.constants[0]).to be_instance_of(Expressir::Model::Constant)
1785
- expect(x.constants[0].id).to eq("test")
1786
- expect(x.constants[0].type).to be_instance_of(Expressir::Model::Types::String)
1787
- expect(x.constants[0].expression).to eq("xxx")
1788
- expect(x.constants[1]).to be_instance_of(Expressir::Model::Constant)
1789
- expect(x.constants[1].id).to eq("test2")
1790
- expect(x.constants[1].type).to be_instance_of(Expressir::Model::Types::String)
1791
- expect(x.constants[1].expression).to eq("xxx")
1792
- expect(x.statements).to be_instance_of(Array)
1793
- expect(x.statements.count).to eq(1)
1794
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
1795
- end
1796
-
1797
- functions.find{|x| x.id == "localFunction"}.tap do |x|
1798
- expect(x).to be_instance_of(Expressir::Model::Function)
1799
- expect(x.return_type).to be_instance_of(Expressir::Model::Types::Boolean)
1800
- expect(x.locals).to be_instance_of(Array)
1801
- expect(x.locals.count).to eq(1)
1802
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
1803
- expect(x.locals[0].id).to eq("test")
1804
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
1805
- expect(x.statements).to be_instance_of(Array)
1806
- expect(x.statements.count).to eq(1)
1807
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
1808
- end
1809
-
1810
- functions.find{|x| x.id == "multipleLocalFunction"}.tap do |x|
1811
- expect(x).to be_instance_of(Expressir::Model::Function)
1812
- expect(x.return_type).to be_instance_of(Expressir::Model::Types::Boolean)
1813
- expect(x.locals).to be_instance_of(Array)
1814
- expect(x.locals.count).to eq(2)
1815
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
1816
- expect(x.locals[0].id).to eq("test")
1817
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
1818
- expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
1819
- expect(x.locals[1].id).to eq("test2")
1820
- expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
1821
- expect(x.statements).to be_instance_of(Array)
1822
- expect(x.statements.count).to eq(1)
1823
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
1824
- end
1825
-
1826
- functions.find{|x| x.id == "multipleShorthandLocalFunction"}.tap do |x|
1827
- expect(x).to be_instance_of(Expressir::Model::Function)
1828
- expect(x.return_type).to be_instance_of(Expressir::Model::Types::Boolean)
1829
- expect(x.locals).to be_instance_of(Array)
1830
- expect(x.locals.count).to eq(2)
1831
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
1832
- expect(x.locals[0].id).to eq("test")
1833
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
1834
- expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
1835
- expect(x.locals[1].id).to eq("test2")
1836
- expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
1837
- expect(x.statements).to be_instance_of(Array)
1838
- expect(x.statements.count).to eq(1)
1839
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
1840
- end
1841
-
1842
- functions.find{|x| x.id == "localExpressionFunction"}.tap do |x|
1843
- expect(x).to be_instance_of(Expressir::Model::Function)
1844
- expect(x.return_type).to be_instance_of(Expressir::Model::Types::Boolean)
1845
- expect(x.locals).to be_instance_of(Array)
1846
- expect(x.locals.count).to eq(1)
1847
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
1848
- expect(x.locals[0].id).to eq("test")
1849
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
1850
- expect(x.locals[0].expression).to eq("xxx")
1851
- expect(x.statements).to be_instance_of(Array)
1852
- expect(x.statements.count).to eq(1)
1853
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
1854
- end
1855
-
1856
- functions.find{|x| x.id == "multipleLocalExpressionFunction"}.tap do |x|
1857
- expect(x).to be_instance_of(Expressir::Model::Function)
1858
- expect(x.return_type).to be_instance_of(Expressir::Model::Types::Boolean)
1859
- expect(x.locals).to be_instance_of(Array)
1860
- expect(x.locals.count).to eq(2)
1861
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
1862
- expect(x.locals[0].id).to eq("test")
1863
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
1864
- expect(x.locals[0].expression).to eq("xxx")
1865
- expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
1866
- expect(x.locals[1].id).to eq("test2")
1867
- expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
1868
- expect(x.locals[1].expression).to eq("xxx")
1869
- expect(x.statements).to be_instance_of(Array)
1870
- expect(x.statements.count).to eq(1)
1871
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
1872
- end
1873
-
1874
- functions.find{|x| x.id == "multipleShorthandLocalExpressionFunction"}.tap do |x|
1875
- expect(x).to be_instance_of(Expressir::Model::Function)
1876
- expect(x.return_type).to be_instance_of(Expressir::Model::Types::Boolean)
1877
- expect(x.locals).to be_instance_of(Array)
1878
- expect(x.locals.count).to eq(2)
1879
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
1880
- expect(x.locals[0].id).to eq("test")
1881
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
1882
- expect(x.locals[0].expression).to eq("xxx")
1883
- expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
1884
- expect(x.locals[1].id).to eq("test2")
1885
- expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
1886
- expect(x.locals[1].expression).to eq("xxx")
1887
- expect(x.statements).to be_instance_of(Array)
1888
- expect(x.statements.count).to eq(1)
1889
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
1890
- end
1891
-
1892
- # procedures
1893
- procedures.find{|x| x.id == "emptyProcedure"}.tap do |x|
1894
- expect(x).to be_instance_of(Expressir::Model::Procedure)
1895
- end
1896
-
1897
- procedures.find{|x| x.id == "parameterProcedure"}.tap do |x|
1898
- expect(x).to be_instance_of(Expressir::Model::Procedure)
1899
- expect(x.parameters).to be_instance_of(Array)
1900
- expect(x.parameters.count).to eq(1)
1901
- expect(x.parameters[0]).to be_instance_of(Expressir::Model::Parameter)
1902
- expect(x.parameters[0].id).to eq("test")
1903
- expect(x.parameters[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1904
- expect(x.parameters[0].var).not_to eq(true)
1905
- end
1906
-
1907
- procedures.find{|x| x.id == "multipleParameterProcedure"}.tap do |x|
1908
- expect(x).to be_instance_of(Expressir::Model::Procedure)
1909
- expect(x.parameters).to be_instance_of(Array)
1910
- expect(x.parameters.count).to eq(2)
1911
- expect(x.parameters[0]).to be_instance_of(Expressir::Model::Parameter)
1912
- expect(x.parameters[0].id).to eq("test")
1913
- expect(x.parameters[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1914
- expect(x.parameters[0].var).not_to eq(true)
1915
- expect(x.parameters[1]).to be_instance_of(Expressir::Model::Parameter)
1916
- expect(x.parameters[1].id).to eq("test2")
1917
- expect(x.parameters[1].type).to be_instance_of(Expressir::Model::Types::Boolean)
1918
- expect(x.parameters[1].var).not_to eq(true)
1919
- end
1920
-
1921
- procedures.find{|x| x.id == "multipleShorthandParameterProcedure"}.tap do |x|
1922
- expect(x).to be_instance_of(Expressir::Model::Procedure)
1923
- expect(x.parameters).to be_instance_of(Array)
1924
- expect(x.parameters.count).to eq(2)
1925
- expect(x.parameters[0]).to be_instance_of(Expressir::Model::Parameter)
1926
- expect(x.parameters[0].id).to eq("test")
1927
- expect(x.parameters[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1928
- expect(x.parameters[0].var).not_to eq(true)
1929
- expect(x.parameters[1]).to be_instance_of(Expressir::Model::Parameter)
1930
- expect(x.parameters[1].id).to eq("test2")
1931
- expect(x.parameters[1].type).to be_instance_of(Expressir::Model::Types::Boolean)
1932
- expect(x.parameters[1].var).not_to eq(true)
1933
- end
1934
-
1935
- procedures.find{|x| x.id == "variableParameterProcedure"}.tap do |x|
1936
- expect(x).to be_instance_of(Expressir::Model::Procedure)
1937
- expect(x.parameters).to be_instance_of(Array)
1938
- expect(x.parameters.count).to eq(1)
1939
- expect(x.parameters[0]).to be_instance_of(Expressir::Model::Parameter)
1940
- expect(x.parameters[0].id).to eq("test")
1941
- expect(x.parameters[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1942
- expect(x.parameters[0].var).to eq(true)
1943
- end
1944
-
1945
- procedures.find{|x| x.id == "multipleVariableParameterProcedure"}.tap do |x|
1946
- expect(x).to be_instance_of(Expressir::Model::Procedure)
1947
- expect(x.parameters).to be_instance_of(Array)
1948
- expect(x.parameters.count).to eq(2)
1949
- expect(x.parameters[0]).to be_instance_of(Expressir::Model::Parameter)
1950
- expect(x.parameters[0].id).to eq("test")
1951
- expect(x.parameters[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1952
- expect(x.parameters[0].var).to eq(true)
1953
- expect(x.parameters[1]).to be_instance_of(Expressir::Model::Parameter)
1954
- expect(x.parameters[1].id).to eq("test2")
1955
- expect(x.parameters[1].type).to be_instance_of(Expressir::Model::Types::Boolean)
1956
- expect(x.parameters[1].var).not_to eq(true)
1957
- end
1958
-
1959
- procedures.find{|x| x.id == "multipleVariableParameter2Procedure"}.tap do |x|
1960
- expect(x).to be_instance_of(Expressir::Model::Procedure)
1961
- expect(x.parameters).to be_instance_of(Array)
1962
- expect(x.parameters.count).to eq(2)
1963
- expect(x.parameters[0]).to be_instance_of(Expressir::Model::Parameter)
1964
- expect(x.parameters[0].id).to eq("test")
1965
- expect(x.parameters[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1966
- expect(x.parameters[0].var).not_to eq(true)
1967
- expect(x.parameters[1]).to be_instance_of(Expressir::Model::Parameter)
1968
- expect(x.parameters[1].id).to eq("test2")
1969
- expect(x.parameters[1].type).to be_instance_of(Expressir::Model::Types::Boolean)
1970
- expect(x.parameters[1].var).to eq(true)
1971
- end
1972
-
1973
- procedures.find{|x| x.id == "multipleShorthandVariableParameterProcedure"}.tap do |x|
1974
- expect(x).to be_instance_of(Expressir::Model::Procedure)
1975
- expect(x.parameters).to be_instance_of(Array)
1976
- expect(x.parameters.count).to eq(2)
1977
- expect(x.parameters[0]).to be_instance_of(Expressir::Model::Parameter)
1978
- expect(x.parameters[0].id).to eq("test")
1979
- expect(x.parameters[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
1980
- expect(x.parameters[0].var).to eq(true)
1981
- expect(x.parameters[1]).to be_instance_of(Expressir::Model::Parameter)
1982
- expect(x.parameters[1].id).to eq("test2")
1983
- expect(x.parameters[1].type).to be_instance_of(Expressir::Model::Types::Boolean)
1984
- expect(x.parameters[1].var).to eq(true)
1985
- end
1986
-
1987
- procedures.find{|x| x.id == "typeProcedure"}.tap do |x|
1988
- expect(x).to be_instance_of(Expressir::Model::Procedure)
1989
- expect(x.declarations).to be_instance_of(Array)
1990
- expect(x.declarations.count).to eq(1)
1991
- expect(x.declarations[0]).to be_instance_of(Expressir::Model::Type)
1992
- expect(x.declarations[0].id).to eq("integerType")
1993
- expect(x.declarations[0].type).to be_instance_of(Expressir::Model::Types::Integer)
1994
- end
1995
-
1996
- procedures.find{|x| x.id == "constantProcedure"}.tap do |x|
1997
- expect(x).to be_instance_of(Expressir::Model::Procedure)
1998
- expect(x.constants).to be_instance_of(Array)
1999
- expect(x.constants.count).to eq(1)
2000
- expect(x.constants[0]).to be_instance_of(Expressir::Model::Constant)
2001
- expect(x.constants[0].id).to eq("test")
2002
- expect(x.constants[0].type).to be_instance_of(Expressir::Model::Types::String)
2003
- expect(x.constants[0].expression).to eq("xxx")
2004
- end
2005
-
2006
- procedures.find{|x| x.id == "multipleConstantProcedure"}.tap do |x|
2007
- expect(x).to be_instance_of(Expressir::Model::Procedure)
2008
- expect(x.constants).to be_instance_of(Array)
2009
- expect(x.constants.count).to eq(2)
2010
- expect(x.constants[0]).to be_instance_of(Expressir::Model::Constant)
2011
- expect(x.constants[0].id).to eq("test")
2012
- expect(x.constants[0].type).to be_instance_of(Expressir::Model::Types::String)
2013
- expect(x.constants[0].expression).to eq("xxx")
2014
- expect(x.constants[1]).to be_instance_of(Expressir::Model::Constant)
2015
- expect(x.constants[1].id).to eq("test2")
2016
- expect(x.constants[1].type).to be_instance_of(Expressir::Model::Types::String)
2017
- expect(x.constants[1].expression).to eq("xxx")
2018
- end
2019
-
2020
- procedures.find{|x| x.id == "localProcedure"}.tap do |x|
2021
- expect(x).to be_instance_of(Expressir::Model::Procedure)
2022
- expect(x.locals).to be_instance_of(Array)
2023
- expect(x.locals.count).to eq(1)
2024
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
2025
- expect(x.locals[0].id).to eq("test")
2026
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
2027
- end
2028
-
2029
- procedures.find{|x| x.id == "multipleLocalProcedure"}.tap do |x|
2030
- expect(x).to be_instance_of(Expressir::Model::Procedure)
2031
- expect(x.locals).to be_instance_of(Array)
2032
- expect(x.locals.count).to eq(2)
2033
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
2034
- expect(x.locals[0].id).to eq("test")
2035
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
2036
- expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
2037
- expect(x.locals[1].id).to eq("test2")
2038
- expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
2039
- end
2040
-
2041
- procedures.find{|x| x.id == "multipleShorthandLocalProcedure"}.tap do |x|
2042
- expect(x).to be_instance_of(Expressir::Model::Procedure)
2043
- expect(x.locals).to be_instance_of(Array)
2044
- expect(x.locals.count).to eq(2)
2045
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
2046
- expect(x.locals[0].id).to eq("test")
2047
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
2048
- expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
2049
- expect(x.locals[1].id).to eq("test2")
2050
- expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
2051
- end
2052
-
2053
- procedures.find{|x| x.id == "localExpressionProcedure"}.tap do |x|
2054
- expect(x).to be_instance_of(Expressir::Model::Procedure)
2055
- expect(x.locals).to be_instance_of(Array)
2056
- expect(x.locals.count).to eq(1)
2057
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
2058
- expect(x.locals[0].id).to eq("test")
2059
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
2060
- expect(x.locals[0].expression).to eq("xxx")
2061
- end
2062
-
2063
- procedures.find{|x| x.id == "multipleLocalExpressionProcedure"}.tap do |x|
2064
- expect(x).to be_instance_of(Expressir::Model::Procedure)
2065
- expect(x.locals).to be_instance_of(Array)
2066
- expect(x.locals.count).to eq(2)
2067
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
2068
- expect(x.locals[0].id).to eq("test")
2069
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
2070
- expect(x.locals[0].expression).to eq("xxx")
2071
- expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
2072
- expect(x.locals[1].id).to eq("test2")
2073
- expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
2074
- expect(x.locals[1].expression).to eq("xxx")
2075
- end
2076
-
2077
- procedures.find{|x| x.id == "multipleShorthandLocalExpressionProcedure"}.tap do |x|
2078
- expect(x).to be_instance_of(Expressir::Model::Procedure)
2079
- expect(x.locals).to be_instance_of(Array)
2080
- expect(x.locals.count).to eq(2)
2081
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
2082
- expect(x.locals[0].id).to eq("test")
2083
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
2084
- expect(x.locals[0].expression).to eq("xxx")
2085
- expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
2086
- expect(x.locals[1].id).to eq("test2")
2087
- expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
2088
- expect(x.locals[1].expression).to eq("xxx")
2089
- end
2090
-
2091
- # rules
2092
- rules.find{|x| x.id == "emptyRule"}.tap do |x|
2093
- expect(x).to be_instance_of(Expressir::Model::Rule)
2094
- expect(x.applies_to).to be_instance_of(Array)
2095
- expect(x.applies_to.count).to eq(1)
2096
- expect(x.applies_to[0]).to be_instance_of(Expressir::Model::Ref)
2097
- expect(x.applies_to[0].id).to eq("emptyEntity")
2098
- expect(x.where).to be_instance_of(Array)
2099
- expect(x.where.count).to eq(1)
2100
- expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
2101
- expect(x.where[0].expression).to eq(true)
2102
- end
2103
-
2104
- rules.find{|x| x.id == "typeRule"}.tap do |x|
2105
- expect(x).to be_instance_of(Expressir::Model::Rule)
2106
- expect(x.applies_to).to be_instance_of(Array)
2107
- expect(x.applies_to.count).to eq(1)
2108
- expect(x.applies_to[0]).to be_instance_of(Expressir::Model::Ref)
2109
- expect(x.applies_to[0].id).to eq("emptyEntity")
2110
- expect(x.declarations).to be_instance_of(Array)
2111
- expect(x.declarations.count).to eq(1)
2112
- expect(x.declarations[0]).to be_instance_of(Expressir::Model::Type)
2113
- expect(x.declarations[0].id).to eq("integerType")
2114
- expect(x.declarations[0].type).to be_instance_of(Expressir::Model::Types::Integer)
2115
- expect(x.where).to be_instance_of(Array)
2116
- expect(x.where.count).to eq(1)
2117
- expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
2118
- expect(x.where[0].expression).to eq(true)
2119
- end
2120
-
2121
- rules.find{|x| x.id == "constantRule"}.tap do |x|
2122
- expect(x).to be_instance_of(Expressir::Model::Rule)
2123
- expect(x.applies_to).to be_instance_of(Array)
2124
- expect(x.applies_to.count).to eq(1)
2125
- expect(x.applies_to[0]).to be_instance_of(Expressir::Model::Ref)
2126
- expect(x.applies_to[0].id).to eq("emptyEntity")
2127
- expect(x.constants).to be_instance_of(Array)
2128
- expect(x.constants.count).to eq(1)
2129
- expect(x.constants[0]).to be_instance_of(Expressir::Model::Constant)
2130
- expect(x.constants[0].id).to eq("test")
2131
- expect(x.constants[0].type).to be_instance_of(Expressir::Model::Types::String)
2132
- expect(x.constants[0].expression).to eq("xxx")
2133
- expect(x.where).to be_instance_of(Array)
2134
- expect(x.where.count).to eq(1)
2135
- expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
2136
- expect(x.where[0].expression).to eq(true)
2137
- end
2138
-
2139
- rules.find{|x| x.id == "multipleConstantRule"}.tap do |x|
2140
- expect(x).to be_instance_of(Expressir::Model::Rule)
2141
- expect(x.applies_to).to be_instance_of(Array)
2142
- expect(x.applies_to.count).to eq(1)
2143
- expect(x.applies_to[0]).to be_instance_of(Expressir::Model::Ref)
2144
- expect(x.applies_to[0].id).to eq("emptyEntity")
2145
- expect(x.constants).to be_instance_of(Array)
2146
- expect(x.constants.count).to eq(2)
2147
- expect(x.constants[0]).to be_instance_of(Expressir::Model::Constant)
2148
- expect(x.constants[0].id).to eq("test")
2149
- expect(x.constants[0].type).to be_instance_of(Expressir::Model::Types::String)
2150
- expect(x.constants[0].expression).to eq("xxx")
2151
- expect(x.constants[1]).to be_instance_of(Expressir::Model::Constant)
2152
- expect(x.constants[1].id).to eq("test2")
2153
- expect(x.constants[1].type).to be_instance_of(Expressir::Model::Types::String)
2154
- expect(x.constants[1].expression).to eq("xxx")
2155
- expect(x.where).to be_instance_of(Array)
2156
- expect(x.where.count).to eq(1)
2157
- expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
2158
- expect(x.where[0].expression).to eq(true)
2159
- end
2160
-
2161
- rules.find{|x| x.id == "localRule"}.tap do |x|
2162
- expect(x).to be_instance_of(Expressir::Model::Rule)
2163
- expect(x.applies_to).to be_instance_of(Array)
2164
- expect(x.applies_to.count).to eq(1)
2165
- expect(x.applies_to[0]).to be_instance_of(Expressir::Model::Ref)
2166
- expect(x.applies_to[0].id).to eq("emptyEntity")
2167
- expect(x.locals).to be_instance_of(Array)
2168
- expect(x.locals.count).to eq(1)
2169
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
2170
- expect(x.locals[0].id).to eq("test")
2171
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
2172
- expect(x.where).to be_instance_of(Array)
2173
- expect(x.where.count).to eq(1)
2174
- expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
2175
- expect(x.where[0].expression).to eq(true)
2176
- end
2177
-
2178
- rules.find{|x| x.id == "multipleLocalRule"}.tap do |x|
2179
- expect(x).to be_instance_of(Expressir::Model::Rule)
2180
- expect(x.applies_to).to be_instance_of(Array)
2181
- expect(x.applies_to.count).to eq(1)
2182
- expect(x.applies_to[0]).to be_instance_of(Expressir::Model::Ref)
2183
- expect(x.applies_to[0].id).to eq("emptyEntity")
2184
- expect(x.locals).to be_instance_of(Array)
2185
- expect(x.locals.count).to eq(2)
2186
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
2187
- expect(x.locals[0].id).to eq("test")
2188
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
2189
- expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
2190
- expect(x.locals[1].id).to eq("test2")
2191
- expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
2192
- expect(x.where).to be_instance_of(Array)
2193
- expect(x.where.count).to eq(1)
2194
- expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
2195
- expect(x.where[0].expression).to eq(true)
2196
- end
2197
-
2198
- rules.find{|x| x.id == "multipleShorthandLocalRule"}.tap do |x|
2199
- expect(x).to be_instance_of(Expressir::Model::Rule)
2200
- expect(x.applies_to).to be_instance_of(Array)
2201
- expect(x.applies_to.count).to eq(1)
2202
- expect(x.applies_to[0]).to be_instance_of(Expressir::Model::Ref)
2203
- expect(x.applies_to[0].id).to eq("emptyEntity")
2204
- expect(x.locals).to be_instance_of(Array)
2205
- expect(x.locals.count).to eq(2)
2206
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
2207
- expect(x.locals[0].id).to eq("test")
2208
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
2209
- expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
2210
- expect(x.locals[1].id).to eq("test2")
2211
- expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
2212
- expect(x.where).to be_instance_of(Array)
2213
- expect(x.where.count).to eq(1)
2214
- expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
2215
- expect(x.where[0].expression).to eq(true)
2216
- end
2217
-
2218
- rules.find{|x| x.id == "localExpressionRule"}.tap do |x|
2219
- expect(x).to be_instance_of(Expressir::Model::Rule)
2220
- expect(x.applies_to).to be_instance_of(Array)
2221
- expect(x.applies_to.count).to eq(1)
2222
- expect(x.applies_to[0]).to be_instance_of(Expressir::Model::Ref)
2223
- expect(x.applies_to[0].id).to eq("emptyEntity")
2224
- expect(x.locals).to be_instance_of(Array)
2225
- expect(x.locals.count).to eq(1)
2226
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
2227
- expect(x.locals[0].id).to eq("test")
2228
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
2229
- expect(x.locals[0].expression).to eq("xxx")
2230
- expect(x.where).to be_instance_of(Array)
2231
- expect(x.where.count).to eq(1)
2232
- expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
2233
- expect(x.where[0].expression).to eq(true)
2234
- end
2235
-
2236
- rules.find{|x| x.id == "multipleLocalExpressionRule"}.tap do |x|
2237
- expect(x).to be_instance_of(Expressir::Model::Rule)
2238
- expect(x.applies_to).to be_instance_of(Array)
2239
- expect(x.applies_to.count).to eq(1)
2240
- expect(x.applies_to[0]).to be_instance_of(Expressir::Model::Ref)
2241
- expect(x.applies_to[0].id).to eq("emptyEntity")
2242
- expect(x.locals).to be_instance_of(Array)
2243
- expect(x.locals.count).to eq(2)
2244
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
2245
- expect(x.locals[0].id).to eq("test")
2246
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
2247
- expect(x.locals[0].expression).to eq("xxx")
2248
- expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
2249
- expect(x.locals[1].id).to eq("test2")
2250
- expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
2251
- expect(x.locals[1].expression).to eq("xxx")
2252
- expect(x.where).to be_instance_of(Array)
2253
- expect(x.where.count).to eq(1)
2254
- expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
2255
- expect(x.where[0].expression).to eq(true)
2256
- end
2257
-
2258
- rules.find{|x| x.id == "multipleShorthandLocalExpressionRule"}.tap do |x|
2259
- expect(x).to be_instance_of(Expressir::Model::Rule)
2260
- expect(x.applies_to).to be_instance_of(Array)
2261
- expect(x.applies_to.count).to eq(1)
2262
- expect(x.applies_to[0]).to be_instance_of(Expressir::Model::Ref)
2263
- expect(x.applies_to[0].id).to eq("emptyEntity")
2264
- expect(x.locals).to be_instance_of(Array)
2265
- expect(x.locals.count).to eq(2)
2266
- expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
2267
- expect(x.locals[0].id).to eq("test")
2268
- expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
2269
- expect(x.locals[0].expression).to eq("xxx")
2270
- expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
2271
- expect(x.locals[1].id).to eq("test2")
2272
- expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
2273
- expect(x.locals[1].expression).to eq("xxx")
2274
- expect(x.where).to be_instance_of(Array)
2275
- expect(x.where.count).to eq(1)
2276
- expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
2277
- expect(x.where[0].expression).to eq(true)
2278
- end
2279
-
2280
- # statements
2281
- functions.find{|x| x.id == "aliasStatement"}.statements[0].tap do |x|
2282
- expect(x).to be_instance_of(Expressir::Model::Statements::Alias)
2283
- expect(x.id).to eq("test")
2284
- expect(x.expression).to be_instance_of(Expressir::Model::Ref)
2285
- expect(x.expression.id).to eq("test")
2286
- expect(x.statements).to be_instance_of(Array)
2287
- expect(x.statements.count).to eq(1)
2288
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2289
- end
2290
-
2291
- functions.find{|x| x.id == "aliasAttributeStatement"}.statements[0].tap do |x|
2292
- expect(x).to be_instance_of(Expressir::Model::Statements::Alias)
2293
- expect(x.id).to eq("test")
2294
- expect(x.expression).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
2295
- expect(x.expression.ref).to be_instance_of(Expressir::Model::Ref)
2296
- expect(x.expression.ref.id).to eq("test")
2297
- expect(x.expression.qualifiers).to be_instance_of(Array)
2298
- expect(x.expression.qualifiers.count).to eq(1)
2299
- expect(x.expression.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::AttributeQualifier)
2300
- expect(x.expression.qualifiers[0].attribute).to be_instance_of(Expressir::Model::Ref)
2301
- expect(x.expression.qualifiers[0].attribute.id).to eq("test")
2302
- expect(x.statements).to be_instance_of(Array)
2303
- expect(x.statements.count).to eq(1)
2304
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2305
- end
2306
-
2307
- functions.find{|x| x.id == "aliasGroupStatement"}.statements[0].tap do |x|
2308
- expect(x).to be_instance_of(Expressir::Model::Statements::Alias)
2309
- expect(x.id).to eq("test")
2310
- expect(x.expression).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
2311
- expect(x.expression.ref).to be_instance_of(Expressir::Model::Ref)
2312
- expect(x.expression.ref.id).to eq("test")
2313
- expect(x.expression.qualifiers).to be_instance_of(Array)
2314
- expect(x.expression.qualifiers.count).to eq(1)
2315
- expect(x.expression.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::GroupQualifier)
2316
- expect(x.expression.qualifiers[0].entity).to be_instance_of(Expressir::Model::Ref)
2317
- expect(x.expression.qualifiers[0].entity.id).to eq("test")
2318
- expect(x.statements).to be_instance_of(Array)
2319
- expect(x.statements.count).to eq(1)
2320
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2321
- end
2322
-
2323
- functions.find{|x| x.id == "aliasIndexStatement"}.statements[0].tap do |x|
2324
- expect(x).to be_instance_of(Expressir::Model::Statements::Alias)
2325
- expect(x.id).to eq("test")
2326
- expect(x.expression).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
2327
- expect(x.expression.ref).to be_instance_of(Expressir::Model::Ref)
2328
- expect(x.expression.ref.id).to eq("test")
2329
- expect(x.expression.qualifiers).to be_instance_of(Array)
2330
- expect(x.expression.qualifiers.count).to eq(1)
2331
- expect(x.expression.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::IndexQualifier)
2332
- expect(x.expression.qualifiers[0].index1).to eq(1)
2333
- expect(x.statements).to be_instance_of(Array)
2334
- expect(x.statements.count).to eq(1)
2335
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2336
- end
2337
-
2338
- functions.find{|x| x.id == "aliasIndex2Statement"}.statements[0].tap do |x|
2339
- expect(x).to be_instance_of(Expressir::Model::Statements::Alias)
2340
- expect(x.id).to eq("test")
2341
- expect(x.expression).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
2342
- expect(x.expression.ref).to be_instance_of(Expressir::Model::Ref)
2343
- expect(x.expression.ref.id).to eq("test")
2344
- expect(x.expression.qualifiers).to be_instance_of(Array)
2345
- expect(x.expression.qualifiers.count).to eq(1)
2346
- expect(x.expression.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::IndexQualifier)
2347
- expect(x.expression.qualifiers[0].index1).to eq(1)
2348
- expect(x.expression.qualifiers[0].index2).to eq(9)
2349
- expect(x.statements).to be_instance_of(Array)
2350
- expect(x.statements.count).to eq(1)
2351
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2352
- end
2353
-
2354
- functions.find{|x| x.id == "assignmentStatement"}.statements[0].tap do |x|
2355
- expect(x).to be_instance_of(Expressir::Model::Statements::Assignment)
2356
- expect(x.ref).to be_instance_of(Expressir::Model::Ref)
2357
- expect(x.ref.id).to eq("test")
2358
- expect(x.expression).to eq(true)
2359
- end
2360
-
2361
- functions.find{|x| x.id == "assignmentAttributeStatement"}.statements[0].tap do |x|
2362
- expect(x).to be_instance_of(Expressir::Model::Statements::Assignment)
2363
- expect(x.ref).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
2364
- expect(x.ref.ref).to be_instance_of(Expressir::Model::Ref)
2365
- expect(x.ref.ref.id).to eq("test")
2366
- expect(x.ref.qualifiers).to be_instance_of(Array)
2367
- expect(x.ref.qualifiers.count).to eq(1)
2368
- expect(x.ref.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::AttributeQualifier)
2369
- expect(x.ref.qualifiers[0].attribute).to be_instance_of(Expressir::Model::Ref)
2370
- expect(x.ref.qualifiers[0].attribute.id).to eq("test")
2371
- expect(x.expression).to eq(true)
2372
- end
2373
-
2374
- functions.find{|x| x.id == "assignmentGroupStatement"}.statements[0].tap do |x|
2375
- expect(x).to be_instance_of(Expressir::Model::Statements::Assignment)
2376
- expect(x.ref).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
2377
- expect(x.ref.ref).to be_instance_of(Expressir::Model::Ref)
2378
- expect(x.ref.ref.id).to eq("test")
2379
- expect(x.ref.qualifiers).to be_instance_of(Array)
2380
- expect(x.ref.qualifiers.count).to eq(1)
2381
- expect(x.ref.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::GroupQualifier)
2382
- expect(x.ref.qualifiers[0].entity).to be_instance_of(Expressir::Model::Ref)
2383
- expect(x.ref.qualifiers[0].entity.id).to eq("test")
2384
- expect(x.expression).to eq(true)
2385
- end
2386
-
2387
- functions.find{|x| x.id == "assignmentIndexStatement"}.statements[0].tap do |x|
2388
- expect(x).to be_instance_of(Expressir::Model::Statements::Assignment)
2389
- expect(x.ref).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
2390
- expect(x.ref.ref).to be_instance_of(Expressir::Model::Ref)
2391
- expect(x.ref.ref.id).to eq("test")
2392
- expect(x.ref.qualifiers).to be_instance_of(Array)
2393
- expect(x.ref.qualifiers.count).to eq(1)
2394
- expect(x.ref.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::IndexQualifier)
2395
- expect(x.ref.qualifiers[0].index1).to eq(1)
2396
- expect(x.expression).to eq(true)
2397
- end
2398
-
2399
- functions.find{|x| x.id == "assignmentIndex2Statement"}.statements[0].tap do |x|
2400
- expect(x).to be_instance_of(Expressir::Model::Statements::Assignment)
2401
- expect(x.ref).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
2402
- expect(x.ref.ref).to be_instance_of(Expressir::Model::Ref)
2403
- expect(x.ref.ref.id).to eq("test")
2404
- expect(x.ref.qualifiers).to be_instance_of(Array)
2405
- expect(x.ref.qualifiers.count).to eq(1)
2406
- expect(x.ref.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::IndexQualifier)
2407
- expect(x.ref.qualifiers[0].index1).to eq(1)
2408
- expect(x.ref.qualifiers[0].index2).to eq(9)
2409
- expect(x.expression).to eq(true)
2410
- end
2411
-
2412
- functions.find{|x| x.id == "caseStatement"}.statements[0].tap do |x|
2413
- expect(x).to be_instance_of(Expressir::Model::Statements::Case)
2414
- expect(x.selector).to be_instance_of(Expressir::Model::Ref)
2415
- expect(x.selector.id).to eq("test")
2416
- expect(x.actions).to be_instance_of(Array)
2417
- expect(x.actions.count).to eq(1)
2418
- expect(x.actions[0]).to be_instance_of(Expressir::Model::Statements::CaseAction)
2419
- expect(x.actions[0].label).to eq(true)
2420
- expect(x.actions[0].statement).to be_instance_of(Expressir::Model::Statements::Null)
2421
- end
2422
-
2423
- functions.find{|x| x.id == "caseMultipleStatement"}.statements[0].tap do |x|
2424
- expect(x).to be_instance_of(Expressir::Model::Statements::Case)
2425
- expect(x.selector).to be_instance_of(Expressir::Model::Ref)
2426
- expect(x.selector.id).to eq("test")
2427
- expect(x.actions).to be_instance_of(Array)
2428
- expect(x.actions.count).to eq(2)
2429
- expect(x.actions[0]).to be_instance_of(Expressir::Model::Statements::CaseAction)
2430
- expect(x.actions[0].label).to eq(true)
2431
- expect(x.actions[0].statement).to be_instance_of(Expressir::Model::Statements::Null)
2432
- expect(x.actions[1]).to be_instance_of(Expressir::Model::Statements::CaseAction)
2433
- expect(x.actions[1].label).to eq(true)
2434
- expect(x.actions[1].statement).to be_instance_of(Expressir::Model::Statements::Null)
2435
- end
2436
-
2437
- functions.find{|x| x.id == "caseMultipleShorthandStatement"}.statements[0].tap do |x|
2438
- expect(x).to be_instance_of(Expressir::Model::Statements::Case)
2439
- expect(x.selector).to be_instance_of(Expressir::Model::Ref)
2440
- expect(x.selector.id).to eq("test")
2441
- expect(x.actions).to be_instance_of(Array)
2442
- expect(x.actions.count).to eq(2)
2443
- expect(x.actions[0]).to be_instance_of(Expressir::Model::Statements::CaseAction)
2444
- expect(x.actions[0].label).to eq(true)
2445
- expect(x.actions[0].statement).to be_instance_of(Expressir::Model::Statements::Null)
2446
- expect(x.actions[1]).to be_instance_of(Expressir::Model::Statements::CaseAction)
2447
- expect(x.actions[1].label).to eq(true)
2448
- expect(x.actions[1].statement).to be_instance_of(Expressir::Model::Statements::Null)
2449
- end
2450
-
2451
- functions.find{|x| x.id == "caseOtherwiseStatement"}.statements[0].tap do |x|
2452
- expect(x).to be_instance_of(Expressir::Model::Statements::Case)
2453
- expect(x.selector).to be_instance_of(Expressir::Model::Ref)
2454
- expect(x.selector.id).to eq("test")
2455
- expect(x.actions).to be_instance_of(Array)
2456
- expect(x.actions.count).to eq(1)
2457
- expect(x.actions[0]).to be_instance_of(Expressir::Model::Statements::CaseAction)
2458
- expect(x.actions[0].label).to eq(true)
2459
- expect(x.actions[0].statement).to be_instance_of(Expressir::Model::Statements::Null)
2460
- expect(x.otherwise_statement).to be_instance_of(Expressir::Model::Statements::Null)
2461
- end
2462
-
2463
- functions.find{|x| x.id == "compoundStatement"}.statements[0].tap do |x|
2464
- expect(x).to be_instance_of(Expressir::Model::Statements::Compound)
2465
- expect(x.statements).to be_instance_of(Array)
2466
- expect(x.statements.count).to eq(1)
2467
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2468
- end
2469
-
2470
- functions.find{|x| x.id == "escapeStatement"}.statements[0].tap do |x|
2471
- expect(x).to be_instance_of(Expressir::Model::Statements::Escape)
2472
- end
2473
-
2474
- functions.find{|x| x.id == "ifStatement"}.statements[0].tap do |x|
2475
- expect(x).to be_instance_of(Expressir::Model::Statements::If)
2476
- expect(x.condition).to eq(true)
2477
- expect(x.statements).to be_instance_of(Array)
2478
- expect(x.statements.count).to eq(1)
2479
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2480
- end
2481
-
2482
- functions.find{|x| x.id == "if2Statement"}.statements[0].tap do |x|
2483
- expect(x).to be_instance_of(Expressir::Model::Statements::If)
2484
- expect(x.condition).to eq(true)
2485
- expect(x.statements).to be_instance_of(Array)
2486
- expect(x.statements.count).to eq(2)
2487
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2488
- expect(x.statements[1]).to be_instance_of(Expressir::Model::Statements::Null)
2489
- end
2490
-
2491
- functions.find{|x| x.id == "ifElseStatement"}.statements[0].tap do |x|
2492
- expect(x).to be_instance_of(Expressir::Model::Statements::If)
2493
- expect(x.condition).to eq(true)
2494
- expect(x.statements).to be_instance_of(Array)
2495
- expect(x.statements.count).to eq(1)
2496
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2497
- expect(x.else_statements).to be_instance_of(Array)
2498
- expect(x.else_statements.count).to eq(1)
2499
- expect(x.else_statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2500
- end
2501
-
2502
- functions.find{|x| x.id == "if2ElseStatement"}.statements[0].tap do |x|
2503
- expect(x).to be_instance_of(Expressir::Model::Statements::If)
2504
- expect(x.condition).to eq(true)
2505
- expect(x.statements).to be_instance_of(Array)
2506
- expect(x.statements.count).to eq(2)
2507
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2508
- expect(x.statements[1]).to be_instance_of(Expressir::Model::Statements::Null)
2509
- expect(x.else_statements).to be_instance_of(Array)
2510
- expect(x.else_statements.count).to eq(1)
2511
- expect(x.else_statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2512
- end
2513
-
2514
- functions.find{|x| x.id == "ifElse2Statement"}.statements[0].tap do |x|
2515
- expect(x).to be_instance_of(Expressir::Model::Statements::If)
2516
- expect(x.condition).to eq(true)
2517
- expect(x.statements).to be_instance_of(Array)
2518
- expect(x.statements.count).to eq(1)
2519
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2520
- expect(x.else_statements).to be_instance_of(Array)
2521
- expect(x.else_statements.count).to eq(2)
2522
- expect(x.else_statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2523
- expect(x.else_statements[1]).to be_instance_of(Expressir::Model::Statements::Null)
2524
- end
2525
-
2526
- functions.find{|x| x.id == "if2Else2Statement"}.statements[0].tap do |x|
2527
- expect(x).to be_instance_of(Expressir::Model::Statements::If)
2528
- expect(x.condition).to eq(true)
2529
- expect(x.statements).to be_instance_of(Array)
2530
- expect(x.statements.count).to eq(2)
2531
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2532
- expect(x.statements[1]).to be_instance_of(Expressir::Model::Statements::Null)
2533
- expect(x.else_statements).to be_instance_of(Array)
2534
- expect(x.else_statements.count).to eq(2)
2535
- expect(x.else_statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2536
- expect(x.else_statements[1]).to be_instance_of(Expressir::Model::Statements::Null)
2537
- end
2538
-
2539
- functions.find{|x| x.id == "nullStatement"}.statements[0].tap do |x|
2540
- expect(x).to be_instance_of(Expressir::Model::Statements::Null)
2541
- end
2542
-
2543
- functions.find{|x| x.id == "procedureCallStatement"}.statements[0].tap do |x|
2544
- expect(x).to be_instance_of(Expressir::Model::Statements::ProcedureCall)
2545
- expect(x.procedure).to be_instance_of(Expressir::Model::Ref)
2546
- expect(x.procedure.id).to eq("emptyProcedure")
2547
- end
2548
-
2549
- functions.find{|x| x.id == "procedureCallParameterStatement"}.statements[0].tap do |x|
2550
- expect(x).to be_instance_of(Expressir::Model::Statements::ProcedureCall)
2551
- expect(x.procedure).to be_instance_of(Expressir::Model::Ref)
2552
- expect(x.procedure.id).to eq("emptyProcedure")
2553
- expect(x.parameters).to be_instance_of(Array)
2554
- expect(x.parameters.count).to eq(1)
2555
- expect(x.parameters[0]).to eq(true)
2556
- end
2557
-
2558
- functions.find{|x| x.id == "procedureCallParameter2Statement"}.statements[0].tap do |x|
2559
- expect(x).to be_instance_of(Expressir::Model::Statements::ProcedureCall)
2560
- expect(x.procedure).to be_instance_of(Expressir::Model::Ref)
2561
- expect(x.procedure.id).to eq("emptyProcedure")
2562
- expect(x.parameters).to be_instance_of(Array)
2563
- expect(x.parameters.count).to eq(2)
2564
- expect(x.parameters[0]).to eq(true)
2565
- expect(x.parameters[1]).to eq(true)
2566
- end
2567
-
2568
- functions.find{|x| x.id == "procedureCallInsertStatement"}.statements[0].tap do |x|
2569
- expect(x).to be_instance_of(Expressir::Model::Statements::ProcedureCall)
2570
- expect(x.procedure).to be_instance_of(Expressir::Model::Ref)
2571
- expect(x.procedure.id).to eq("INSERT")
2572
- end
2573
-
2574
- functions.find{|x| x.id == "procedureCallRemoveStatement"}.statements[0].tap do |x|
2575
- expect(x).to be_instance_of(Expressir::Model::Statements::ProcedureCall)
2576
- expect(x.procedure).to be_instance_of(Expressir::Model::Ref)
2577
- expect(x.procedure.id).to eq("REMOVE")
2578
- end
2579
-
2580
- functions.find{|x| x.id == "repeatStatement"}.statements[0].tap do |x|
2581
- expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
2582
- expect(x.statements).to be_instance_of(Array)
2583
- expect(x.statements.count).to eq(1)
2584
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2585
- end
2586
-
2587
- functions.find{|x| x.id == "repeatVariableStatement"}.statements[0].tap do |x|
2588
- expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
2589
- expect(x.variable).to eq("test")
2590
- expect(x.bound1).to eq(1)
2591
- expect(x.bound2).to eq(9)
2592
- expect(x.statements).to be_instance_of(Array)
2593
- expect(x.statements.count).to eq(1)
2594
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2595
- end
2596
-
2597
- functions.find{|x| x.id == "repeatVariableIncrementStatement"}.statements[0].tap do |x|
2598
- expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
2599
- expect(x.variable).to eq("test")
2600
- expect(x.bound1).to eq(1)
2601
- expect(x.bound2).to eq(9)
2602
- expect(x.increment).to eq(2)
2603
- expect(x.statements).to be_instance_of(Array)
2604
- expect(x.statements.count).to eq(1)
2605
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2606
- end
2607
-
2608
- functions.find{|x| x.id == "repeatWhileStatement"}.statements[0].tap do |x|
2609
- expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
2610
- expect(x.while_expression).to eq(true)
2611
- expect(x.statements).to be_instance_of(Array)
2612
- expect(x.statements.count).to eq(1)
2613
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2614
- end
2615
-
2616
- functions.find{|x| x.id == "repeatUntilStatement"}.statements[0].tap do |x|
2617
- expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
2618
- expect(x.until_expression).to eq(true)
2619
- expect(x.statements).to be_instance_of(Array)
2620
- expect(x.statements.count).to eq(1)
2621
- expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
2622
- end
2623
-
2624
- functions.find{|x| x.id == "returnStatement"}.statements[0].tap do |x|
2625
- expect(x).to be_instance_of(Expressir::Model::Statements::Return)
2626
- expect(x.expression).to eq(true)
2627
- end
2628
-
2629
- functions.find{|x| x.id == "skipStatement"}.statements[0].tap do |x|
2630
- expect(x).to be_instance_of(Expressir::Model::Statements::Skip)
2631
- end
2632
- end
2633
- end
2634
-
2635
- def sample_file
2636
- @sample_file ||= Expressir.root_path.join(
2637
- "original", "examples", "syntax", "syntax.exp"
2638
- )
2639
- end
2640
- end