expressir 0.2.1 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (560) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/rake.yml +46 -0
  3. data/.github/workflows/release.yml +75 -0
  4. data/.gitignore +15 -15
  5. data/.gitmodules +3 -0
  6. data/.rspec +2 -2
  7. data/.rubocop.yml +508 -508
  8. data/Gemfile +6 -4
  9. data/README.adoc +147 -147
  10. data/Rakefile +25 -6
  11. data/bin/console +12 -12
  12. data/bin/rspec +29 -29
  13. data/bin/setup +8 -8
  14. data/demo.rb +18 -18
  15. data/docs/development.md +90 -90
  16. data/exe/expressir +20 -20
  17. data/exe/generate-parser +48 -0
  18. data/expressir.gemspec +42 -36
  19. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/CMakeLists.txt +118 -0
  20. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj +637 -0
  21. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2013.vcxproj.filters +984 -0
  22. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj +652 -0
  23. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2015.vcxproj.filters +990 -0
  24. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj +652 -0
  25. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2017.vcxproj.filters +990 -0
  26. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj +652 -0
  27. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlr4cpp-vs2019.vcxproj.filters +990 -0
  28. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/Info.plist +26 -0
  29. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp-ios/antlrcpp_ios.h +17 -0
  30. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.pbxproj +3024 -0
  31. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  32. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  33. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4.xcscheme +76 -0
  34. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_ios.xcscheme +80 -0
  35. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/antlrcpp.xcodeproj/xcshareddata/xcschemes/antlr4_static.xcscheme +80 -0
  36. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.cpp +10 -0
  37. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorListener.h +167 -0
  38. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.cpp +10 -0
  39. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRErrorStrategy.h +121 -0
  40. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.cpp +34 -0
  41. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRFileStream.h +27 -0
  42. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.cpp +155 -0
  43. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ANTLRInputStream.h +69 -0
  44. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.cpp +61 -0
  45. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BailErrorStrategy.h +59 -0
  46. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.cpp +25 -0
  47. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BaseErrorListener.h +36 -0
  48. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.cpp +414 -0
  49. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/BufferedTokenStream.h +200 -0
  50. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.cpp +11 -0
  51. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CharStream.h +37 -0
  52. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.cpp +195 -0
  53. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonToken.h +158 -0
  54. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.cpp +39 -0
  55. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenFactory.h +74 -0
  56. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.cpp +78 -0
  57. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/CommonTokenStream.h +79 -0
  58. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.cpp +15 -0
  59. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ConsoleErrorListener.h +35 -0
  60. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.cpp +333 -0
  61. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DefaultErrorStrategy.h +466 -0
  62. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.cpp +84 -0
  63. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/DiagnosticErrorListener.h +80 -0
  64. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.cpp +64 -0
  65. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Exceptions.h +99 -0
  66. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.cpp +51 -0
  67. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/FailedPredicateException.h +32 -0
  68. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.cpp +18 -0
  69. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InputMismatchException.h +24 -0
  70. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.cpp +12 -0
  71. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/IntStream.h +218 -0
  72. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.cpp +19 -0
  73. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/InterpreterRuleContext.h +45 -0
  74. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.cpp +295 -0
  75. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Lexer.h +196 -0
  76. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.cpp +75 -0
  77. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerInterpreter.h +52 -0
  78. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.cpp +36 -0
  79. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/LexerNoViableAltException.h +31 -0
  80. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.cpp +92 -0
  81. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ListTokenSource.h +88 -0
  82. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.cpp +46 -0
  83. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/NoViableAltException.h +42 -0
  84. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.cpp +648 -0
  85. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Parser.h +467 -0
  86. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.cpp +306 -0
  87. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserInterpreter.h +179 -0
  88. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.cpp +141 -0
  89. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ParserRuleContext.h +147 -0
  90. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.cpp +53 -0
  91. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/ProxyErrorListener.h +38 -0
  92. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.cpp +66 -0
  93. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RecognitionException.h +98 -0
  94. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.cpp +167 -0
  95. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Recognizer.h +164 -0
  96. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.cpp +143 -0
  97. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContext.h +137 -0
  98. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.cpp +27 -0
  99. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuleContextWithAltNum.h +32 -0
  100. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.cpp +53 -0
  101. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/RuntimeMetaData.h +155 -0
  102. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.cpp +9 -0
  103. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Token.h +92 -0
  104. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenFactory.h +30 -0
  105. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.cpp +9 -0
  106. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenSource.h +85 -0
  107. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.cpp +11 -0
  108. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStream.h +137 -0
  109. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.cpp +425 -0
  110. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/TokenStreamRewriter.h +293 -0
  111. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.cpp +211 -0
  112. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedCharStream.h +123 -0
  113. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.cpp +270 -0
  114. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/UnbufferedTokenStream.h +115 -0
  115. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.cpp +104 -0
  116. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/Vocabulary.h +193 -0
  117. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.cpp +9 -0
  118. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/WritableToken.h +23 -0
  119. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-common.h +137 -0
  120. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/antlr4-runtime.h +167 -0
  121. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.cpp +209 -0
  122. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATN.h +112 -0
  123. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.cpp +113 -0
  124. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfig.h +148 -0
  125. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.cpp +228 -0
  126. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNConfigSet.h +110 -0
  127. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.cpp +64 -0
  128. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializationOptions.h +50 -0
  129. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.cpp +758 -0
  130. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNDeserializer.h +85 -0
  131. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.cpp +621 -0
  132. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSerializer.h +61 -0
  133. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.cpp +63 -0
  134. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNSimulator.h +87 -0
  135. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.cpp +72 -0
  136. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNState.h +133 -0
  137. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ATNType.h +20 -0
  138. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.cpp +14 -0
  139. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AbstractPredicateTransition.h +24 -0
  140. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.cpp +33 -0
  141. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ActionTransition.h +33 -0
  142. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.cpp +16 -0
  143. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AmbiguityInfo.h +68 -0
  144. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.cpp +82 -0
  145. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ArrayPredictionContext.h +43 -0
  146. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.cpp +31 -0
  147. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/AtomTransition.h +30 -0
  148. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.cpp +12 -0
  149. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicBlockStartState.h +22 -0
  150. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.cpp +12 -0
  151. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BasicState.h +21 -0
  152. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.cpp +15 -0
  153. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockEndState.h +24 -0
  154. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.cpp +9 -0
  155. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/BlockStartState.h +21 -0
  156. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.cpp +14 -0
  157. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ContextSensitivityInfo.h +47 -0
  158. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.cpp +14 -0
  159. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionEventInfo.h +70 -0
  160. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.cpp +25 -0
  161. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionInfo.h +227 -0
  162. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.cpp +17 -0
  163. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/DecisionState.h +30 -0
  164. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.cpp +35 -0
  165. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EmptyPredictionContext.h +27 -0
  166. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.cpp +35 -0
  167. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/EpsilonTransition.h +39 -0
  168. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.cpp +15 -0
  169. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ErrorInfo.h +43 -0
  170. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.cpp +158 -0
  171. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LL1Analyzer.h +109 -0
  172. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.cpp +84 -0
  173. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNConfig.h +44 -0
  174. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.cpp +628 -0
  175. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerATNSimulator.h +210 -0
  176. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.cpp +9 -0
  177. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerAction.h +66 -0
  178. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.cpp +107 -0
  179. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionExecutor.h +115 -0
  180. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerActionType.h +55 -0
  181. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.cpp +55 -0
  182. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerChannelAction.h +63 -0
  183. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.cpp +62 -0
  184. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerCustomAction.h +87 -0
  185. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.cpp +63 -0
  186. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerIndexedCustomAction.h +82 -0
  187. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.cpp +56 -0
  188. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerModeAction.h +61 -0
  189. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.cpp +47 -0
  190. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerMoreAction.h +57 -0
  191. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.cpp +47 -0
  192. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPopModeAction.h +57 -0
  193. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.cpp +56 -0
  194. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerPushModeAction.h +61 -0
  195. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.cpp +47 -0
  196. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerSkipAction.h +55 -0
  197. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.cpp +56 -0
  198. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LexerTypeAction.h +55 -0
  199. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.cpp +16 -0
  200. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LookaheadEventInfo.h +42 -0
  201. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.cpp +12 -0
  202. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/LoopEndState.h +22 -0
  203. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Makefile +67 -0
  204. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.cpp +27 -0
  205. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/NotSetTransition.h +25 -0
  206. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.cpp +12 -0
  207. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/OrderedATNConfigSet.h +20 -0
  208. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.cpp +102 -0
  209. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParseInfo.h +102 -0
  210. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.cpp +1366 -0
  211. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ParserATNSimulator.h +904 -0
  212. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.cpp +12 -0
  213. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusBlockStartState.h +25 -0
  214. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.cpp +12 -0
  215. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PlusLoopbackState.h +22 -0
  216. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.cpp +32 -0
  217. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PrecedencePredicateTransition.h +29 -0
  218. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.cpp +17 -0
  219. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateEvalInfo.h +62 -0
  220. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.cpp +34 -0
  221. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredicateTransition.h +39 -0
  222. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.cpp +662 -0
  223. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionContext.h +254 -0
  224. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.cpp +201 -0
  225. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/PredictionMode.h +436 -0
  226. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +179 -0
  227. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.h +60 -0
  228. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.cpp +30 -0
  229. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RangeTransition.h +29 -0
  230. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.cpp +16 -0
  231. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStartState.h +25 -0
  232. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.cpp +12 -0
  233. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleStopState.h +25 -0
  234. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.cpp +37 -0
  235. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/RuleTransition.h +40 -0
  236. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.cpp +377 -0
  237. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SemanticContext.h +222 -0
  238. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.cpp +32 -0
  239. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SetTransition.h +30 -0
  240. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.cpp +81 -0
  241. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/SingletonPredictionContext.h +36 -0
  242. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.cpp +12 -0
  243. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarBlockStartState.h +21 -0
  244. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.cpp +15 -0
  245. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopEntryState.h +35 -0
  246. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.cpp +19 -0
  247. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/StarLoopbackState.h +21 -0
  248. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.cpp +12 -0
  249. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/TokensStartState.h +21 -0
  250. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.cpp +44 -0
  251. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/Transition.h +76 -0
  252. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.cpp +25 -0
  253. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/atn/WildcardTransition.h +25 -0
  254. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.cpp +127 -0
  255. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFA.h +91 -0
  256. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.cpp +67 -0
  257. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFASerializer.h +32 -0
  258. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.cpp +100 -0
  259. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/DFAState.h +144 -0
  260. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.cpp +20 -0
  261. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/dfa/LexerDFASerializer.h +23 -0
  262. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.cpp +124 -0
  263. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/InterpreterDataReader.h +31 -0
  264. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.cpp +89 -0
  265. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Interval.h +84 -0
  266. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.cpp +521 -0
  267. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/IntervalSet.h +198 -0
  268. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.cpp +134 -0
  269. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/MurmurHash.h +76 -0
  270. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.cpp +4 -0
  271. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/misc/Predicate.h +21 -0
  272. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.cpp +13 -0
  273. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Any.h +170 -0
  274. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.cpp +43 -0
  275. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Arrays.h +110 -0
  276. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/BitSet.h +76 -0
  277. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.cpp +248 -0
  278. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/CPPUtils.h +78 -0
  279. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/Declarations.h +163 -0
  280. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.cpp +36 -0
  281. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/StringUtils.h +54 -0
  282. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.cpp +303 -0
  283. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/support/guid.h +112 -0
  284. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/AbstractParseTreeVisitor.h +128 -0
  285. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.cpp +9 -0
  286. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNode.h +19 -0
  287. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.cpp +23 -0
  288. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ErrorNodeImpl.h +33 -0
  289. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.cpp +71 -0
  290. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/IterativeParseTreeWalker.h +53 -0
  291. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.cpp +15 -0
  292. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTree.h +102 -0
  293. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.cpp +9 -0
  294. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeListener.h +39 -0
  295. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeProperty.h +50 -0
  296. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.cpp +9 -0
  297. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeVisitor.h +57 -0
  298. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.cpp +49 -0
  299. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/ParseTreeWalker.h +31 -0
  300. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.cpp +9 -0
  301. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNode.h +32 -0
  302. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.cpp +57 -0
  303. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/TerminalNodeImpl.h +33 -0
  304. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.cpp +241 -0
  305. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/Trees.h +78 -0
  306. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.cpp +9 -0
  307. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/Chunk.h +44 -0
  308. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.cpp +69 -0
  309. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreeMatch.h +132 -0
  310. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.cpp +64 -0
  311. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePattern.h +105 -0
  312. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.cpp +371 -0
  313. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/ParseTreePatternMatcher.h +185 -0
  314. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.cpp +77 -0
  315. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/RuleTagToken.h +117 -0
  316. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.cpp +39 -0
  317. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TagChunk.h +86 -0
  318. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.cpp +28 -0
  319. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TextChunk.h +51 -0
  320. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.cpp +36 -0
  321. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/pattern/TokenTagToken.h +80 -0
  322. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.cpp +154 -0
  323. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPath.h +86 -0
  324. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.cpp +31 -0
  325. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathElement.h +40 -0
  326. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.cpp +173 -0
  327. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.g4 +64 -0
  328. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.h +56 -0
  329. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexer.tokens +12 -0
  330. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.cpp +13 -0
  331. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathLexerErrorListener.h +22 -0
  332. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.cpp +20 -0
  333. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleAnywhereElement.h +27 -0
  334. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.cpp +30 -0
  335. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathRuleElement.h +26 -0
  336. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.cpp +20 -0
  337. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenAnywhereElement.h +25 -0
  338. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.cpp +33 -0
  339. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathTokenElement.h +26 -0
  340. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.cpp +23 -0
  341. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardAnywhereElement.h +23 -0
  342. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.cpp +24 -0
  343. data/ext/express-parser/antlr4-upstream/runtime/Cpp/runtime/src/tree/xpath/XPathWildcardElement.h +23 -0
  344. data/ext/express-parser/antlrgen/Express.interp +532 -0
  345. data/ext/express-parser/antlrgen/Express.tokens +190 -0
  346. data/ext/express-parser/antlrgen/ExpressBaseListener.cpp +7 -0
  347. data/ext/express-parser/antlrgen/ExpressBaseListener.h +623 -0
  348. data/ext/express-parser/antlrgen/ExpressBaseVisitor.cpp +7 -0
  349. data/ext/express-parser/antlrgen/ExpressBaseVisitor.h +816 -0
  350. data/ext/express-parser/antlrgen/ExpressLexer.cpp +1169 -0
  351. data/ext/express-parser/antlrgen/ExpressLexer.h +85 -0
  352. data/ext/express-parser/antlrgen/ExpressLexer.interp +534 -0
  353. data/ext/express-parser/antlrgen/ExpressLexer.tokens +190 -0
  354. data/ext/express-parser/antlrgen/ExpressListener.cpp +7 -0
  355. data/ext/express-parser/antlrgen/ExpressListener.h +616 -0
  356. data/ext/express-parser/antlrgen/ExpressParser.cpp +17284 -0
  357. data/ext/express-parser/antlrgen/ExpressParser.h +3696 -0
  358. data/ext/express-parser/antlrgen/ExpressVisitor.cpp +7 -0
  359. data/ext/express-parser/antlrgen/ExpressVisitor.h +422 -0
  360. data/ext/express-parser/express_parser.cpp +17931 -0
  361. data/ext/express-parser/extconf.rb +35 -0
  362. data/lib/expressir.rb +21 -21
  363. data/lib/expressir/cli.rb +27 -27
  364. data/lib/expressir/cli/ui.rb +36 -36
  365. data/lib/expressir/config.rb +23 -23
  366. data/lib/expressir/express.rb +11 -11
  367. data/lib/expressir/express/aggregate_dimension.rb +38 -38
  368. data/lib/expressir/express/attribute.rb +15 -15
  369. data/lib/expressir/express/comment.rb +7 -7
  370. data/lib/expressir/express/defined_type.rb +36 -36
  371. data/lib/expressir/express/derived.rb +65 -65
  372. data/lib/expressir/express/derived_aggregate.rb +43 -43
  373. data/lib/expressir/express/entity.rb +137 -137
  374. data/lib/expressir/express/explicit.rb +70 -70
  375. data/lib/expressir/express/explicit_aggregate.rb +46 -46
  376. data/lib/expressir/express/explicit_or_derived.rb +16 -16
  377. data/lib/expressir/express/global_rule.rb +44 -44
  378. data/lib/expressir/express/interface_specification.rb +51 -51
  379. data/lib/expressir/express/interfaced_item.rb +38 -38
  380. data/lib/expressir/express/inverse.rb +46 -46
  381. data/lib/expressir/express/inverse_aggregate.rb +37 -37
  382. data/lib/expressir/express/model_element.rb +7 -7
  383. data/lib/expressir/express/named_type.rb +19 -19
  384. data/lib/expressir/express/remark.rb +8 -8
  385. data/lib/expressir/express/repository.rb +306 -306
  386. data/lib/expressir/express/schema_definition.rb +96 -96
  387. data/lib/expressir/express/subtype_constraint.rb +14 -14
  388. data/lib/expressir/express/type.rb +26 -26
  389. data/lib/expressir/express/type_aggregate.rb +42 -42
  390. data/lib/expressir/express/type_enum.rb +29 -29
  391. data/lib/expressir/express/type_parser.rb +45 -45
  392. data/lib/expressir/express/type_select.rb +82 -82
  393. data/lib/expressir/express/unique_rule.rb +35 -35
  394. data/lib/expressir/express/where_rule.rb +32 -32
  395. data/lib/expressir/express_exp/formatter.rb +1450 -0
  396. data/lib/expressir/express_exp/parser.rb +35 -29
  397. data/lib/expressir/express_exp/visitor.rb +2450 -2133
  398. data/lib/expressir/express_parser.rb +30 -30
  399. data/lib/expressir/model.rb +64 -90
  400. data/lib/expressir/model/{derived.rb → attribute.rb} +26 -18
  401. data/lib/expressir/model/constant.rb +16 -16
  402. data/lib/expressir/model/entity.rb +45 -40
  403. data/lib/expressir/model/enumeration_item.rb +10 -12
  404. data/lib/expressir/model/expressions/aggregate_initializer.rb +13 -13
  405. data/lib/expressir/model/expressions/aggregate_item.rb +15 -0
  406. data/lib/expressir/model/expressions/{attribute_qualifier.rb → attribute_reference.rb} +14 -12
  407. data/lib/expressir/model/expressions/binary_expression.rb +40 -0
  408. data/lib/expressir/model/expressions/{function_call.rb → call.rb} +14 -14
  409. data/lib/expressir/model/expressions/entity_constructor.rb +15 -15
  410. data/lib/expressir/model/expressions/{group_qualifier.rb → group_reference.rb} +14 -12
  411. data/lib/expressir/model/expressions/{index_qualifier.rb → index_reference.rb} +16 -14
  412. data/lib/expressir/model/expressions/interval.rb +21 -21
  413. data/lib/expressir/model/expressions/query_expression.rb +26 -0
  414. data/lib/expressir/model/expressions/simple_reference.rb +13 -0
  415. data/lib/expressir/model/expressions/{expression.rb → unary_expression.rb} +18 -14
  416. data/lib/expressir/model/function.rb +61 -53
  417. data/lib/expressir/model/identifier.rb +9 -0
  418. data/lib/expressir/model/{reference.rb → interface.rb} +17 -12
  419. data/lib/expressir/model/literals/binary.rb +12 -12
  420. data/lib/expressir/model/literals/integer.rb +12 -12
  421. data/lib/expressir/model/literals/logical.rb +16 -12
  422. data/lib/expressir/model/literals/real.rb +12 -12
  423. data/lib/expressir/model/literals/string.rb +14 -14
  424. data/lib/expressir/model/parameter.rb +16 -16
  425. data/lib/expressir/model/procedure.rb +59 -51
  426. data/lib/expressir/model/renamed_ref.rb +12 -12
  427. data/lib/expressir/model/repository.rb +18 -16
  428. data/lib/expressir/model/rule.rb +61 -53
  429. data/lib/expressir/model/schema.rb +66 -50
  430. data/lib/expressir/model/scope.rb +17 -0
  431. data/lib/expressir/model/statements/alias.rb +25 -24
  432. data/lib/expressir/model/statements/assignment.rb +14 -14
  433. data/lib/expressir/model/statements/{procedure_call.rb → call.rb} +14 -14
  434. data/lib/expressir/model/statements/case.rb +16 -16
  435. data/lib/expressir/model/statements/case_action.rb +14 -14
  436. data/lib/expressir/model/statements/compound.rb +12 -12
  437. data/lib/expressir/model/statements/escape.rb +7 -7
  438. data/lib/expressir/model/statements/if.rb +16 -16
  439. data/lib/expressir/model/statements/null.rb +7 -7
  440. data/lib/expressir/model/statements/repeat.rb +33 -32
  441. data/lib/expressir/model/statements/return.rb +12 -12
  442. data/lib/expressir/model/statements/skip.rb +7 -7
  443. data/lib/expressir/model/subtype_constraint.rb +26 -20
  444. data/lib/expressir/model/type.rb +23 -22
  445. data/lib/expressir/model/types/aggregate.rb +16 -16
  446. data/lib/expressir/model/types/array.rb +20 -20
  447. data/lib/expressir/model/types/bag.rb +16 -16
  448. data/lib/expressir/model/types/binary.rb +14 -14
  449. data/lib/expressir/model/types/boolean.rb +7 -7
  450. data/lib/expressir/model/types/enumeration.rb +18 -18
  451. data/lib/expressir/model/types/generic.rb +12 -14
  452. data/lib/expressir/model/types/generic_entity.rb +12 -14
  453. data/lib/expressir/model/types/integer.rb +7 -7
  454. data/lib/expressir/model/types/list.rb +18 -18
  455. data/lib/expressir/model/types/logical.rb +7 -7
  456. data/lib/expressir/model/types/number.rb +7 -7
  457. data/lib/expressir/model/types/real.rb +12 -12
  458. data/lib/expressir/model/types/select.rb +20 -20
  459. data/lib/expressir/model/types/set.rb +16 -16
  460. data/lib/expressir/model/types/string.rb +14 -14
  461. data/lib/expressir/model/unique.rb +14 -14
  462. data/lib/expressir/model/{local.rb → variable.rb} +16 -16
  463. data/lib/expressir/model/where.rb +14 -14
  464. data/lib/expressir/parser.rb +6 -6
  465. data/lib/expressir/parser/owl_parser.rb +8 -8
  466. data/lib/expressir/version.rb +3 -3
  467. data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.exp +9589 -9589
  468. data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.owl +36619 -36619
  469. data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.xml +13293 -13293
  470. data/original/examples/employment/eclipse/.project +17 -17
  471. data/original/examples/employment/eclipse/Express/employment_schema.exp +33 -33
  472. data/original/examples/employment/eclipse/Express/employment_schema.xmi +77 -77
  473. data/original/examples/employment/eclipse/Express/employment_schema.xml +92 -92
  474. data/original/examples/employment/eclipse/Models/Employment.uml +4 -4
  475. data/original/examples/employment/eclipse/Models/Employment.umldi +240 -240
  476. data/original/examples/employment/eclipse/readme.txt +6 -6
  477. data/original/examples/employment/employment_schema.exp +33 -33
  478. data/original/examples/employment/employment_schema.rb +232 -232
  479. data/original/examples/employment/employment_schema.xml +92 -92
  480. data/original/examples/employment/employment_schema___module.rb +46 -46
  481. data/original/examples/employment/employment_schema___p28attr.rb +126 -126
  482. data/original/examples/employment/employment_schema___p28inst.rb +26 -26
  483. data/original/examples/employment/example_employment_data.xml +1 -1
  484. data/original/examples/employment/example_employment_data_copy.xml +1 -1
  485. data/original/examples/employment/example_employment_reader.rb +30 -30
  486. data/original/examples/employment/example_employment_writer.rb +51 -51
  487. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.exp +3710 -3710
  488. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.owl +35880 -35880
  489. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xmi +15357 -15357
  490. data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xml +9467 -9467
  491. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.exp +8404 -8404
  492. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.owl +43147 -43147
  493. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xmi +18341 -18341
  494. data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xml +11631 -11631
  495. data/original/examples/syntax/remark.exp +145 -127
  496. data/original/examples/syntax/remark_formatted.exp +174 -0
  497. data/original/examples/syntax/syntax.exp +310 -300
  498. data/original/examples/syntax/syntax_formatted.exp +1187 -0
  499. data/original/exp2ruby.rb +525 -525
  500. data/original/expsm.rb +34 -34
  501. data/original/mapping_owl.rb +1018 -1018
  502. data/original/mapping_sysml.rb +2281 -2281
  503. data/original/mapping_uml2.rb +598 -598
  504. data/original/mapping_uml2_eclipse.rb +433 -433
  505. data/original/reeper.rb +134 -134
  506. data/spec/acceptance/express_to_owl_spec.rb +18 -18
  507. data/spec/acceptance/version_spec.rb +12 -12
  508. data/spec/expressir/express/repository_spec.rb +25 -25
  509. data/spec/expressir/express_exp/ap233_spec.rb +22 -22
  510. data/spec/expressir/express_exp/format_remark_spec.rb +28 -0
  511. data/spec/expressir/express_exp/format_syntax_spec.rb +28 -0
  512. data/spec/expressir/express_exp/{remark_spec.rb → parse_remark_spec.rb} +345 -301
  513. data/spec/expressir/express_exp/parse_syntax_spec.rb +2998 -0
  514. data/spec/expressir/model/find_spec.rb +110 -0
  515. data/spec/expressr_spec.rb +5 -5
  516. data/spec/spec_helper.rb +17 -17
  517. data/spec/support/console_helper.rb +29 -29
  518. metadata +401 -67
  519. data/.github/workflows/macos.yml +0 -38
  520. data/.github/workflows/ubuntu.yml +0 -56
  521. data/.github/workflows/windows.yml +0 -40
  522. data/generate-parser.sh +0 -29
  523. data/lib/expressir/express_exp/generated/ExpressBaseVisitor.rb +0 -779
  524. data/lib/expressir/express_exp/generated/ExpressLexer.rb +0 -844
  525. data/lib/expressir/express_exp/generated/ExpressParser.rb +0 -12162
  526. data/lib/expressir/express_exp/generated/ExpressVisitor.rb +0 -394
  527. data/lib/expressir/model/explicit.rb +0 -19
  528. data/lib/expressir/model/expressions/aggregate_element.rb +0 -15
  529. data/lib/expressir/model/expressions/qualified_ref.rb +0 -15
  530. data/lib/expressir/model/expressions/query.rb +0 -25
  531. data/lib/expressir/model/inverse.rb +0 -19
  532. data/lib/expressir/model/operators/addition.rb +0 -8
  533. data/lib/expressir/model/operators/and.rb +0 -8
  534. data/lib/expressir/model/operators/andor.rb +0 -8
  535. data/lib/expressir/model/operators/combine.rb +0 -8
  536. data/lib/expressir/model/operators/equal.rb +0 -8
  537. data/lib/expressir/model/operators/exponentiation.rb +0 -8
  538. data/lib/expressir/model/operators/greater_than.rb +0 -8
  539. data/lib/expressir/model/operators/greater_than_or_equal.rb +0 -8
  540. data/lib/expressir/model/operators/in.rb +0 -8
  541. data/lib/expressir/model/operators/instance_equal.rb +0 -8
  542. data/lib/expressir/model/operators/instance_not_equal.rb +0 -8
  543. data/lib/expressir/model/operators/integer_division.rb +0 -8
  544. data/lib/expressir/model/operators/less_than.rb +0 -8
  545. data/lib/expressir/model/operators/less_than_or_equal.rb +0 -8
  546. data/lib/expressir/model/operators/like.rb +0 -8
  547. data/lib/expressir/model/operators/modulo.rb +0 -8
  548. data/lib/expressir/model/operators/multiplication.rb +0 -8
  549. data/lib/expressir/model/operators/not.rb +0 -8
  550. data/lib/expressir/model/operators/not_equal.rb +0 -8
  551. data/lib/expressir/model/operators/oneof.rb +0 -8
  552. data/lib/expressir/model/operators/or.rb +0 -8
  553. data/lib/expressir/model/operators/real_division.rb +0 -8
  554. data/lib/expressir/model/operators/subtraction.rb +0 -8
  555. data/lib/expressir/model/operators/unary_minus.rb +0 -8
  556. data/lib/expressir/model/operators/unary_plus.rb +0 -8
  557. data/lib/expressir/model/operators/xor.rb +0 -8
  558. data/lib/expressir/model/ref.rb +0 -11
  559. data/lib/expressir/model/use.rb +0 -13
  560. data/spec/expressir/express_exp/syntax_spec.rb +0 -2992
@@ -1,127 +1,145 @@
1
- --"remarkSchema" universal scope - schema before
2
-
3
- SCHEMA remarkSchema;
4
-
5
- CONSTANT remarkConstant : STRING := 'xxx'; END_CONSTANT;
6
- TYPE remarkType = STRING; END_TYPE;
7
- ENTITY remarkEntity;
8
- remarkExplicit : STRING;
9
- DERIVE remarkDerived : STRING := 'xxx';
10
- INVERSE remarkInverse : remarkEntity FOR remarkExplicit;
11
- UNIQUE remarkUnique : remarkExplicit;
12
- WHERE remarkWhere : TRUE;
13
- --"remarkExplicit" entity scope - entity explicit
14
- --"remarkDerived" entity scope - entity derived
15
- --"remarkInverse" entity scope - entity inverse
16
- --"remarkUnique" entity scope - entity unique
17
- --"remarkWhere" entity scope - entity where
18
- END_ENTITY;
19
- SUBTYPE_CONSTRAINT remarkSubtypeConstraint FOR remarkEntity; END_SUBTYPE_CONSTRAINT;
20
- FUNCTION remarkFunction (remarkParameter : STRING) : BOOLEAN;
21
- TYPE remarkType = STRING; END_TYPE;
22
- CONSTANT remarkConstant : STRING := 'xxx'; END_CONSTANT;
23
- LOCAL remarkLocal : STRING; END_LOCAL;
24
- ALIAS remarkAlias FOR remarkLocal; ;
25
- --"remarkAlias" function alias scope - function alias
26
- END_ALIAS;
27
- REPEAT remarkRepeat := 1 TO 9; ;
28
- --"remarkRepeat" function repeat scope - function repeat
29
- END_REPEAT;
30
- remarkLocal := QUERY(remarkQuery <* remarkLocal | TRUE
31
- --"remarkQuery" function query scope - function query
32
- );
33
- --"remarkParameter" function scope - function parameter
34
- --"remarkType" function scope - function type
35
- --"remarkConstant" function scope - function constant
36
- --"remarkLocal" function scope - function local
37
- END_FUNCTION;
38
- PROCEDURE remarkProcedure (remarkParameter : STRING);
39
- TYPE remarkType = STRING; END_TYPE;
40
- CONSTANT remarkConstant : STRING := 'xxx'; END_CONSTANT;
41
- LOCAL remarkLocal : STRING; END_LOCAL;
42
- ALIAS remarkAlias FOR remarkLocal; ;
43
- --"remarkAlias" procedure alias scope - procedure alias
44
- END_ALIAS;
45
- REPEAT remarkRepeat := 1 TO 9; ;
46
- --"remarkRepeat" procedure repeat scope - procedure repeat
47
- END_REPEAT;
48
- remarkLocal := QUERY(remarkQuery <* remarkLocal | TRUE
49
- --"remarkQuery" procedure query scope - procedure query
50
- );
51
- --"remarkParameter" procedure scope - procedure parameter
52
- --"remarkType" procedure scope - procedure type
53
- --"remarkConstant" procedure scope - procedure constant
54
- --"remarkLocal" procedure scope - procedure local
55
- END_PROCEDURE;
56
- RULE remarkRule FOR (remarkEntity);
57
- TYPE remarkType = STRING; END_TYPE;
58
- CONSTANT remarkConstant : STRING := 'xxx'; END_CONSTANT;
59
- LOCAL remarkLocal : STRING; END_LOCAL;
60
- ALIAS remarkAlias FOR remarkLocal; ;
61
- --"remarkAlias" rule alias scope - rule alias
62
- END_ALIAS;
63
- REPEAT remarkRepeat := 1 TO 9; ;
64
- --"remarkRepeat" rule repeat scope - rule repeat
65
- END_REPEAT;
66
- remarkLocal := QUERY(remarkQuery <* remarkLocal | TRUE
67
- --"remarkQuery" rule query scope - rule query
68
- );
69
- WHERE remarkWhere : TRUE;
70
- --"remarkType" rule scope - rule type
71
- --"remarkConstant" rule scope - rule constant
72
- --"remarkLocal" rule scope - rule local
73
- --"remarkWhere" rule scope - rule where
74
- END_RULE;
75
-
76
- --"remarkConstant" schema scope - constant
77
- --"remarkType" schema scope - type
78
- --"remarkEntity" schema scope - entity
79
- --"remarkEntity.remarkExplicit" schema scope - entity explicit
80
- --"remarkEntity.remarkDerived" schema scope - entity derived
81
- --"remarkEntity.remarkInverse" schema scope - entity inverse
82
- --"remarkEntity.remarkUnique" schema scope - entity unique
83
- --"remarkEntity.remarkWhere" schema scope - entity where
84
- --"remarkSubtypeConstraint" schema scope - subtype constraint
85
- --"remarkFunction" schema scope - function
86
- --"remarkFunction.remarkParameter" schema scope - function parameter
87
- --"remarkFunction.remarkType" schema scope - function type
88
- --"remarkFunction.remarkConstant" schema scope - function constant
89
- --"remarkFunction.remarkLocal" schema scope - function local
90
- --"remarkProcedure" schema scope - procedure
91
- --"remarkProcedure.remarkParameter" schema scope - procedure parameter
92
- --"remarkProcedure.remarkType" schema scope - procedure type
93
- --"remarkProcedure.remarkConstant" schema scope - procedure constant
94
- --"remarkProcedure.remarkLocal" schema scope - procedure local
95
- --"remarkRule" schema scope - rule
96
- --"remarkRule.remarkType" schema scope - rule type
97
- --"remarkRule.remarkConstant" schema scope - rule constant
98
- --"remarkRule.remarkLocal" schema scope - rule local
99
- --"remarkRule.remarkWhere" schema scope - rule where
100
-
101
- END_SCHEMA;
102
-
103
- --"remarkSchema" universal scope - schema
104
- --"remarkSchema.remarkConstant" universal scope - constant
105
- --"remarkSchema.remarkType" universal scope - type
106
- --"remarkSchema.remarkEntity" universal scope - entity
107
- --"remarkSchema.remarkEntity.remarkExplicit" universal scope - entity explicit
108
- --"remarkSchema.remarkEntity.remarkDerived" universal scope - entity derived
109
- --"remarkSchema.remarkEntity.remarkInverse" universal scope - entity inverse
110
- --"remarkSchema.remarkEntity.remarkUnique" universal scope - entity unique
111
- --"remarkSchema.remarkEntity.remarkWhere" universal scope - entity where
112
- --"remarkSchema.remarkSubtypeConstraint" universal scope - subtype constraint
113
- --"remarkSchema.remarkFunction" universal scope - function
114
- --"remarkSchema.remarkFunction.remarkParameter" universal scope - function parameter
115
- --"remarkSchema.remarkFunction.remarkType" universal scope - function type
116
- --"remarkSchema.remarkFunction.remarkConstant" universal scope - function constant
117
- --"remarkSchema.remarkFunction.remarkLocal" universal scope - function local
118
- --"remarkSchema.remarkProcedure" universal scope - procedure
119
- --"remarkSchema.remarkProcedure.remarkParameter" universal scope - procedure parameter
120
- --"remarkSchema.remarkProcedure.remarkType" universal scope - procedure type
121
- --"remarkSchema.remarkProcedure.remarkConstant" universal scope - procedure constant
122
- --"remarkSchema.remarkProcedure.remarkLocal" universal scope - procedure local
123
- --"remarkSchema.remarkRule" universal scope - rule
124
- --"remarkSchema.remarkRule.remarkType" universal scope - rule type
125
- --"remarkSchema.remarkRule.remarkConstant" universal scope - rule constant
126
- --"remarkSchema.remarkRule.remarkLocal" universal scope - rule local
127
- --"remarkSchema.remarkRule.remarkWhere" universal scope - rule where
1
+ (*"remark_schema"
2
+ Any character within the EXPRESS character set may occur between the start and end of
3
+ an embedded remark including the newline character; therefore, embedded remarks can span
4
+ several physical lines.
5
+ *)
6
+ --"remark_schema" The tail remark is written at the end of a physical line.
7
+
8
+ --"remark_schema" universal scope - schema before
9
+
10
+ SCHEMA remark_schema;
11
+
12
+ CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
13
+ TYPE remark_type = ENUMERATION OF (remark_enumeration_item); END_TYPE;
14
+ ENTITY remark_entity;
15
+ remark_attribute : STRING;
16
+ DERIVE remark_derived_attribute : STRING := 'xxx';
17
+ INVERSE remark_inverse_attribute : remark_entity FOR remark_attribute;
18
+ UNIQUE remark_unique : remark_attribute;
19
+ WHERE remark_where : TRUE;
20
+ --"remark_attribute" entity scope - entity attribute
21
+ --"remark_derived_attribute" entity scope - entity derived attribute
22
+ --"remark_inverse_attribute" entity scope - entity inverse attribute
23
+ --"remark_unique" entity scope - entity unique
24
+ --"remark_where" entity scope - entity where
25
+ END_ENTITY;
26
+ SUBTYPE_CONSTRAINT remark_subtype_constraint FOR remark_entity; END_SUBTYPE_CONSTRAINT;
27
+ FUNCTION remark_function(remark_parameter : STRING) : BOOLEAN;
28
+ TYPE remark_type = ENUMERATION OF (remark_enumeration_item); END_TYPE;
29
+ CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
30
+ LOCAL remark_variable : STRING; END_LOCAL;
31
+ ALIAS remark_alias FOR remark_variable; ;
32
+ --"remark_alias" function alias scope - function alias
33
+ END_ALIAS;
34
+ REPEAT remark_repeat := 1 TO 9; ;
35
+ --"remark_repeat" function repeat scope - function repeat
36
+ END_REPEAT;
37
+ remark_variable := QUERY(remark_query <* remark_variable | TRUE
38
+ --"remark_query" function query scope - function query
39
+ );
40
+ --"remark_parameter" function scope - function parameter
41
+ --"remark_type" function scope - function type
42
+ --"remark_enumeration_item" function scope - function enumeration item
43
+ --"remark_constant" function scope - function constant
44
+ --"remark_variable" function scope - function variable
45
+ END_FUNCTION;
46
+ PROCEDURE remark_procedure(remark_parameter : STRING);
47
+ TYPE remark_type = ENUMERATION OF (remark_enumeration_item); END_TYPE;
48
+ CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
49
+ LOCAL remark_variable : STRING; END_LOCAL;
50
+ ALIAS remark_alias FOR remark_variable; ;
51
+ --"remark_alias" procedure alias scope - procedure alias
52
+ END_ALIAS;
53
+ REPEAT remark_repeat := 1 TO 9; ;
54
+ --"remark_repeat" procedure repeat scope - procedure repeat
55
+ END_REPEAT;
56
+ remark_variable := QUERY(remark_query <* remark_variable | TRUE
57
+ --"remark_query" procedure query scope - procedure query
58
+ );
59
+ --"remark_parameter" procedure scope - procedure parameter
60
+ --"remark_type" procedure scope - procedure type
61
+ --"remark_enumeration_item" procedure scope - procedure enumeration item
62
+ --"remark_constant" procedure scope - procedure constant
63
+ --"remark_variable" procedure scope - procedure variable
64
+ END_PROCEDURE;
65
+ RULE remark_rule FOR (remark_entity);
66
+ TYPE remark_type = ENUMERATION OF (remark_enumeration_item); END_TYPE;
67
+ CONSTANT remark_constant : STRING := 'xxx'; END_CONSTANT;
68
+ LOCAL remark_variable : STRING; END_LOCAL;
69
+ ALIAS remark_alias FOR remark_variable; ;
70
+ --"remark_alias" rule alias scope - rule alias
71
+ END_ALIAS;
72
+ REPEAT remark_repeat := 1 TO 9; ;
73
+ --"remark_repeat" rule repeat scope - rule repeat
74
+ END_REPEAT;
75
+ remark_variable := QUERY(remark_query <* remark_variable | TRUE
76
+ --"remark_query" rule query scope - rule query
77
+ );
78
+ WHERE remark_where : TRUE;
79
+ --"remark_type" rule scope - rule type
80
+ --"remark_enumeration_item" rule scope - rule enumeration item
81
+ --"remark_constant" rule scope - rule constant
82
+ --"remark_variable" rule scope - rule variable
83
+ --"remark_where" rule scope - rule where
84
+ END_RULE;
85
+
86
+ --"remark_constant" schema scope - constant
87
+ --"remark_type" schema scope - type
88
+ --"remark_enumeration_item" schema scope - enumeration item
89
+ --"remark_entity" schema scope - entity
90
+ --"remark_entity.remark_attribute" schema scope - entity attribute
91
+ --"remark_entity.remark_derived_attribute" schema scope - entity derived attribute
92
+ --"remark_entity.remark_inverse_attribute" schema scope - entity inverse attribute
93
+ --"remark_entity.remark_unique" schema scope - entity unique
94
+ --"remark_entity.remark_where" schema scope - entity where
95
+ --"remark_subtype_constraint" schema scope - subtype constraint
96
+ --"remark_function" schema scope - function
97
+ --"remark_function.remark_parameter" schema scope - function parameter
98
+ --"remark_function.remark_type" schema scope - function type
99
+ --"remark_function.remark_enumeration_item" schema scope - function enumeration item
100
+ --"remark_function.remark_constant" schema scope - function constant
101
+ --"remark_function.remark_variable" schema scope - function variable
102
+ --"remark_procedure" schema scope - procedure
103
+ --"remark_procedure.remark_parameter" schema scope - procedure parameter
104
+ --"remark_procedure.remark_type" schema scope - procedure type
105
+ --"remark_procedure.remark_enumeration_item" schema scope - procedure enumeration item
106
+ --"remark_procedure.remark_constant" schema scope - procedure constant
107
+ --"remark_procedure.remark_variable" schema scope - procedure variable
108
+ --"remark_rule" schema scope - rule
109
+ --"remark_rule.remark_type" schema scope - rule type
110
+ --"remark_rule.remark_enumeration_item" schema scope - rule enumeration item
111
+ --"remark_rule.remark_constant" schema scope - rule constant
112
+ --"remark_rule.remark_variable" schema scope - rule variable
113
+ --"remark_rule.remark_where" schema scope - rule where
114
+
115
+ END_SCHEMA;
116
+
117
+ --"remark_schema" universal scope - schema
118
+ --"remark_schema.remark_constant" universal scope - constant
119
+ --"remark_schema.remark_type" universal scope - type
120
+ --"remark_schema.remark_enumeration_item" universal scope - enumeration item
121
+ --"remark_schema.remark_entity" universal scope - entity
122
+ --"remark_schema.remark_entity.remark_attribute" universal scope - entity attribute
123
+ --"remark_schema.remark_entity.remark_derived_attribute" universal scope - entity derived attribute
124
+ --"remark_schema.remark_entity.remark_inverse_attribute" universal scope - entity inverse attribute
125
+ --"remark_schema.remark_entity.remark_unique" universal scope - entity unique
126
+ --"remark_schema.remark_entity.remark_where" universal scope - entity where
127
+ --"remark_schema.remark_subtype_constraint" universal scope - subtype constraint
128
+ --"remark_schema.remark_function" universal scope - function
129
+ --"remark_schema.remark_function.remark_parameter" universal scope - function parameter
130
+ --"remark_schema.remark_function.remark_type" universal scope - function type
131
+ --"remark_schema.remark_function.remark_enumeration_item" universal scope - function enumeration item
132
+ --"remark_schema.remark_function.remark_constant" universal scope - function constant
133
+ --"remark_schema.remark_function.remark_variable" universal scope - function variable
134
+ --"remark_schema.remark_procedure" universal scope - procedure
135
+ --"remark_schema.remark_procedure.remark_parameter" universal scope - procedure parameter
136
+ --"remark_schema.remark_procedure.remark_type" universal scope - procedure type
137
+ --"remark_schema.remark_procedure.remark_enumeration_item" universal scope - procedure enumeration item
138
+ --"remark_schema.remark_procedure.remark_constant" universal scope - procedure constant
139
+ --"remark_schema.remark_procedure.remark_variable" universal scope - procedure variable
140
+ --"remark_schema.remark_rule" universal scope - rule
141
+ --"remark_schema.remark_rule.remark_type" universal scope - rule type
142
+ --"remark_schema.remark_rule.remark_enumeration_item" universal scope - rule enumeration item
143
+ --"remark_schema.remark_rule.remark_constant" universal scope - rule constant
144
+ --"remark_schema.remark_rule.remark_variable" universal scope - rule variable
145
+ --"remark_schema.remark_rule.remark_where" universal scope - rule where
@@ -0,0 +1,174 @@
1
+ SCHEMA remark_schema;
2
+ CONSTANT
3
+ remark_constant : STRING := 'xxx';
4
+ END_CONSTANT;
5
+ TYPE remark_type = ENUMERATION OF (remark_enumeration_item);
6
+ END_TYPE;
7
+
8
+ ENTITY remark_entity;
9
+ remark_attribute : STRING;
10
+ DERIVE
11
+ remark_derived_attribute : STRING := 'xxx';
12
+ INVERSE
13
+ remark_inverse_attribute : remark_entity FOR remark_attribute;
14
+ UNIQUE
15
+ remark_unique : remark_attribute;
16
+ WHERE
17
+ remark_where : TRUE;
18
+ END_ENTITY;
19
+
20
+ SUBTYPE_CONSTRAINT remark_subtype_constraint FOR remark_entity;
21
+ END_SUBTYPE_CONSTRAINT;
22
+
23
+ FUNCTION remark_function(remark_parameter : STRING) : BOOLEAN;
24
+ TYPE remark_type = ENUMERATION OF (remark_enumeration_item);
25
+ END_TYPE;
26
+ CONSTANT
27
+ remark_constant : STRING := 'xxx';
28
+ END_CONSTANT;
29
+ LOCAL
30
+ remark_variable : STRING;
31
+ END_LOCAL;
32
+ ALIAS remark_alias FOR remark_variable;
33
+ ;
34
+ --"remark_alias" function alias scope - function alias
35
+ END_ALIAS;
36
+ REPEAT remark_repeat := 1 TO 9;
37
+ ;
38
+ --"remark_repeat" function repeat scope - function repeat
39
+ END_REPEAT;
40
+ remark_variable := QUERY(remark_query <* remark_variable | TRUE
41
+ --"remark_query" function query scope - function query
42
+ );
43
+ END_FUNCTION;
44
+
45
+ PROCEDURE remark_procedure(remark_parameter : STRING);
46
+ TYPE remark_type = ENUMERATION OF (remark_enumeration_item);
47
+ END_TYPE;
48
+ CONSTANT
49
+ remark_constant : STRING := 'xxx';
50
+ END_CONSTANT;
51
+ LOCAL
52
+ remark_variable : STRING;
53
+ END_LOCAL;
54
+ ALIAS remark_alias FOR remark_variable;
55
+ ;
56
+ --"remark_alias" procedure alias scope - procedure alias
57
+ END_ALIAS;
58
+ REPEAT remark_repeat := 1 TO 9;
59
+ ;
60
+ --"remark_repeat" procedure repeat scope - procedure repeat
61
+ END_REPEAT;
62
+ remark_variable := QUERY(remark_query <* remark_variable | TRUE
63
+ --"remark_query" procedure query scope - procedure query
64
+ );
65
+ END_PROCEDURE;
66
+
67
+ RULE remark_rule FOR (remark_entity);
68
+ TYPE remark_type = ENUMERATION OF (remark_enumeration_item);
69
+ END_TYPE;
70
+ CONSTANT
71
+ remark_constant : STRING := 'xxx';
72
+ END_CONSTANT;
73
+ LOCAL
74
+ remark_variable : STRING;
75
+ END_LOCAL;
76
+ ALIAS remark_alias FOR remark_variable;
77
+ ;
78
+ --"remark_alias" rule alias scope - rule alias
79
+ END_ALIAS;
80
+ REPEAT remark_repeat := 1 TO 9;
81
+ ;
82
+ --"remark_repeat" rule repeat scope - rule repeat
83
+ END_REPEAT;
84
+ remark_variable := QUERY(remark_query <* remark_variable | TRUE
85
+ --"remark_query" rule query scope - rule query
86
+ );
87
+ WHERE
88
+ remark_where : TRUE;
89
+ END_RULE;
90
+ END_SCHEMA;
91
+ (*"remark_schema"
92
+ Any character within the EXPRESS character set may occur between the start and end of
93
+ an embedded remark including the newline character; therefore, embedded remarks can span
94
+ several physical lines.
95
+ *)
96
+ --"remark_schema" The tail remark is written at the end of a physical line.
97
+ --"remark_schema" universal scope - schema before
98
+ --"remark_schema" universal scope - schema
99
+ --"remark_schema.remark_constant" schema scope - constant
100
+ --"remark_schema.remark_constant" universal scope - constant
101
+ --"remark_schema.remark_type" schema scope - type
102
+ --"remark_schema.remark_type" universal scope - type
103
+ --"remark_schema.remark_enumeration_item" schema scope - enumeration item
104
+ --"remark_schema.remark_enumeration_item" universal scope - enumeration item
105
+ --"remark_schema.remark_entity" schema scope - entity
106
+ --"remark_schema.remark_entity" universal scope - entity
107
+ --"remark_schema.remark_entity.remark_attribute" entity scope - entity attribute
108
+ --"remark_schema.remark_entity.remark_attribute" schema scope - entity attribute
109
+ --"remark_schema.remark_entity.remark_attribute" universal scope - entity attribute
110
+ --"remark_schema.remark_entity.remark_derived_attribute" entity scope - entity derived attribute
111
+ --"remark_schema.remark_entity.remark_derived_attribute" schema scope - entity derived attribute
112
+ --"remark_schema.remark_entity.remark_derived_attribute" universal scope - entity derived attribute
113
+ --"remark_schema.remark_entity.remark_inverse_attribute" entity scope - entity inverse attribute
114
+ --"remark_schema.remark_entity.remark_inverse_attribute" schema scope - entity inverse attribute
115
+ --"remark_schema.remark_entity.remark_inverse_attribute" universal scope - entity inverse attribute
116
+ --"remark_schema.remark_entity.remark_unique" entity scope - entity unique
117
+ --"remark_schema.remark_entity.remark_unique" schema scope - entity unique
118
+ --"remark_schema.remark_entity.remark_unique" universal scope - entity unique
119
+ --"remark_schema.remark_entity.remark_where" entity scope - entity where
120
+ --"remark_schema.remark_entity.remark_where" schema scope - entity where
121
+ --"remark_schema.remark_entity.remark_where" universal scope - entity where
122
+ --"remark_schema.remark_subtype_constraint" schema scope - subtype constraint
123
+ --"remark_schema.remark_subtype_constraint" universal scope - subtype constraint
124
+ --"remark_schema.remark_function" schema scope - function
125
+ --"remark_schema.remark_function" universal scope - function
126
+ --"remark_schema.remark_function.remark_parameter" function scope - function parameter
127
+ --"remark_schema.remark_function.remark_parameter" schema scope - function parameter
128
+ --"remark_schema.remark_function.remark_parameter" universal scope - function parameter
129
+ --"remark_schema.remark_function.remark_type" function scope - function type
130
+ --"remark_schema.remark_function.remark_type" schema scope - function type
131
+ --"remark_schema.remark_function.remark_type" universal scope - function type
132
+ --"remark_schema.remark_function.remark_enumeration_item" function scope - function enumeration item
133
+ --"remark_schema.remark_function.remark_enumeration_item" schema scope - function enumeration item
134
+ --"remark_schema.remark_function.remark_enumeration_item" universal scope - function enumeration item
135
+ --"remark_schema.remark_function.remark_constant" function scope - function constant
136
+ --"remark_schema.remark_function.remark_constant" schema scope - function constant
137
+ --"remark_schema.remark_function.remark_constant" universal scope - function constant
138
+ --"remark_schema.remark_function.remark_variable" function scope - function variable
139
+ --"remark_schema.remark_function.remark_variable" schema scope - function variable
140
+ --"remark_schema.remark_function.remark_variable" universal scope - function variable
141
+ --"remark_schema.remark_procedure" schema scope - procedure
142
+ --"remark_schema.remark_procedure" universal scope - procedure
143
+ --"remark_schema.remark_procedure.remark_parameter" procedure scope - procedure parameter
144
+ --"remark_schema.remark_procedure.remark_parameter" schema scope - procedure parameter
145
+ --"remark_schema.remark_procedure.remark_parameter" universal scope - procedure parameter
146
+ --"remark_schema.remark_procedure.remark_type" procedure scope - procedure type
147
+ --"remark_schema.remark_procedure.remark_type" schema scope - procedure type
148
+ --"remark_schema.remark_procedure.remark_type" universal scope - procedure type
149
+ --"remark_schema.remark_procedure.remark_enumeration_item" procedure scope - procedure enumeration item
150
+ --"remark_schema.remark_procedure.remark_enumeration_item" schema scope - procedure enumeration item
151
+ --"remark_schema.remark_procedure.remark_enumeration_item" universal scope - procedure enumeration item
152
+ --"remark_schema.remark_procedure.remark_constant" procedure scope - procedure constant
153
+ --"remark_schema.remark_procedure.remark_constant" schema scope - procedure constant
154
+ --"remark_schema.remark_procedure.remark_constant" universal scope - procedure constant
155
+ --"remark_schema.remark_procedure.remark_variable" procedure scope - procedure variable
156
+ --"remark_schema.remark_procedure.remark_variable" schema scope - procedure variable
157
+ --"remark_schema.remark_procedure.remark_variable" universal scope - procedure variable
158
+ --"remark_schema.remark_rule" schema scope - rule
159
+ --"remark_schema.remark_rule" universal scope - rule
160
+ --"remark_schema.remark_rule.remark_type" rule scope - rule type
161
+ --"remark_schema.remark_rule.remark_type" schema scope - rule type
162
+ --"remark_schema.remark_rule.remark_type" universal scope - rule type
163
+ --"remark_schema.remark_rule.remark_enumeration_item" rule scope - rule enumeration item
164
+ --"remark_schema.remark_rule.remark_enumeration_item" schema scope - rule enumeration item
165
+ --"remark_schema.remark_rule.remark_enumeration_item" universal scope - rule enumeration item
166
+ --"remark_schema.remark_rule.remark_constant" rule scope - rule constant
167
+ --"remark_schema.remark_rule.remark_constant" schema scope - rule constant
168
+ --"remark_schema.remark_rule.remark_constant" universal scope - rule constant
169
+ --"remark_schema.remark_rule.remark_variable" rule scope - rule variable
170
+ --"remark_schema.remark_rule.remark_variable" schema scope - rule variable
171
+ --"remark_schema.remark_rule.remark_variable" universal scope - rule variable
172
+ --"remark_schema.remark_rule.remark_where" rule scope - rule where
173
+ --"remark_schema.remark_rule.remark_where" schema scope - rule where
174
+ --"remark_schema.remark_rule.remark_where" universal scope - rule where
@@ -1,300 +1,310 @@
1
- SCHEMA syntaxSchema 'version';
2
-
3
- -- interfaces
4
- USE FROM useInterface;
5
- USE FROM useItemInterface (test);
6
- USE FROM useItemRenameInterface (test AS test2);
7
- REFERENCE FROM referenceInterface;
8
- REFERENCE FROM referenceItemInterface (test);
9
- REFERENCE FROM referenceItemRenameInterface (test AS test2);
10
-
11
- CONSTANT
12
- -- literals
13
- binaryExpression : STRING := %011110000111100001111000;
14
- integerExpression : STRING := 999;
15
- trueLogicalExpression : STRING := TRUE;
16
- falseLogicalExpression : STRING := FALSE;
17
- unknownLogicalExpression : STRING := UNKNOWN;
18
- realExpression : STRING := 999.999;
19
- simpleStringExpression : STRING := 'xxx';
20
- encodedStringExpression : STRING := "000000780000007800000078";
21
-
22
- -- constants
23
- constEExpression : STRING := CONST_E;
24
- indeterminateExpression : STRING := ?;
25
- piExpression : STRING := PI;
26
- selfExpression : STRING := SELF;
27
-
28
- -- functions
29
- absExpression : STRING := ABS(TRUE);
30
- acosExpression : STRING := ACOS(TRUE);
31
- asinExpression : STRING := ASIN(TRUE);
32
- atanExpression : STRING := ATAN(TRUE);
33
- blengthExpression : STRING := BLENGTH(TRUE);
34
- cosExpression : STRING := COS(TRUE);
35
- existsExpression : STRING := EXISTS(TRUE);
36
- expExpression : STRING := EXP(TRUE);
37
- formatExpression : STRING := FORMAT(TRUE);
38
- hiboundExpression : STRING := HIBOUND(TRUE);
39
- hiindexExpression : STRING := HIINDEX(TRUE);
40
- lengthExpression : STRING := LENGTH(TRUE);
41
- loboundExpression : STRING := LOBOUND(TRUE);
42
- loindexExpression : STRING := LOINDEX(TRUE);
43
- logExpression : STRING := LOG(TRUE);
44
- log2Expression : STRING := LOG2(TRUE);
45
- log10Expression : STRING := LOG10(TRUE);
46
- nvlExpression : STRING := NVL(TRUE);
47
- oddExpression : STRING := ODD(TRUE);
48
- rolesofExpression : STRING := ROLESOF(TRUE);
49
- sinExpression : STRING := SIN(TRUE);
50
- sizeofExpression : STRING := SIZEOF(TRUE);
51
- sqrtExpression : STRING := SQRT(TRUE);
52
- tanExpression : STRING := TAN(TRUE);
53
- typeofExpression : STRING := TYPEOF(TRUE);
54
- usedinExpression : STRING := USEDIN(TRUE);
55
- valueExpression : STRING := VALUE(TRUE);
56
- valueInExpression : STRING := VALUE_IN(TRUE);
57
- valueUniqueExpression : STRING := VALUE_UNIQUE(TRUE);
58
-
59
- -- operations
60
- unaryPlusExpression : STRING := +4;
61
- unaryMinusExpression : STRING := -4;
62
- additionExpression : STRING := 4 + 2;
63
- subtractionExpression : STRING := 4 - 2;
64
- multiplicationExpression : STRING := 4 * 2;
65
- realDivisionExpression : STRING := 4 / 2;
66
- integerDivisionExpression : STRING := 4 DIV 2;
67
- moduloExpression : STRING := 4 MOD 2;
68
- exponentiationExpression : STRING := 4 ** 2;
69
- additionAdditionExpression : STRING := 4 + 2 + 1;
70
- subtractionSubtractionExpression : STRING := 4 - 2 - 1;
71
- additionSubtractionExpression : STRING := 4 + 2 - 1;
72
- subtractionAdditionExpression : STRING := 4 - 2 + 1;
73
- additionMultiplicationExpression : STRING := 8 + 4 * 2;
74
- multiplicationAdditionExpression : STRING := 8 * 4 + 2;
75
- parenthesisAdditionMultiplicationExpression : STRING := (8 + 4) * 2;
76
- multiplicationParenthesisAdditionExpression : STRING := 8 * (4 + 2);
77
- equalExpression : STRING := 4 = 2;
78
- notEqualExpression : STRING := 4 <> 2;
79
- ltExpression : STRING := 4 < 2;
80
- gtExpression : STRING := 4 > 2;
81
- lteExpression : STRING := 4 <= 2;
82
- gteExpression : STRING := 4 >= 2;
83
- orExpression : STRING := TRUE OR FALSE;
84
- andExpression : STRING := TRUE AND FALSE;
85
- orOrExpression : STRING := TRUE OR FALSE OR TRUE;
86
- andAndExpression : STRING := TRUE AND FALSE AND TRUE;
87
- orAndExpression : STRING := TRUE OR FALSE AND TRUE;
88
- andOrExpression : STRING := TRUE AND FALSE OR TRUE;
89
- parenthesisOrAndExpression : STRING := (TRUE OR FALSE) AND TRUE;
90
- andParenthesisOrExpression : STRING := TRUE AND (FALSE OR TRUE);
91
- combineExpression : STRING := test || test;
92
- inExpression : STRING := TRUE IN [TRUE];
93
- likeExpression : STRING := 'xxx' LIKE 'xxx';
94
-
95
- -- aggregate initializers
96
- aggregateInitializerExpression : STRING := ['xxx'];
97
- repeatedAggregateInitializerExpression : STRING := ['xxx' : 2];
98
- complexAggregateInitializerExpression : STRING := [4 + 2];
99
- complexRepeatedAggregateInitializerExpression : STRING := [4 + 2 : 4 + 2];
100
-
101
- -- entity constructors
102
- entityConstructorExpression : STRING := explicitAttributeEntity(TRUE);
103
-
104
- -- enumeration references
105
- enumerationReferenceExpression : STRING := test;
106
- attributeEnumerationReferenceExpression : STRING := test.test;
107
-
108
- -- intervals
109
- ltLtIntervalExpression : STRING := {1 < 5 < 9};
110
- lteLtIntervalExpression : STRING := {1 <= 5 < 9};
111
- ltLteIntervalExpression : STRING := {1 < 5 <= 9};
112
- lteLteIntervalExpression : STRING := {1 <= 5 <= 9};
113
-
114
- -- queries
115
- queryExpression : STRING := QUERY(test <* test2 | TRUE);
116
- END_CONSTANT;
117
-
118
- -- types
119
- TYPE integerType = INTEGER; END_TYPE;
120
- TYPE integerWhereType = INTEGER; WHERE TRUE; END_TYPE;
121
- TYPE integerWhereLabelType = INTEGER; WHERE WR1: TRUE; END_TYPE;
122
-
123
- -- simple types
124
- TYPE binaryType = BINARY; END_TYPE;
125
- TYPE binaryWidthType = BINARY (3); END_TYPE;
126
- TYPE binaryWidthFixedType = BINARY (3) FIXED; END_TYPE;
127
- TYPE booleanType = BOOLEAN; END_TYPE;
128
- TYPE integerType = INTEGER; END_TYPE;
129
- TYPE integerWhereType = INTEGER; WHERE TRUE; END_TYPE;
130
- TYPE integerWhereLabelType = INTEGER; WHERE WR1: TRUE; END_TYPE;
131
- TYPE logicalType = LOGICAL; END_TYPE;
132
- TYPE numberType = NUMBER; END_TYPE;
133
- TYPE realType = REAL; END_TYPE;
134
- TYPE realPrecisionType = REAL (3); END_TYPE;
135
- TYPE stringType = STRING; END_TYPE;
136
- TYPE stringWidthType = STRING (3); END_TYPE;
137
- TYPE stringWidthFixedType = STRING (3) FIXED; END_TYPE;
138
-
139
- -- aggregation types
140
- TYPE arrayType = ARRAY [1:9] OF STRING; END_TYPE;
141
- TYPE arrayOptionalType = ARRAY [1:9] OF OPTIONAL STRING; END_TYPE;
142
- TYPE arrayUniqueType = ARRAY [1:9] OF UNIQUE STRING; END_TYPE;
143
- TYPE arrayOptionalUniqueType = ARRAY [1:9] OF OPTIONAL UNIQUE STRING; END_TYPE;
144
- TYPE bagType = BAG OF STRING; END_TYPE;
145
- TYPE bagBoundType = BAG [1:9] OF STRING; END_TYPE;
146
- TYPE listType = LIST OF STRING; END_TYPE;
147
- TYPE listBoundType = LIST [1:9] OF STRING; END_TYPE;
148
- TYPE listUniqueType = LIST OF UNIQUE STRING; END_TYPE;
149
- TYPE listBoundUniqueType = LIST [1:9] OF UNIQUE STRING; END_TYPE;
150
- TYPE setType = SET OF STRING; END_TYPE;
151
- TYPE setBoundType = SET [1:9] OF STRING; END_TYPE;
152
-
153
- -- constructed types
154
- TYPE selectType = SELECT; END_TYPE;
155
- TYPE selectExtensibleType = EXTENSIBLE SELECT; END_TYPE;
156
- TYPE selectExtensibleGenericEntityType = EXTENSIBLE GENERIC_ENTITY SELECT; END_TYPE;
157
- TYPE selectListType = SELECT (test); END_TYPE;
158
- TYPE selectExtensionTypeRefType = SELECT BASED_ON selectType; END_TYPE;
159
- TYPE selectExtensionTypeRefListType = SELECT BASED_ON selectType WITH (test); END_TYPE;
160
- TYPE enumerationType = ENUMERATION; END_TYPE;
161
- TYPE enumerationExtensibleType = EXTENSIBLE ENUMERATION; END_TYPE;
162
- TYPE enumerationListType = ENUMERATION OF (test); END_TYPE;
163
- TYPE enumerationExtensionTypeRefType = ENUMERATION BASED_ON enumerationType; END_TYPE;
164
- TYPE enumerationExtensionTypeRefListType = ENUMERATION BASED_ON enumerationType WITH (test); END_TYPE;
165
-
166
- -- entities
167
- ENTITY emptyEntity; END_ENTITY;
168
- ENTITY abstractEntity ABSTRACT; END_ENTITY;
169
- ENTITY abstractSupertypeEntity ABSTRACT SUPERTYPE; END_ENTITY;
170
- ENTITY abstractSupertypeConstraintEntity ABSTRACT SUPERTYPE OF (emptyEntity); END_ENTITY;
171
- ENTITY supertypeConstraintEntity SUPERTYPE OF (emptyEntity); END_ENTITY;
172
- ENTITY subtypeEntity SUBTYPE OF (emptyEntity); END_ENTITY;
173
- ENTITY supertypeConstraintSubtypeEntity SUPERTYPE OF (emptyEntity) SUBTYPE OF (emptyEntity); END_ENTITY;
174
- ENTITY explicitAttributeEntity; test : BOOLEAN; END_ENTITY;
175
- ENTITY explicitAttributeOptionalEntity; test : OPTIONAL BOOLEAN; END_ENTITY;
176
- ENTITY explicitAttributeMultipleEntity; test : BOOLEAN; test2 : BOOLEAN; END_ENTITY;
177
- ENTITY explicitAttributeMultipleShorthandEntity; test, test2 : BOOLEAN; END_ENTITY;
178
- ENTITY explicitAttributeRedeclaredEntity; SELF\explicitAttributeEntity.test: BOOLEAN; END_ENTITY;
179
- ENTITY explicitAttributeRedeclaredRenamedEntity; SELF\explicitAttributeEntity.test RENAMED test2: BOOLEAN; END_ENTITY;
180
- ENTITY derivedAttributeEntity; DERIVE test : BOOLEAN := TRUE; END_ENTITY;
181
- ENTITY derivedAttributeRedeclaredEntity; DERIVE SELF\explicitAttributeEntity.test : BOOLEAN := TRUE; END_ENTITY;
182
- ENTITY derivedAttributeRedeclaredRenamedEntity; DERIVE SELF\explicitAttributeEntity.test RENAMED test2 : BOOLEAN := TRUE; END_ENTITY;
183
- ENTITY inverseAttributeEntity; INVERSE test : explicitAttributeEntity FOR test; END_ENTITY;
184
- ENTITY inverseAttributeEntityEntity; INVERSE test : explicitAttributeEntity FOR explicitAttributeEntity.test; END_ENTITY;
185
- ENTITY inverseAttributeSetEntity; INVERSE test : SET OF explicitAttributeEntity FOR test; END_ENTITY;
186
- ENTITY inverseAttributeSetBoundEntity; INVERSE test : SET [1:9] OF explicitAttributeEntity FOR test; END_ENTITY;
187
- ENTITY inverseAttributeBagEntity; INVERSE test : BAG OF explicitAttributeEntity FOR test; END_ENTITY;
188
- ENTITY inverseAttributeBagBoundEntity; INVERSE test : BAG [1:9] OF explicitAttributeEntity FOR test; END_ENTITY;
189
- ENTITY inverseAttributeRedeclaredEntity; INVERSE SELF\explicitAttributeEntity.test : explicitAttributeEntity FOR test; END_ENTITY;
190
- ENTITY inverseAttributeRedeclaredRenamedEntity; INVERSE SELF\explicitAttributeEntity.test RENAMED test2 : explicitAttributeEntity FOR test; END_ENTITY;
191
- ENTITY uniqueEntity; UNIQUE test; END_ENTITY;
192
- ENTITY uniqueLabelEntity; UNIQUE UR1: test; END_ENTITY;
193
- ENTITY uniqueQualifiedEntity; UNIQUE SELF\explicitAttributeEntity.test; END_ENTITY;
194
- ENTITY uniqueLabelQualifiedEntity; UNIQUE UR1: SELF\explicitAttributeEntity.test; END_ENTITY;
195
- ENTITY whereEntity; WHERE TRUE; END_ENTITY;
196
- ENTITY whereLabelEntity; WHERE WR1: TRUE; END_ENTITY;
197
-
198
- -- subtype constraints
199
- SUBTYPE_CONSTRAINT emptySubtypeConstraint FOR emptyEntity; END_SUBTYPE_CONSTRAINT;
200
- SUBTYPE_CONSTRAINT abstractSupertypeSubtypeConstraint FOR emptyEntity; ABSTRACT SUPERTYPE; END_SUBTYPE_CONSTRAINT;
201
- SUBTYPE_CONSTRAINT totalOverSubtypeConstraint FOR emptyEntity; TOTAL_OVER (a); END_SUBTYPE_CONSTRAINT;
202
- SUBTYPE_CONSTRAINT supertypeExpressionSubtypeConstraint FOR emptyEntity; a; END_SUBTYPE_CONSTRAINT;
203
- SUBTYPE_CONSTRAINT supertypeExpressionAndorSubtypeConstraint FOR emptyEntity; a ANDOR b; END_SUBTYPE_CONSTRAINT;
204
- SUBTYPE_CONSTRAINT supertypeExpressionAndSubtypeConstraint FOR emptyEntity; a AND b; END_SUBTYPE_CONSTRAINT;
205
- SUBTYPE_CONSTRAINT supertypeExpressionAndorAndSubtypeConstraint FOR emptyEntity; a ANDOR b AND c; END_SUBTYPE_CONSTRAINT;
206
- SUBTYPE_CONSTRAINT supertypeExpressionAndAndorSubtypeConstraint FOR emptyEntity; a AND b ANDOR c; END_SUBTYPE_CONSTRAINT;
207
- SUBTYPE_CONSTRAINT supertypeExpressionParenthesisAndorAndSubtypeConstraint FOR emptyEntity; (a ANDOR b) AND c; END_SUBTYPE_CONSTRAINT;
208
- SUBTYPE_CONSTRAINT supertypeExpressionAndParenthesisAndorSubtypeConstraint FOR emptyEntity; a AND (b ANDOR c); END_SUBTYPE_CONSTRAINT;
209
- SUBTYPE_CONSTRAINT supertypeExpressionOneofSubtypeConstraint FOR emptyEntity; ONEOF(a, b); END_SUBTYPE_CONSTRAINT;
210
- SUBTYPE_CONSTRAINT supertypeExpressionAndOneofSubtypeConstraint FOR emptyEntity; a AND ONEOF(b, c); END_SUBTYPE_CONSTRAINT;
211
- SUBTYPE_CONSTRAINT supertypeExpressionAndorOneofSubtypeConstraint FOR emptyEntity; a ANDOR ONEOF(b, c); END_SUBTYPE_CONSTRAINT;
212
- SUBTYPE_CONSTRAINT supertypeExpressionOneofAndSubtypeConstraint FOR emptyEntity; ONEOF(a, b) AND c; END_SUBTYPE_CONSTRAINT;
213
- SUBTYPE_CONSTRAINT supertypeExpressionOneofAndorSubtypeConstraint FOR emptyEntity; ONEOF(a, b) ANDOR c; END_SUBTYPE_CONSTRAINT;
214
- SUBTYPE_CONSTRAINT supertypeExpressionOneofAndOneofSubtypeConstraint FOR emptyEntity; ONEOF(a, b) AND ONEOF(c, d); END_SUBTYPE_CONSTRAINT;
215
- SUBTYPE_CONSTRAINT supertypeExpressionOneofAndorOneofSubtypeConstraint FOR emptyEntity; ONEOF(a, b) ANDOR ONEOF(c, d); END_SUBTYPE_CONSTRAINT;
216
-
217
- -- functions
218
- FUNCTION emptyFunction : BOOLEAN; ; END_FUNCTION;
219
- FUNCTION parameterFunction (test : BOOLEAN) : BOOLEAN; ; END_FUNCTION;
220
- FUNCTION multipleParameterFunction (test : BOOLEAN; test2 : BOOLEAN) : BOOLEAN; ; END_FUNCTION;
221
- FUNCTION multipleShorthandParameterFunction (test, test2 : BOOLEAN) : BOOLEAN; ; END_FUNCTION;
222
- FUNCTION typeFunction : BOOLEAN; TYPE integerType = INTEGER; END_TYPE; ; END_FUNCTION;
223
- FUNCTION constantFunction : BOOLEAN; CONSTANT test : STRING := 'xxx'; END_CONSTANT; ; END_FUNCTION;
224
- FUNCTION multipleConstantFunction : BOOLEAN; CONSTANT test : STRING := 'xxx'; test2 : STRING := 'xxx'; END_CONSTANT; ; END_FUNCTION;
225
- FUNCTION localFunction : BOOLEAN; LOCAL test : STRING; END_LOCAL; ; END_FUNCTION;
226
- FUNCTION multipleLocalFunction : BOOLEAN; LOCAL test : STRING; test2 : STRING; END_LOCAL; ; END_FUNCTION;
227
- FUNCTION multipleShorthandLocalFunction : BOOLEAN; LOCAL test, test2 : STRING; END_LOCAL; ; END_FUNCTION;
228
- FUNCTION localExpressionFunction : BOOLEAN; LOCAL test : STRING := 'xxx'; END_LOCAL; ; END_FUNCTION;
229
- FUNCTION multipleLocalExpressionFunction : BOOLEAN; LOCAL test : STRING := 'xxx'; test2 : STRING := 'xxx'; END_LOCAL; ; END_FUNCTION;
230
- FUNCTION multipleShorthandLocalExpressionFunction : BOOLEAN; LOCAL test, test2 : STRING := 'xxx'; END_LOCAL; ; END_FUNCTION;
231
-
232
- -- procedures
233
- PROCEDURE emptyProcedure; END_PROCEDURE;
234
- PROCEDURE parameterProcedure (test : BOOLEAN); END_PROCEDURE;
235
- PROCEDURE multipleParameterProcedure (test : BOOLEAN; test2 : BOOLEAN); END_PROCEDURE;
236
- PROCEDURE multipleShorthandParameterProcedure (test, test2 : BOOLEAN); END_PROCEDURE;
237
- PROCEDURE variableParameterProcedure (VAR test : BOOLEAN); END_PROCEDURE;
238
- PROCEDURE multipleVariableParameterProcedure (VAR test : BOOLEAN; test2 : BOOLEAN); END_PROCEDURE;
239
- PROCEDURE multipleVariableParameter2Procedure (test : BOOLEAN; VAR test2 : BOOLEAN); END_PROCEDURE;
240
- PROCEDURE multipleShorthandVariableParameterProcedure (VAR test, test2 : BOOLEAN); END_PROCEDURE;
241
- PROCEDURE typeProcedure; TYPE integerType = INTEGER; END_TYPE; END_PROCEDURE;
242
- PROCEDURE constantProcedure; CONSTANT test : STRING := 'xxx'; END_CONSTANT; END_PROCEDURE;
243
- PROCEDURE multipleConstantProcedure; CONSTANT test : STRING := 'xxx'; test2 : STRING := 'xxx'; END_CONSTANT; END_PROCEDURE;
244
- PROCEDURE localProcedure; LOCAL test : STRING; END_LOCAL; END_PROCEDURE;
245
- PROCEDURE multipleLocalProcedure; LOCAL test : STRING; test2 : STRING; END_LOCAL; END_PROCEDURE;
246
- PROCEDURE multipleShorthandLocalProcedure; LOCAL test, test2 : STRING; END_LOCAL; END_PROCEDURE;
247
- PROCEDURE localExpressionProcedure; LOCAL test : STRING := 'xxx'; END_LOCAL; END_PROCEDURE;
248
- PROCEDURE multipleLocalExpressionProcedure; LOCAL test : STRING := 'xxx'; test2 : STRING := 'xxx'; END_LOCAL; END_PROCEDURE;
249
- PROCEDURE multipleShorthandLocalExpressionProcedure; LOCAL test, test2 : STRING := 'xxx'; END_LOCAL; END_PROCEDURE;
250
-
251
- -- rules
252
- RULE emptyRule FOR (emptyEntity); WHERE TRUE; END_RULE;
253
- RULE typeRule FOR (emptyEntity); TYPE integerType = INTEGER; END_TYPE; WHERE TRUE; END_RULE;
254
- RULE constantRule FOR (emptyEntity); CONSTANT test : STRING := 'xxx'; END_CONSTANT; WHERE TRUE; END_RULE;
255
- RULE multipleConstantRule FOR (emptyEntity); CONSTANT test : STRING := 'xxx'; test2 : STRING := 'xxx'; END_CONSTANT; WHERE TRUE; END_RULE;
256
- RULE localRule FOR (emptyEntity); LOCAL test : STRING; END_LOCAL; WHERE TRUE; END_RULE;
257
- RULE multipleLocalRule FOR (emptyEntity); LOCAL test : STRING; test2 : STRING; END_LOCAL; WHERE TRUE; END_RULE;
258
- RULE multipleShorthandLocalRule FOR (emptyEntity); LOCAL test, test2 : STRING; END_LOCAL; WHERE TRUE; END_RULE;
259
- RULE localExpressionRule FOR (emptyEntity); LOCAL test : STRING := 'xxx'; END_LOCAL; WHERE TRUE; END_RULE;
260
- RULE multipleLocalExpressionRule FOR (emptyEntity); LOCAL test : STRING := 'xxx'; test2 : STRING := 'xxx'; END_LOCAL; WHERE TRUE; END_RULE;
261
- RULE multipleShorthandLocalExpressionRule FOR (emptyEntity); LOCAL test, test2 : STRING := 'xxx'; END_LOCAL; WHERE TRUE; END_RULE;
262
-
263
- -- statements
264
- FUNCTION aliasStatement : BOOLEAN; ALIAS test FOR test; ; END_ALIAS; END_FUNCTION;
265
- FUNCTION aliasAttributeStatement : BOOLEAN; ALIAS test FOR test.test; ; END_ALIAS; END_FUNCTION;
266
- FUNCTION aliasGroupStatement : BOOLEAN; ALIAS test FOR test\test; ; END_ALIAS; END_FUNCTION;
267
- FUNCTION aliasIndexStatement : BOOLEAN; ALIAS test FOR test[1]; ; END_ALIAS; END_FUNCTION;
268
- FUNCTION aliasIndex2Statement : BOOLEAN; ALIAS test FOR test[1:9]; ; END_ALIAS; END_FUNCTION;
269
- FUNCTION assignmentStatement : BOOLEAN; test := TRUE; END_FUNCTION;
270
- FUNCTION assignmentAttributeStatement : BOOLEAN; test.test := TRUE; END_FUNCTION;
271
- FUNCTION assignmentGroupStatement : BOOLEAN; test\test := TRUE; END_FUNCTION;
272
- FUNCTION assignmentIndexStatement : BOOLEAN; test[1] := TRUE; END_FUNCTION;
273
- FUNCTION assignmentIndex2Statement : BOOLEAN; test[1:9] := TRUE; END_FUNCTION;
274
- FUNCTION caseStatement : BOOLEAN; CASE test OF TRUE : ; END_CASE; END_FUNCTION;
275
- FUNCTION caseMultipleStatement : BOOLEAN; CASE test OF TRUE : ; TRUE : ; END_CASE; END_FUNCTION;
276
- FUNCTION caseMultipleShorthandStatement : BOOLEAN; CASE test OF TRUE, TRUE : ; END_CASE; END_FUNCTION;
277
- FUNCTION caseOtherwiseStatement : BOOLEAN; CASE test OF TRUE : ; OTHERWISE : ; END_CASE; END_FUNCTION;
278
- FUNCTION compoundStatement : BOOLEAN; BEGIN ; END; END_FUNCTION;
279
- FUNCTION escapeStatement : BOOLEAN; ESCAPE; END_FUNCTION;
280
- FUNCTION ifStatement : BOOLEAN; IF TRUE THEN ; END_IF; END_FUNCTION;
281
- FUNCTION if2Statement : BOOLEAN; IF TRUE THEN ; ; END_IF; END_FUNCTION;
282
- FUNCTION ifElseStatement : BOOLEAN; IF TRUE THEN ; ELSE ; END_IF; END_FUNCTION;
283
- FUNCTION if2ElseStatement : BOOLEAN; IF TRUE THEN ; ; ELSE ; END_IF; END_FUNCTION;
284
- FUNCTION ifElse2Statement : BOOLEAN; IF TRUE THEN ; ELSE ; ; END_IF; END_FUNCTION;
285
- FUNCTION if2Else2Statement : BOOLEAN; IF TRUE THEN ; ; ELSE ; ; END_IF; END_FUNCTION;
286
- FUNCTION nullStatement : BOOLEAN; ; END_FUNCTION;
287
- FUNCTION procedureCallStatement : BOOLEAN; emptyProcedure; END_FUNCTION;
288
- FUNCTION procedureCallParameterStatement : BOOLEAN; emptyProcedure(true); END_FUNCTION;
289
- FUNCTION procedureCallParameter2Statement : BOOLEAN; emptyProcedure(true, true); END_FUNCTION;
290
- FUNCTION procedureCallInsertStatement : BOOLEAN; INSERT; END_FUNCTION;
291
- FUNCTION procedureCallRemoveStatement : BOOLEAN; REMOVE; END_FUNCTION;
292
- FUNCTION repeatStatement : BOOLEAN; REPEAT; ; END_REPEAT; END_FUNCTION;
293
- FUNCTION repeatVariableStatement : BOOLEAN; REPEAT test := 1 TO 9; ; END_REPEAT; END_FUNCTION;
294
- FUNCTION repeatVariableIncrementStatement : BOOLEAN; REPEAT test := 1 TO 9 BY 2; ; END_REPEAT; END_FUNCTION;
295
- FUNCTION repeatWhileStatement : BOOLEAN; REPEAT WHILE TRUE; ; END_REPEAT; END_FUNCTION;
296
- FUNCTION repeatUntilStatement : BOOLEAN; REPEAT UNTIL TRUE; ; END_REPEAT; END_FUNCTION;
297
- FUNCTION returnStatement : BOOLEAN; RETURN (TRUE); END_FUNCTION;
298
- FUNCTION skipStatement : BOOLEAN; SKIP; END_FUNCTION;
299
-
300
- END_SCHEMA;
1
+ SCHEMA syntax_schema 'version';
2
+
3
+ -- interfaces
4
+ USE FROM contract_schema;
5
+ USE FROM contract_schema (contract);
6
+ USE FROM contract_schema (contract AS contract2);
7
+ REFERENCE FROM contract_schema;
8
+ REFERENCE FROM contract_schema (contract);
9
+ REFERENCE FROM contract_schema (contract AS contract2);
10
+
11
+ -- constants
12
+ CONSTANT empty_constant : BOOLEAN := TRUE; END_CONSTANT;
13
+
14
+ -- types
15
+ TYPE empty_type = BOOLEAN; END_TYPE;
16
+ TYPE where_type = BOOLEAN; WHERE TRUE; END_TYPE;
17
+ TYPE where_label_type = BOOLEAN; WHERE WR1 : TRUE; END_TYPE;
18
+
19
+ -- entities
20
+ ENTITY empty_entity; END_ENTITY;
21
+ ENTITY abstract_entity ABSTRACT; END_ENTITY;
22
+ ENTITY abstract_supertype_entity ABSTRACT SUPERTYPE; END_ENTITY;
23
+ ENTITY abstract_supertype_constraint_entity ABSTRACT SUPERTYPE OF (empty_entity); END_ENTITY;
24
+ ENTITY supertype_constraint_entity SUPERTYPE OF (empty_entity); END_ENTITY;
25
+ ENTITY subtype_entity SUBTYPE OF (empty_entity); END_ENTITY;
26
+ ENTITY supertype_constraint_subtype_entity SUPERTYPE OF (empty_entity) SUBTYPE OF (empty_entity); END_ENTITY;
27
+ ENTITY attribute_entity; test : BOOLEAN; END_ENTITY;
28
+ ENTITY attribute_optional_entity; test : OPTIONAL BOOLEAN; END_ENTITY;
29
+ ENTITY attribute_multiple_entity; test : BOOLEAN; test2 : BOOLEAN; END_ENTITY;
30
+ ENTITY attribute_multiple_shorthand_entity; test, test2 : BOOLEAN; END_ENTITY;
31
+ ENTITY attribute_redeclared_entity; SELF\attribute_entity.test : BOOLEAN; END_ENTITY;
32
+ ENTITY attribute_redeclared_renamed_entity; SELF\attribute_entity.test RENAMED test2 : BOOLEAN; END_ENTITY;
33
+ ENTITY derived_attribute_entity; DERIVE test : BOOLEAN := TRUE; END_ENTITY;
34
+ ENTITY derived_attribute_redeclared_entity; DERIVE SELF\attribute_entity.test : BOOLEAN := TRUE; END_ENTITY;
35
+ ENTITY derived_attribute_redeclared_renamed_entity; DERIVE SELF\attribute_entity.test RENAMED test2 : BOOLEAN := TRUE; END_ENTITY;
36
+ ENTITY inverse_attribute_entity; INVERSE test : attribute_entity FOR test; END_ENTITY;
37
+ ENTITY inverse_attribute_entity_entity; INVERSE test : attribute_entity FOR attribute_entity.test; END_ENTITY;
38
+ ENTITY inverse_attribute_set_entity; INVERSE test : SET OF attribute_entity FOR test; END_ENTITY;
39
+ ENTITY inverse_attribute_set_bound_entity; INVERSE test : SET [1:9] OF attribute_entity FOR test; END_ENTITY;
40
+ ENTITY inverse_attribute_bag_entity; INVERSE test : BAG OF attribute_entity FOR test; END_ENTITY;
41
+ ENTITY inverse_attribute_bag_bound_entity; INVERSE test : BAG [1:9] OF attribute_entity FOR test; END_ENTITY;
42
+ ENTITY inverse_attribute_redeclared_entity; INVERSE SELF\attribute_entity.test : attribute_entity FOR test; END_ENTITY;
43
+ ENTITY inverse_attribute_redeclared_renamed_entity; INVERSE SELF\attribute_entity.test RENAMED test2 : attribute_entity FOR test; END_ENTITY;
44
+ ENTITY unique_entity; test : BOOLEAN; UNIQUE test; END_ENTITY;
45
+ ENTITY unique_label_entity; test : BOOLEAN; UNIQUE UR1 : test; END_ENTITY;
46
+ ENTITY unique_qualified_entity; UNIQUE SELF\attribute_entity.test; END_ENTITY;
47
+ ENTITY unique_label_qualified_entity; UNIQUE UR1 : SELF\attribute_entity.test; END_ENTITY;
48
+ ENTITY where_entity; WHERE TRUE; END_ENTITY;
49
+ ENTITY where_label_entity; WHERE WR1 : TRUE; END_ENTITY;
50
+
51
+ -- subtype constraints
52
+ SUBTYPE_CONSTRAINT empty_subtype_constraint FOR empty_entity; END_SUBTYPE_CONSTRAINT;
53
+ SUBTYPE_CONSTRAINT abstract_supertype_subtype_constraint FOR empty_entity; ABSTRACT SUPERTYPE; END_SUBTYPE_CONSTRAINT;
54
+ SUBTYPE_CONSTRAINT total_over_subtype_constraint FOR empty_entity; TOTAL_OVER(a); END_SUBTYPE_CONSTRAINT;
55
+ SUBTYPE_CONSTRAINT supertype_expression_subtype_constraint FOR empty_entity; a; END_SUBTYPE_CONSTRAINT;
56
+ SUBTYPE_CONSTRAINT supertype_expression_andor_subtype_constraint FOR empty_entity; a ANDOR b; END_SUBTYPE_CONSTRAINT;
57
+ SUBTYPE_CONSTRAINT supertype_expression_and_subtype_constraint FOR empty_entity; a AND b; END_SUBTYPE_CONSTRAINT;
58
+ SUBTYPE_CONSTRAINT supertype_expression_andor_and_subtype_constraint FOR empty_entity; a ANDOR b AND c; END_SUBTYPE_CONSTRAINT;
59
+ SUBTYPE_CONSTRAINT supertype_expression_and_andor_subtype_constraint FOR empty_entity; a AND b ANDOR c; END_SUBTYPE_CONSTRAINT;
60
+ SUBTYPE_CONSTRAINT supertype_expression_parenthesis_andor_and_subtype_constraint FOR empty_entity; (a ANDOR b) AND c; END_SUBTYPE_CONSTRAINT;
61
+ SUBTYPE_CONSTRAINT supertype_expression_and_parenthesis_andor_subtype_constraint FOR empty_entity; a AND (b ANDOR c); END_SUBTYPE_CONSTRAINT;
62
+ SUBTYPE_CONSTRAINT supertype_expression_oneof_subtype_constraint FOR empty_entity; ONEOF(a, b); END_SUBTYPE_CONSTRAINT;
63
+ SUBTYPE_CONSTRAINT supertype_expression_and_oneof_subtype_constraint FOR empty_entity; a AND ONEOF(b, c); END_SUBTYPE_CONSTRAINT;
64
+ SUBTYPE_CONSTRAINT supertype_expression_andor_oneof_subtype_constraint FOR empty_entity; a ANDOR ONEOF(b, c); END_SUBTYPE_CONSTRAINT;
65
+ SUBTYPE_CONSTRAINT supertype_expression_oneof_and_subtype_constraint FOR empty_entity; ONEOF(a, b) AND c; END_SUBTYPE_CONSTRAINT;
66
+ SUBTYPE_CONSTRAINT supertype_expression_oneof_andor_subtype_constraint FOR empty_entity; ONEOF(a, b) ANDOR c; END_SUBTYPE_CONSTRAINT;
67
+ SUBTYPE_CONSTRAINT supertype_expression_oneof_and_oneof_subtype_constraint FOR empty_entity; ONEOF(a, b) AND ONEOF(c, d); END_SUBTYPE_CONSTRAINT;
68
+ SUBTYPE_CONSTRAINT supertype_expression_oneof_andor_oneof_subtype_constraint FOR empty_entity; ONEOF(a, b) ANDOR ONEOF(c, d); END_SUBTYPE_CONSTRAINT;
69
+
70
+ -- functions
71
+ FUNCTION empty_function : BOOLEAN; ; END_FUNCTION;
72
+ FUNCTION parameter_function(test : BOOLEAN) : BOOLEAN; ; END_FUNCTION;
73
+ FUNCTION multiple_parameter_function(test : BOOLEAN; test2 : BOOLEAN) : BOOLEAN; ; END_FUNCTION;
74
+ FUNCTION multiple_shorthand_parameter_function(test, test2 : BOOLEAN) : BOOLEAN; ; END_FUNCTION;
75
+ FUNCTION type_function : BOOLEAN; TYPE test = BOOLEAN; END_TYPE; ; END_FUNCTION;
76
+ FUNCTION constant_function : BOOLEAN; CONSTANT test : BOOLEAN := TRUE; END_CONSTANT; ; END_FUNCTION;
77
+ FUNCTION multiple_constant_function : BOOLEAN; CONSTANT test : BOOLEAN := TRUE; test2 : BOOLEAN := TRUE; END_CONSTANT; ; END_FUNCTION;
78
+ FUNCTION variable_function : BOOLEAN; LOCAL test : BOOLEAN; END_LOCAL; ; END_FUNCTION;
79
+ FUNCTION multiple_variable_function : BOOLEAN; LOCAL test : BOOLEAN; test2 : BOOLEAN; END_LOCAL; ; END_FUNCTION;
80
+ FUNCTION multiple_shorthand_variable_function : BOOLEAN; LOCAL test, test2 : BOOLEAN; END_LOCAL; ; END_FUNCTION;
81
+ FUNCTION variable_expression_function : BOOLEAN; LOCAL test : BOOLEAN := TRUE; END_LOCAL; ; END_FUNCTION;
82
+ FUNCTION multiple_variable_expression_function : BOOLEAN; LOCAL test : BOOLEAN := TRUE; test2 : BOOLEAN := TRUE; END_LOCAL; ; END_FUNCTION;
83
+ FUNCTION multiple_shorthand_variable_expression_function : BOOLEAN; LOCAL test, test2 : BOOLEAN := TRUE; END_LOCAL; ; END_FUNCTION;
84
+
85
+ -- procedures
86
+ PROCEDURE empty_procedure; END_PROCEDURE;
87
+ PROCEDURE parameter_procedure(test : BOOLEAN); END_PROCEDURE;
88
+ PROCEDURE multiple_parameter_procedure(test : BOOLEAN; test2 : BOOLEAN); END_PROCEDURE;
89
+ PROCEDURE multiple_shorthand_parameter_procedure(test, test2 : BOOLEAN); END_PROCEDURE;
90
+ PROCEDURE variable_parameter_procedure(VAR test : BOOLEAN); END_PROCEDURE;
91
+ PROCEDURE multiple_variable_parameter_procedure(VAR test : BOOLEAN; test2 : BOOLEAN); END_PROCEDURE;
92
+ PROCEDURE multiple_variable_parameter2_procedure(test : BOOLEAN; VAR test2 : BOOLEAN); END_PROCEDURE;
93
+ PROCEDURE multiple_shorthand_variable_parameter_procedure(VAR test, test2 : BOOLEAN); END_PROCEDURE;
94
+ PROCEDURE type_procedure; TYPE test = BOOLEAN; END_TYPE; END_PROCEDURE;
95
+ PROCEDURE constant_procedure; CONSTANT test : BOOLEAN := TRUE; END_CONSTANT; END_PROCEDURE;
96
+ PROCEDURE multiple_constant_procedure; CONSTANT test : BOOLEAN := TRUE; test2 : BOOLEAN := TRUE; END_CONSTANT; END_PROCEDURE;
97
+ PROCEDURE variable_procedure; LOCAL test : BOOLEAN; END_LOCAL; END_PROCEDURE;
98
+ PROCEDURE multiple_variable_procedure; LOCAL test : BOOLEAN; test2 : BOOLEAN; END_LOCAL; END_PROCEDURE;
99
+ PROCEDURE multiple_shorthand_variable_procedure; LOCAL test, test2 : BOOLEAN; END_LOCAL; END_PROCEDURE;
100
+ PROCEDURE variable_expression_procedure; LOCAL test : BOOLEAN := TRUE; END_LOCAL; END_PROCEDURE;
101
+ PROCEDURE multiple_variable_expression_procedure; LOCAL test : BOOLEAN := TRUE; test2 : BOOLEAN := TRUE; END_LOCAL; END_PROCEDURE;
102
+ PROCEDURE multiple_shorthand_variable_expression_procedure; LOCAL test, test2 : BOOLEAN := TRUE; END_LOCAL; END_PROCEDURE;
103
+ PROCEDURE statement_procedure; ; END_PROCEDURE;
104
+
105
+ -- rules
106
+ RULE empty_rule FOR (empty_entity); WHERE TRUE; END_RULE;
107
+ RULE type_rule FOR (empty_entity); TYPE test = BOOLEAN; END_TYPE; WHERE TRUE; END_RULE;
108
+ RULE constant_rule FOR (empty_entity); CONSTANT test : BOOLEAN := TRUE; END_CONSTANT; WHERE TRUE; END_RULE;
109
+ RULE multiple_constant_rule FOR (empty_entity); CONSTANT test : BOOLEAN := TRUE; test2 : BOOLEAN := TRUE; END_CONSTANT; WHERE TRUE; END_RULE;
110
+ RULE variable_rule FOR (empty_entity); LOCAL test : BOOLEAN; END_LOCAL; WHERE TRUE; END_RULE;
111
+ RULE multiple_variable_rule FOR (empty_entity); LOCAL test : BOOLEAN; test2 : BOOLEAN; END_LOCAL; WHERE TRUE; END_RULE;
112
+ RULE multiple_shorthand_variable_rule FOR (empty_entity); LOCAL test, test2 : BOOLEAN; END_LOCAL; WHERE TRUE; END_RULE;
113
+ RULE variable_expression_rule FOR (empty_entity); LOCAL test : BOOLEAN := TRUE; END_LOCAL; WHERE TRUE; END_RULE;
114
+ RULE multiple_variable_expression_rule FOR (empty_entity); LOCAL test : BOOLEAN := TRUE; test2 : BOOLEAN := TRUE; END_LOCAL; WHERE TRUE; END_RULE;
115
+ RULE multiple_shorthand_variable_expression_rule FOR (empty_entity); LOCAL test, test2 : BOOLEAN := TRUE; END_LOCAL; WHERE TRUE; END_RULE;
116
+ RULE statement_rule FOR (empty_entity); ; WHERE TRUE; END_RULE;
117
+
118
+ -- simple types
119
+ TYPE binary_type = BINARY; END_TYPE;
120
+ TYPE binary_width_type = BINARY (3); END_TYPE;
121
+ TYPE binary_width_fixed_type = BINARY (3) FIXED; END_TYPE;
122
+ TYPE boolean_type = BOOLEAN; END_TYPE;
123
+ TYPE integer_type = INTEGER; END_TYPE;
124
+ TYPE logical_type = LOGICAL; END_TYPE;
125
+ TYPE number_type = NUMBER; END_TYPE;
126
+ TYPE real_type = REAL; END_TYPE;
127
+ TYPE real_precision_type = REAL (3); END_TYPE;
128
+ TYPE string_type = STRING; END_TYPE;
129
+ TYPE string_width_type = STRING (3); END_TYPE;
130
+ TYPE string_width_fixed_type = STRING (3) FIXED; END_TYPE;
131
+
132
+ -- aggregation types
133
+ TYPE array_type = ARRAY [1:9] OF STRING; END_TYPE;
134
+ TYPE array_optional_type = ARRAY [1:9] OF OPTIONAL STRING; END_TYPE;
135
+ TYPE array_unique_type = ARRAY [1:9] OF UNIQUE STRING; END_TYPE;
136
+ TYPE array_optional_unique_type = ARRAY [1:9] OF OPTIONAL UNIQUE STRING; END_TYPE;
137
+ TYPE bag_type = BAG OF STRING; END_TYPE;
138
+ TYPE bag_bound_type = BAG [1:9] OF STRING; END_TYPE;
139
+ TYPE list_type = LIST OF STRING; END_TYPE;
140
+ TYPE list_bound_type = LIST [1:9] OF STRING; END_TYPE;
141
+ TYPE list_unique_type = LIST OF UNIQUE STRING; END_TYPE;
142
+ TYPE list_bound_unique_type = LIST [1:9] OF UNIQUE STRING; END_TYPE;
143
+ TYPE set_type = SET OF STRING; END_TYPE;
144
+ TYPE set_bound_type = SET [1:9] OF STRING; END_TYPE;
145
+
146
+ -- constructed types
147
+ TYPE select_type = SELECT; END_TYPE;
148
+ TYPE select_extensible_type = EXTENSIBLE SELECT; END_TYPE;
149
+ TYPE select_extensible_generic_entity_type = EXTENSIBLE GENERIC_ENTITY SELECT; END_TYPE;
150
+ TYPE select_list_type = SELECT (empty_type); END_TYPE;
151
+ TYPE select_extension_type_ref_type = SELECT BASED_ON select_type; END_TYPE;
152
+ TYPE select_extension_type_ref_list_type = SELECT BASED_ON select_type WITH (empty_type); END_TYPE;
153
+ TYPE enumeration_type = ENUMERATION; END_TYPE;
154
+ TYPE enumeration_extensible_type = EXTENSIBLE ENUMERATION; END_TYPE;
155
+ TYPE enumeration_list_type = ENUMERATION OF (test); END_TYPE;
156
+ TYPE enumeration_extension_type_ref_type = ENUMERATION BASED_ON enumeration_type; END_TYPE;
157
+ TYPE enumeration_extension_type_ref_list_type = ENUMERATION BASED_ON enumeration_type WITH (test); END_TYPE;
158
+
159
+ -- statements
160
+ FUNCTION alias_simple_reference_statement : BOOLEAN; ALIAS test FOR test; ; END_ALIAS; END_FUNCTION;
161
+ FUNCTION alias_attribute_reference_statement : BOOLEAN; ALIAS test FOR test.test; ; END_ALIAS; END_FUNCTION;
162
+ FUNCTION alias_group_reference_statement : BOOLEAN; ALIAS test FOR test\test; ; END_ALIAS; END_FUNCTION;
163
+ FUNCTION alias_index_reference_statement : BOOLEAN; ALIAS test FOR test[1]; ; END_ALIAS; END_FUNCTION;
164
+ FUNCTION alias_index2_reference_statement : BOOLEAN; ALIAS test FOR test[1:9]; ; END_ALIAS; END_FUNCTION;
165
+ FUNCTION assignment_simple_reference_statement : BOOLEAN; test := TRUE; END_FUNCTION;
166
+ FUNCTION assignment_attribute_reference_statement : BOOLEAN; test.test := TRUE; END_FUNCTION;
167
+ FUNCTION assignment_group_reference_statement : BOOLEAN; test\test := TRUE; END_FUNCTION;
168
+ FUNCTION assignment_index_reference_statement : BOOLEAN; test[1] := TRUE; END_FUNCTION;
169
+ FUNCTION assignment_index2_reference_statement : BOOLEAN; test[1:9] := TRUE; END_FUNCTION;
170
+ FUNCTION case_statement : BOOLEAN; CASE test OF TRUE : ; END_CASE; END_FUNCTION;
171
+ FUNCTION case_multiple_statement : BOOLEAN; CASE test OF TRUE : ; TRUE : ; END_CASE; END_FUNCTION;
172
+ FUNCTION case_multiple_shorthand_statement : BOOLEAN; CASE test OF TRUE, TRUE : ; END_CASE; END_FUNCTION;
173
+ FUNCTION case_otherwise_statement : BOOLEAN; CASE test OF TRUE : ; OTHERWISE : ; END_CASE; END_FUNCTION;
174
+ FUNCTION compound_statement : BOOLEAN; BEGIN ; END; END_FUNCTION;
175
+ FUNCTION escape_statement : BOOLEAN; ESCAPE; END_FUNCTION;
176
+ FUNCTION if_statement : BOOLEAN; IF TRUE THEN ; END_IF; END_FUNCTION;
177
+ FUNCTION if2_statement : BOOLEAN; IF TRUE THEN ; ; END_IF; END_FUNCTION;
178
+ FUNCTION if_else_statement : BOOLEAN; IF TRUE THEN ; ELSE ; END_IF; END_FUNCTION;
179
+ FUNCTION if2_else_statement : BOOLEAN; IF TRUE THEN ; ; ELSE ; END_IF; END_FUNCTION;
180
+ FUNCTION if_else2_statement : BOOLEAN; IF TRUE THEN ; ELSE ; ; END_IF; END_FUNCTION;
181
+ FUNCTION if2_else2_statement : BOOLEAN; IF TRUE THEN ; ; ELSE ; ; END_IF; END_FUNCTION;
182
+ FUNCTION null_statement : BOOLEAN; ; END_FUNCTION;
183
+ FUNCTION call_statement : BOOLEAN; empty_procedure; END_FUNCTION;
184
+ FUNCTION call_parameter_statement : BOOLEAN; empty_procedure(TRUE); END_FUNCTION;
185
+ FUNCTION call_parameter2_statement : BOOLEAN; empty_procedure(TRUE, TRUE); END_FUNCTION;
186
+ FUNCTION call_insert_statement : BOOLEAN; INSERT(TRUE); END_FUNCTION;
187
+ FUNCTION call_remove_statement : BOOLEAN; REMOVE(TRUE); END_FUNCTION;
188
+ FUNCTION repeat_statement : BOOLEAN; REPEAT; ; END_REPEAT; END_FUNCTION;
189
+ FUNCTION repeat_variable_statement : BOOLEAN; REPEAT test := 1 TO 9; ; END_REPEAT; END_FUNCTION;
190
+ FUNCTION repeat_variable_increment_statement : BOOLEAN; REPEAT test := 1 TO 9 BY 2; ; END_REPEAT; END_FUNCTION;
191
+ FUNCTION repeat_while_statement : BOOLEAN; REPEAT WHILE TRUE; ; END_REPEAT; END_FUNCTION;
192
+ FUNCTION repeat_until_statement : BOOLEAN; REPEAT UNTIL TRUE; ; END_REPEAT; END_FUNCTION;
193
+ FUNCTION return_statement : BOOLEAN; RETURN; END_FUNCTION;
194
+ FUNCTION return_expression_statement : BOOLEAN; RETURN (TRUE); END_FUNCTION;
195
+ FUNCTION skip_statement : BOOLEAN; SKIP; END_FUNCTION;
196
+
197
+ -- literal expressions
198
+ FUNCTION binary_expression : BOOLEAN; RETURN (%011110000111100001111000); END_FUNCTION;
199
+ FUNCTION integer_expression : BOOLEAN; RETURN (999); END_FUNCTION;
200
+ FUNCTION true_logical_expression : BOOLEAN; RETURN (TRUE); END_FUNCTION;
201
+ FUNCTION false_logical_expression : BOOLEAN; RETURN (FALSE); END_FUNCTION;
202
+ FUNCTION unknown_logical_expression : BOOLEAN; RETURN (UNKNOWN); END_FUNCTION;
203
+ FUNCTION real_expression : BOOLEAN; RETURN (999.999); END_FUNCTION;
204
+ FUNCTION simple_string_expression : BOOLEAN; RETURN ('xxx'); END_FUNCTION;
205
+ FUNCTION encoded_string_expression : BOOLEAN; RETURN ("000000780000007800000078"); END_FUNCTION;
206
+
207
+ -- constant expressions
208
+ FUNCTION const_e_expression : BOOLEAN; RETURN (CONST_E); END_FUNCTION;
209
+ FUNCTION indeterminate_expression : BOOLEAN; RETURN (?); END_FUNCTION;
210
+ FUNCTION pi_expression : BOOLEAN; RETURN (PI); END_FUNCTION;
211
+ FUNCTION self_expression : BOOLEAN; RETURN (SELF); END_FUNCTION;
212
+
213
+ -- function expressions
214
+ FUNCTION abs_expression : BOOLEAN; RETURN (ABS(TRUE)); END_FUNCTION;
215
+ FUNCTION acos_expression : BOOLEAN; RETURN (ACOS(TRUE)); END_FUNCTION;
216
+ FUNCTION asin_expression : BOOLEAN; RETURN (ASIN(TRUE)); END_FUNCTION;
217
+ FUNCTION atan_expression : BOOLEAN; RETURN (ATAN(TRUE)); END_FUNCTION;
218
+ FUNCTION blength_expression : BOOLEAN; RETURN (BLENGTH(TRUE)); END_FUNCTION;
219
+ FUNCTION cos_expression : BOOLEAN; RETURN (COS(TRUE)); END_FUNCTION;
220
+ FUNCTION exists_expression : BOOLEAN; RETURN (EXISTS(TRUE)); END_FUNCTION;
221
+ FUNCTION exp_expression : BOOLEAN; RETURN (EXP(TRUE)); END_FUNCTION;
222
+ FUNCTION format_expression : BOOLEAN; RETURN (FORMAT(TRUE)); END_FUNCTION;
223
+ FUNCTION hibound_expression : BOOLEAN; RETURN (HIBOUND(TRUE)); END_FUNCTION;
224
+ FUNCTION hiindex_expression : BOOLEAN; RETURN (HIINDEX(TRUE)); END_FUNCTION;
225
+ FUNCTION length_expression : BOOLEAN; RETURN (LENGTH(TRUE)); END_FUNCTION;
226
+ FUNCTION lobound_expression : BOOLEAN; RETURN (LOBOUND(TRUE)); END_FUNCTION;
227
+ FUNCTION loindex_expression : BOOLEAN; RETURN (LOINDEX(TRUE)); END_FUNCTION;
228
+ FUNCTION log_expression : BOOLEAN; RETURN (LOG(TRUE)); END_FUNCTION;
229
+ FUNCTION log2_expression : BOOLEAN; RETURN (LOG2(TRUE)); END_FUNCTION;
230
+ FUNCTION log10_expression : BOOLEAN; RETURN (LOG10(TRUE)); END_FUNCTION;
231
+ FUNCTION nvl_expression : BOOLEAN; RETURN (NVL(TRUE)); END_FUNCTION;
232
+ FUNCTION odd_expression : BOOLEAN; RETURN (ODD(TRUE)); END_FUNCTION;
233
+ FUNCTION rolesof_expression : BOOLEAN; RETURN (ROLESOF(TRUE)); END_FUNCTION;
234
+ FUNCTION sin_expression : BOOLEAN; RETURN (SIN(TRUE)); END_FUNCTION;
235
+ FUNCTION sizeof_expression : BOOLEAN; RETURN (SIZEOF(TRUE)); END_FUNCTION;
236
+ FUNCTION sqrt_expression : BOOLEAN; RETURN (SQRT(TRUE)); END_FUNCTION;
237
+ FUNCTION tan_expression : BOOLEAN; RETURN (TAN(TRUE)); END_FUNCTION;
238
+ FUNCTION typeof_expression : BOOLEAN; RETURN (TYPEOF(TRUE)); END_FUNCTION;
239
+ FUNCTION usedin_expression : BOOLEAN; RETURN (USEDIN(TRUE)); END_FUNCTION;
240
+ FUNCTION value_expression : BOOLEAN; RETURN (VALUE(TRUE)); END_FUNCTION;
241
+ FUNCTION value_in_expression : BOOLEAN; RETURN (VALUE_IN(TRUE)); END_FUNCTION;
242
+ FUNCTION value_unique_expression : BOOLEAN; RETURN (VALUE_UNIQUE(TRUE)); END_FUNCTION;
243
+
244
+ -- operator expressions
245
+ FUNCTION plus_expression : BOOLEAN; RETURN (+4); END_FUNCTION;
246
+ FUNCTION plus_addition_expression : BOOLEAN; RETURN (+(4 + 2)); END_FUNCTION;
247
+ FUNCTION minus_expression : BOOLEAN; RETURN (-4); END_FUNCTION;
248
+ FUNCTION minus_addition_expression : BOOLEAN; RETURN (-(4 + 2)); END_FUNCTION;
249
+ FUNCTION addition_expression : BOOLEAN; RETURN (4 + 2); END_FUNCTION;
250
+ FUNCTION subtraction_expression : BOOLEAN; RETURN (4 - 2); END_FUNCTION;
251
+ FUNCTION multiplication_expression : BOOLEAN; RETURN (4 * 2); END_FUNCTION;
252
+ FUNCTION real_division_expression : BOOLEAN; RETURN (4 / 2); END_FUNCTION;
253
+ FUNCTION integer_division_expression : BOOLEAN; RETURN (4 DIV 2); END_FUNCTION;
254
+ FUNCTION modulo_expression : BOOLEAN; RETURN (4 MOD 2); END_FUNCTION;
255
+ FUNCTION exponentiation_expression : BOOLEAN; RETURN (4 ** 2); END_FUNCTION;
256
+ FUNCTION addition_addition_expression : BOOLEAN; RETURN (4 + 2 + 1); END_FUNCTION;
257
+ FUNCTION subtraction_subtraction_expression : BOOLEAN; RETURN (4 - 2 - 1); END_FUNCTION;
258
+ FUNCTION addition_subtraction_expression : BOOLEAN; RETURN (4 + 2 - 1); END_FUNCTION;
259
+ FUNCTION subtraction_addition_expression : BOOLEAN; RETURN (4 - 2 + 1); END_FUNCTION;
260
+ FUNCTION addition_multiplication_expression : BOOLEAN; RETURN (8 + 4 * 2); END_FUNCTION;
261
+ FUNCTION multiplication_addition_expression : BOOLEAN; RETURN (8 * 4 + 2); END_FUNCTION;
262
+ FUNCTION parenthesis_addition_multiplication_expression : BOOLEAN; RETURN ((8 + 4) * 2); END_FUNCTION;
263
+ FUNCTION multiplication_parenthesis_addition_expression : BOOLEAN; RETURN (8 * (4 + 2)); END_FUNCTION;
264
+ FUNCTION equal_expression : BOOLEAN; RETURN (4 = 2); END_FUNCTION;
265
+ FUNCTION not_equal_expression : BOOLEAN; RETURN (4 <> 2); END_FUNCTION;
266
+ FUNCTION instance_equal_expression : BOOLEAN; RETURN (4 :=: 2); END_FUNCTION;
267
+ FUNCTION instance_not_equal_expression : BOOLEAN; RETURN (4 :<>: 2); END_FUNCTION;
268
+ FUNCTION lt_expression : BOOLEAN; RETURN (4 < 2); END_FUNCTION;
269
+ FUNCTION gt_expression : BOOLEAN; RETURN (4 > 2); END_FUNCTION;
270
+ FUNCTION lte_expression : BOOLEAN; RETURN (4 <= 2); END_FUNCTION;
271
+ FUNCTION gte_expression : BOOLEAN; RETURN (4 >= 2); END_FUNCTION;
272
+ FUNCTION not_expression : BOOLEAN; RETURN (NOT TRUE); END_FUNCTION;
273
+ FUNCTION not_or_expression : BOOLEAN; RETURN (NOT (TRUE OR FALSE)); END_FUNCTION;
274
+ FUNCTION or_expression : BOOLEAN; RETURN (TRUE OR FALSE); END_FUNCTION;
275
+ FUNCTION and_expression : BOOLEAN; RETURN (TRUE AND FALSE); END_FUNCTION;
276
+ FUNCTION or_or_expression : BOOLEAN; RETURN (TRUE OR FALSE OR TRUE); END_FUNCTION;
277
+ FUNCTION and_and_expression : BOOLEAN; RETURN (TRUE AND FALSE AND TRUE); END_FUNCTION;
278
+ FUNCTION or_and_expression : BOOLEAN; RETURN (TRUE OR FALSE AND TRUE); END_FUNCTION;
279
+ FUNCTION and_or_expression : BOOLEAN; RETURN (TRUE AND FALSE OR TRUE); END_FUNCTION;
280
+ FUNCTION parenthesis_or_and_expression : BOOLEAN; RETURN ((TRUE OR FALSE) AND TRUE); END_FUNCTION;
281
+ FUNCTION and_parenthesis_or_expression : BOOLEAN; RETURN (TRUE AND (FALSE OR TRUE)); END_FUNCTION;
282
+ FUNCTION combine_expression : BOOLEAN; RETURN (test || test); END_FUNCTION;
283
+ FUNCTION in_expression : BOOLEAN; RETURN (TRUE IN [TRUE]); END_FUNCTION;
284
+ FUNCTION like_expression : BOOLEAN; RETURN ('xxx' LIKE 'xxx'); END_FUNCTION;
285
+
286
+ -- aggregate initializer expressions
287
+ FUNCTION aggregate_initializer_expression : BOOLEAN; RETURN ([4]); END_FUNCTION;
288
+ FUNCTION repeated_aggregate_initializer_expression : BOOLEAN; RETURN ([4:2]); END_FUNCTION;
289
+ FUNCTION complex_aggregate_initializer_expression : BOOLEAN; RETURN ([4 + 2]); END_FUNCTION;
290
+ FUNCTION complex_repeated_aggregate_initializer_expression : BOOLEAN; RETURN ([4 + 2:4 + 2]); END_FUNCTION;
291
+
292
+ -- function call or entity constructor expressions
293
+ FUNCTION call_expression : BOOLEAN; RETURN (parameter_function(TRUE)); END_FUNCTION;
294
+
295
+ -- reference expressions
296
+ FUNCTION simple_reference_expression : BOOLEAN; RETURN (simple_string_expression); END_FUNCTION;
297
+ FUNCTION attribute_reference_expression : BOOLEAN; RETURN (simple_string_expression.test); END_FUNCTION;
298
+ FUNCTION group_reference_expression : BOOLEAN; RETURN (simple_string_expression\test); END_FUNCTION;
299
+ FUNCTION index_reference_expression : BOOLEAN; RETURN (simple_string_expression[1]); END_FUNCTION;
300
+ FUNCTION index2_reference_expression : BOOLEAN; RETURN (simple_string_expression[1:9]); END_FUNCTION;
301
+
302
+ -- interval expressions
303
+ FUNCTION lt_lt_interval_expression : BOOLEAN; RETURN ({1 < 5 < 9}); END_FUNCTION;
304
+ FUNCTION lte_lt_interval_expression : BOOLEAN; RETURN ({1 <= 5 < 9}); END_FUNCTION;
305
+ FUNCTION lt_lte_interval_expression : BOOLEAN; RETURN ({1 < 5 <= 9}); END_FUNCTION;
306
+ FUNCTION lte_lte_interval_expression : BOOLEAN; RETURN ({1 <= 5 <= 9}); END_FUNCTION;
307
+
308
+ -- query expressions
309
+ FUNCTION query_expression : BOOLEAN; RETURN (QUERY(test <* test2 | TRUE)); END_FUNCTION;
310
+ END_SCHEMA;