Module: SPARQL::Grammar::Terminals
- Included in:
- Parser
- Defined in:
- lib/sparql/grammar/terminals11.rb
Constant Summary collapse
- U_CHARS1 =
Unicode regular expressions for Ruby 1.9+ with the Oniguruma engine.
Regexp.compile(<<-EOS.gsub(/\s+/, '')) [\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]| [\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]| [\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]| [\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD]|[\\u{10000}-\\u{EFFFF}] EOS
- U_CHARS2 =
Regexp.compile("\\u00B7|[\\u0300-\\u036F]|[\\u203F-\\u2040]").freeze
- IRI_RANGE =
Regexp.compile("[[^<>\"{}|^`\\\\]&&[^\\x00-\\x20]]").freeze
- UCHAR =
26
EBNF::LL1::Lexer::UCHAR
- PERCENT =
170s
/%[0-9A-Fa-f]{2}/.freeze
- PN_LOCAL_ESC =
172s
/\\[_~\.\-\!$\&'\(\)\*\+,;=:\/\?\#@%]/.freeze
- PLX =
169s
/#{PERCENT}|#{PN_LOCAL_ESC}/.freeze
- PN_CHARS_BASE =
153
/[A-Z]|[a-z]|#{U_CHARS1}/.freeze
- PN_CHARS_U =
154
/_|#{PN_CHARS_BASE}/.freeze
- VARNAME =
155
/(?:[0-9]|#{PN_CHARS_U}) (?:[0-9]|#{PN_CHARS_U}|#{U_CHARS2})*/x.freeze
- PN_CHARS =
156
/-|[0-9]|#{PN_CHARS_U}|#{U_CHARS2}/.freeze
- PN_LOCAL_BODY =
/(?:(?:\.|:|#{PN_CHARS}|#{PLX})*(?:#{PN_CHARS}|:|#{PLX}))?/.freeze
- PN_CHARS_BODY =
/(?:(?:\.|#{PN_CHARS})*#{PN_CHARS})?/.freeze
- PN_PREFIX =
157
/#{PN_CHARS_BASE}#{PN_CHARS_BODY}/.freeze
- PN_LOCAL =
158
/(?:[0-9]|:|#{PN_CHARS_U}|#{PLX})#{PN_LOCAL_BODY}/.freeze
- EXPONENT =
144
/[eE][+-]?[0-9]+/
- ECHAR =
149
/\\[tbnrf\\"']/.freeze
- IRIREF =
18
/<(?:#{IRI_RANGE}|#{UCHAR})*>/.freeze
- PNAME_NS =
129
/#{PN_PREFIX}?:/.freeze
- PNAME_LN =
130
/(?:#{PNAME_NS})(?:#{PN_LOCAL})/.freeze
- BLANK_NODE_LABEL =
131
/_:(?:[0-9]|#{PN_CHARS_U})((#{PN_CHARS}|\.)*#{PN_CHARS})?/.freeze
- VAR1 =
132
/\?#{VARNAME}/.freeze
- VAR2 =
133
/\$#{VARNAME}/.freeze
- LANGTAG =
134
/@[a-zA-Z]+(?:-[a-zA-Z0-9]+)*/.freeze
- INTEGER =
135
/[0-9]+/.freeze
- DECIMAL =
136
/(?:[0-9]*\.[0-9]+)/.freeze
- DOUBLE =
137
/(?:[0-9]+\.[0-9]*#{EXPONENT}|\.?[0-9]+#{EXPONENT})/.freeze
- INTEGER_POSITIVE =
138
/(\+)([0-9]+)/.freeze
- DECIMAL_POSITIVE =
139
/(\+)([0-9]*\.[0-9]+)/.freeze
- DOUBLE_POSITIVE =
140
/(\+)([0-9]+\.[0-9]*#{EXPONENT}|\.?[0-9]+#{EXPONENT})/.freeze
- INTEGER_NEGATIVE =
141
/(\-)([0-9]+)/.freeze
- DECIMAL_NEGATIVE =
142
/(\-)([0-9]*\.[0-9]+)/.freeze
- DOUBLE_NEGATIVE =
143
/(\-)([0-9]+\.[0-9]*#{EXPONENT}|\.?[0-9]+#{EXPONENT})/.freeze
- STRING_LITERAL1 =
145
/'([^\'\\\n\r]|#{ECHAR}|#{UCHAR})*'/.freeze
- STRING_LITERAL2 =
146
/"([^\"\\\n\r]|#{ECHAR}|#{UCHAR})*"/.freeze
- STRING_LITERAL_LONG1 =
147
/'''((?:'|'')?(?:[^'\\]|#{ECHAR}|#{UCHAR}))*'''/m.freeze
- STRING_LITERAL_LONG2 =
148
/"""((?:"|"")?(?:[^"\\]|#{ECHAR}|#{UCHAR}))*"""/m.freeze
- WS =
151
/(?:\s|(?:#[^\n\r]*))+/m.freeze
- NIL =
150
/\(#{WS}*\)/m.freeze
- ANON =
152
/\[#{WS}*\]/m.freeze
- STR_EXPR =
String terminals, case insensitive
%r(ABS|ADD|ADJUST|ALL|ASC|ASK|AS|AVG|BASE|BINDINGS|BIND |BNODE|BOUND|BY|CEIL|CLEAR|COALESCE|CONCAT |CONSTRUCT|CONTAINS|COPY|COUNT|CREATE|DATATYPE|DAY |DEFAULT|DELETE\s+DATA|DELETE\s+WHERE|DELETE |DESCRIBE|DESC|DISTINCT|DROP|ENCODE_FOR_URI|EXISTS |FILTER|FLOOR|FROM|GRAPH|GROUP_CONCAT|GROUP|HAVING |HOURS|IF|INSERT\s+DATA|INSERT|INTO|IN|IRI |LANGMATCHES|LANGTAG|LANG|LCASE|LIMIT|LOAD |MAX|MD5|MINUS|MINUTES|MIN|MONTH|MOVE |NAMED|NOT|NOW|OFFSET|OPTIONAL |ORDER|PREFIX|RAND|REDUCED|REGEX|REPLACE|ROUND|SAMPLE|SECONDS |SELECT|SEPARATOR|SERVICE |SHA1|SHA224|SHA256|SHA384|SHA512|SILENT |STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|STRUUID|SUBSTR|STR|SUM |TIMEZONE|TO|TZ|UCASE|UNDEF|UNION|URI|USING|UUID|VALUES |WHERE|WITH|YEAR |isBLANK|isIRI|isURI|isLITERAL|isNUMERIC|sameTerm |isTRIPLE|TRIPLE|SUBJECT|PREDICATE|OBJECT |true |false |<<|>> |\{\||\|\} |&&|!=|!|<=|>=|\^\^|\|\||[\(\),.;\[\]\{\}\+\-=<>\?\^\|\*\/a] )xim.freeze
- STR_MAP =
Map terminals to canonical form
(%w{ABS ADD ADJUST ALL ASC ASK AS AVG BASE BINDINGS BIND BNODE BOUND BY CEIL CLEAR COALESCE CONCAT CONSTRUCT CONTAINS COPY COUNT CREATE DATATYPE DAY DEFAULT DELETE DESCRIBE DESC DISTINCT DROP ENCODE_FOR_URI EXISTS FILTER FLOOR FROM GRAPH GROUP_CONCAT GROUP HAVING HOURS IF INSERT INTO IN IRI LANGMATCHES LANGTAG LANG LCASE LIMIT LOAD MAX MD5 MINUS MINUTES MIN MONTH MOVE NAMED NOT NOW OFFSET OPTIONAL ORDER PREFIX RAND REDUCED REGEX REPLACE ROUND SAMPLE SECONDS SELECT SEPARATOR SERVICE SHA1 SHA224 SHA256 SHA384 SHA512 SILENT STRAFTER STRBEFORE STRDT STRENDS STRLANG STRLEN STRSTARTS STRUUID SUBSTR STR SUM TIMEZONE TO TZ UCASE UNDEF UNION URI USING UUID VALUES WHERE WITH YEAR isBLANK isIRI isURI isLITERAL isNUMERIC sameTerm isTRIPLE TRIPLE SUBJECT PREDICATE OBJECT true false } + [ "DELETE DATA", "DELETE WHERE", "INSERT DATA", ]).inject({}) {|memo, t| memo[t.downcase] = t; memo}.freeze