Escaping Reserved Words

Last revised 6/4/2021. Contact us.

The SADL grammar includes a number of words, which are listed below. These words cannot, therefore, be directly used as domain concept names since the parser would see them as keywords in the grammar. For example, since "before" is a keyword, it is not possible to define a domain property by saying

However, Xtext resolves this problem by allowing the escaping of words in the grammar by preceding the word with "^", the caret. Therefore one can create a property named "before" with this statement.

Note that the name of the concept is "before", not "^before". The caret is dropped by the parser before the model is translated to OWL. It simply tells the parser not to treat the word as a keyword in the grammar. Note also that variable names are concept names and therefore "a" and "e" cannot be used as variable names unless escaped with a caret.

Reserved Words in the SADL Grammar

The words currently used in the SADL grammar are the following.

  1. A
  2. a
  3. after
  4. alias
  5. always
  6. an
  7. An
  8. and
  9. annotation
  10. another
  11. any
  12. anySimpleType
  13. anyURI
  14. are
  15. as
  16. asc
  17. Ask
  18. ask
  19. at
  20. base64Binary
  21. be
  22. before
  23. boolean
  24. by
  25. byte
  26. can
  27. class
  28. classes
  29. construct
  30. contain
  31. contains
  32. count
  33. data
  34. date
  35. dateTime
  36. decimal
  37. Deductions
  38. default
  39. delete
  40. desc
  41. described
  42. describes
  43. disjoint
  44. distinct
  45. does
  46. double
  47. duration
  48. E
  49. e
  50. eighth
  51. element
  52. Equation
  53. exactly
  54. exists
  55. Explain:
  56. Expr:
  57. External
  58. false
  59. fifth
  60. first
  61. float
  62. for
  63. fourth
  64. from
  65. gDay
  66. given
  67. gMonth
  68. gMonthDay
  69. Graph
  70. gYear
  71. gYearMonth
  72. has
  73. hexBinary
  74. if
  75. import
  76. in
  77. index
  78. insert
  79. instances
  80. int
  81. integer
  82. inverse
  83. is
  84. known
  85. last
  86. least
  87. length
  88. level
  89. List
  90. located
  91. long
  92. matching
  93. Model
  94. most
  95. must
  96. negativeInteger
  97. ninth
  98. None
  99. nonNegativeInteger
  100. nonPositiveInteger
  101. not
  102. note
  103. of
  104. one
  105. only
  106. or
  107. order
  108. other
  109. PI
  110. plus
  111. positiveInteger
  112. Print:
  113. property
  114. Read:
  115. relationship
  116. Relationship
  117. return
  118. returns
  119. Rule
  120. same
  121. second
  122. see
  123. select
  124. seventh
  125. single
  126. sixth
  127. some
  128. Stage
  129. string
  130. subject
  131. sublist
  132. symmetrical
  133. table
  134. tenth
  135. Test:
  136. The
  137. the
  138. then
  139. there
  140. third
  141. time
  142. to
  143. top-level
  144. transitive
  145. true
  146. type
  147. types
  148. unique
  149. unsignedByte
  150. unsignedInt
  151. Update
  152. uri
  153. using
  154. value
  155. values
  156. version
  157. where
  158. with
  159. Write: