rouge 4.0.0 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9229545bdc0804f0a7f0fea6a4fd1b94dbe8d022d0d29c1ffa254c09f42003d1
4
- data.tar.gz: cf12e8de0f2d03d37ed6f1380a5deb04ad385d8628b4f2ed7c1921b16161636f
3
+ metadata.gz: 6fd615b640597f10ec86cd80dd21e8c9d52690a16cf176eba508e9f1e9793722
4
+ data.tar.gz: e52e22c42130a1173fd9996886ea012a6196b40a2277e1be3815464712724226
5
5
  SHA512:
6
- metadata.gz: 31f64a3f386d01829f9a2d2e9711ad40c3c48fbf122dc66b0e9519d4c02676cf530879c388e280efd996d6a57ec3497f5faa54423d081af02450348037c58712
7
- data.tar.gz: fad76c2d5d770fb172e09a2614e37ff78d362b81dfb73d50ce5c25de04f07c93aabae357e4a1a5b6b47be3792edf146e1299c1ec78204d55e998dd54c169f307
6
+ metadata.gz: 680d70dd8cf5d576a02de5d692fd381531431fb547943d251941795180315959b7a8efae23413916cca9e4cf937ff4b13cf42934201ec8b9e0b43f2e01f1ef93
7
+ data.tar.gz: cca0ecbdb95aa8f6001df798a2d0c99b32afa8bedd9887a3f4292d29f38a3132d092b8a7a57da60d246142adafe29e0a6650f3cbeacc3a1d0c1ae93bc07c30c3
data/lib/rouge/demos/coq CHANGED
@@ -10,4 +10,7 @@ Section with_T.
10
10
  end.
11
11
  End with_T.
12
12
 
13
- Definition a_string := "hello \" world".
13
+ Definition a_string := "hello
14
+ world".
15
+ Definition escape_string := "0123".
16
+ Definition zero_string := "0".
@@ -5,6 +5,14 @@ module Rouge
5
5
  module Formatters
6
6
  # Transforms a token stream into HTML output.
7
7
  class HTML < Formatter
8
+ TABLE_FOR_ESCAPE_HTML = {
9
+ '&' => '&amp;',
10
+ '<' => '&lt;',
11
+ '>' => '&gt;',
12
+ }.freeze
13
+
14
+ ESCAPE_REGEX = /[&<>]/.freeze
15
+
8
16
  tag 'html'
9
17
 
10
18
  # @yield the html output.
@@ -22,20 +30,14 @@ module Rouge
22
30
  if tok == Token::Tokens::Text
23
31
  safe_val
24
32
  else
25
- shortname = tok.shortname \
26
- or raise "unknown token: #{tok.inspect} for #{safe_val.inspect}"
33
+ shortname = tok.shortname or raise "unknown token: #{tok.inspect} for #{safe_val.inspect}"
27
34
 
28
35
  "<span class=\"#{shortname}\">#{safe_val}</span>"
29
36
  end
30
37
  end
31
38
 
32
- TABLE_FOR_ESCAPE_HTML = {
33
- '&' => '&amp;',
34
- '<' => '&lt;',
35
- '>' => '&gt;',
36
- }
39
+ private
37
40
 
38
- private
39
41
  # A performance-oriented helper method to escape `&`, `<` and `>` for the rendered
40
42
  # HTML from this formatter.
41
43
  #
@@ -46,10 +48,9 @@ module Rouge
46
48
  # Returns either the given `value` argument string as is or a new string with the
47
49
  # special characters replaced with their escaped counterparts.
48
50
  def escape_special_html_chars(value)
49
- escape_regex = /[&<>]/
50
- return value unless value =~ escape_regex
51
+ return value unless value =~ ESCAPE_REGEX
51
52
 
52
- value.gsub(escape_regex, TABLE_FOR_ESCAPE_HTML)
53
+ value.gsub(ESCAPE_REGEX, TABLE_FOR_ESCAPE_HTML)
53
54
  end
54
55
  end
55
56
  end
@@ -133,7 +133,8 @@ module Rouge
133
133
  end
134
134
 
135
135
  disambiguate '*.pp' do
136
- next Pascal if matches?(/\b(function|begin|var)\b/)
136
+ next Puppet if matches?(/(::)?([a-z]\w*::)/)
137
+ next Pascal if matches?(/^(function|begin|var)\b/)
137
138
  next Pascal if matches?(/\b(end(;|\.))/)
138
139
 
139
140
  Puppet
@@ -25,7 +25,7 @@ module Rouge
25
25
  Variables Class Instance Global Local Include
26
26
  Printing Notation Infix Arguments Hint Rewrite Immediate
27
27
  Qed Defined Opaque Transparent Existing
28
- Compute Eval Print SearchAbout Search About Check
28
+ Compute Eval Print SearchAbout Search About Check Admitted
29
29
  )
30
30
  end
31
31
 
@@ -56,16 +56,6 @@ module Rouge
56
56
  )
57
57
  end
58
58
 
59
- def self.keyopts
60
- @keyopts ||= Set.new %w(
61
- := => -> /\\ \\/ _ ; :> : ⇒ → ↔ ⇔ ≔ ≡ ∀ ∃ ∧ ∨ ¬ ⊤ ⊥ ⊢ ⊨ ∈
62
- )
63
- end
64
-
65
- def self.end_sentence
66
- @end_sentence ||= Punctuation::Indicator
67
- end
68
-
69
59
  def self.classify(x)
70
60
  if self.coq.include? x
71
61
  return Keyword
@@ -82,58 +72,133 @@ module Rouge
82
72
  end
83
73
  end
84
74
 
85
- operator = %r([\[\];,{}_()!$%&*+./:<=>?@^|~#-]+)
86
- id = /(?:[a-z][\w']*)|(?:[_a-z][\w']+)/i
87
- dot_id = /\.((?:[a-z][\w']*)|(?:[_a-z][\w']+))/i
75
+ # https://github.com/coq/coq/blob/110921a449fcb830ec2a1cd07e3acc32319feae6/clib/unicode.ml#L67
76
+ # https://coq.inria.fr/refman/language/core/basic.html#grammar-token-ident
77
+ id_first = /\p{L}/
78
+ id_first_underscore = /(?:\p{L}|_)/
79
+ id_subsequent = /(?:\p{L}|\p{N}|_|')/ # a few missing? some mathematical ' primes and subscripts
80
+ id = /(?:#{id_first}#{id_subsequent}*)|(?:#{id_first_underscore}#{id_subsequent}+)/i
81
+ dot_id = /\.(#{id})/i
88
82
  dot_space = /\.(\s+)/
89
- module_type = /Module(\s+)Type(\s+)/
90
- set_options = /(Set|Unset)(\s+)(Universe|Printing|Implicit|Strict)(\s+)(Polymorphism|All|Notations|Arguments|Universes|Implicit)(\s*)\./m
91
83
 
92
84
  state :root do
93
- rule %r/[(][*](?![)])/, Comment, :comment
85
+ mixin :begin_proof
86
+ mixin :sentence
87
+ end
88
+
89
+ state :sentence do
90
+ mixin :comment_whitespace
91
+ mixin :module_setopts
92
+ # After parsing the id, end up in sentence_postid
93
+ rule id do |m|
94
+ @name = m[0]
95
+ @id_dotted = false
96
+ push :sentence_postid
97
+ push :continue_id
98
+ end
99
+ end
100
+
101
+ state :begin_proof do
102
+ rule %r/(Proof)(\s*)(\.)(\s+)/i do
103
+ groups Keyword, Text::Whitespace, Punctuation::Indicator, Text::Whitespace
104
+ push :proof_mode
105
+ end
106
+ end
107
+
108
+ state :proof_mode do
109
+ mixin :comment_whitespace
110
+ mixin :module_setopts
111
+ mixin :begin_proof
112
+
113
+ rule %r/(Qed|Defined|Save|Admitted)(\s*)(\.)(\s+)/i do
114
+ groups Keyword, Text::Whitespace, Punctuation::Indicator, Text::Whitespace
115
+ pop!
116
+ end
117
+ # the whole point of parsing Proof/Qed, normally some of these will be operators
118
+ rule %r/(?:\-+|\++|\*+)/, Punctuation
119
+ rule %r/[{}]/, Punctuation
120
+ # toplevel_selector
121
+ rule %r/(!|all|par)(:)/ do
122
+ groups Keyword::Pseudo, Punctuation
123
+ end
124
+ # numbered goals 1: {} 1,2: {}
125
+ rule %r/\d+/, Num::Integer, :numeric_labels
126
+ # [named_goal]: { ... }
127
+ rule %r/(\[)(\s*)(#{id})(\s*)(\])(\s*)(:)/ do
128
+ groups Punctuation, Text::Whitespace, Name::Constant, Text::Whitespace, Punctuation, Text::Whitespace, Punctuation
129
+ end
130
+ # After parsing the id, end up in sentence_postid
131
+ rule id do |m|
132
+ @name = m[0]
133
+ @id_dotted = false
134
+ push :sentence_postid
135
+ push :continue_id
136
+ end
137
+ end
138
+
139
+ state :numeric_labels do
140
+ mixin :whitespace
141
+ rule %r/(,)(\s*)(\d+)/ do
142
+ groups Punctuation, Text::Whitespace, Num::Integer
143
+ end
144
+
145
+ rule %r(:), Punctuation, :pop!
146
+ end
147
+
148
+ state :whitespace do
94
149
  rule %r/\s+/m, Text::Whitespace
95
- rule module_type do |m|
96
- token Keyword , 'Module'
97
- token Text::Whitespace , m[1]
98
- token Keyword , 'Type'
99
- token Text::Whitespace , m[2]
150
+ end
151
+
152
+ state :comment_whitespace do
153
+ rule %r/[(][*](?![)])/, Comment, :comment
154
+ mixin :whitespace
155
+ end
156
+
157
+ state :module_setopts do
158
+ rule %r/(Module)(\s+)(Type)(\s+)/ do
159
+ groups Keyword, Text::Whitespace, Keyword, Text::Whitespace
100
160
  end
101
- rule set_options do |m|
102
- token Keyword , m[1]
103
- i = 2
104
- while m[i] != ''
105
- token Text::Whitespace , m[i]
106
- token Keyword , m[i+1]
107
- i += 2
108
- end
109
- token self.class.end_sentence , '.'
161
+
162
+ rule %r(
163
+ (Set|Unset)(\s+)
164
+ (Universe|Printing|Implicit|Strict)(\s+)
165
+ (Polymorphism|All|Notations|Arguments|Universes|Implicit)?(\s*)(\.)
166
+ )x do
167
+ groups Keyword, Text::Whitespace, Keyword, Text::Whitespace, Keyword, Text::Whitespace, Punctuation::Indicator
110
168
  end
169
+ end
170
+
171
+ state :sentence_postid do
172
+ mixin :comment_whitespace
173
+ mixin :module_setopts
174
+
175
+ # up here to beat the id rule for lambda
176
+ rule %r(:=|=>|;|:>|:|::|_), Punctuation
177
+ rule %r(->|/\\|\\/|;|:>|[⇒→↔⇔≔≡∀∃∧∨¬⊤⊥⊢⊨∈λ]), Operator
178
+
111
179
  rule id do |m|
112
180
  @name = m[0]
113
- @continue = false
181
+ @id_dotted = false
114
182
  push :continue_id
115
183
  end
116
- rule %r(/\\), Operator
117
- rule %r/\\\//, Operator
184
+
185
+ # must be followed by whitespace, so that we don't match notations like sym.(a + b)
186
+ rule %r/\.(?=\s)/, Punctuation::Indicator, :pop! # :sentence_postid
118
187
 
119
188
  rule %r/-?\d[\d_]*(.[\d_]*)?(e[+-]?\d[\d_]*)/i, Num::Float
120
- rule %r/\d[\d_]*/, Num::Integer
189
+ rule %r/-?\d[\d_]*/, Num::Integer
121
190
 
122
191
  rule %r/'(?:(\\[\\"'ntbr ])|(\\[0-9]{3})|(\\x\h{2}))'/, Str::Char
123
192
  rule %r/'/, Keyword
124
193
  rule %r/"/, Str::Double, :string
125
194
  rule %r/[~?]#{id}/, Name::Variable
126
195
 
127
- rule %r/./ do |m|
128
- match = m[0]
129
- if self.class.keyopts.include? match
130
- token Punctuation
131
- elsif match =~ operator
132
- token Operator
133
- else
134
- token Error
135
- end
136
- end
196
+ rule %r(`{|[{}\[\]()?|;,.]), Punctuation
197
+ rule %r([!@^|~#.%/]+), Operator
198
+ # any other combo of S (symbol), P (punctuation) and some extras just to be sure
199
+ rule %r((?:\p{S}|\p{Pc}|[./\:\<=>\-+*])+), Operator
200
+
201
+ rule %r/./, Error
137
202
  end
138
203
 
139
204
  state :comment do
@@ -144,48 +209,47 @@ module Rouge
144
209
  end
145
210
 
146
211
  state :string do
147
- rule %r/(?:\\")+|[^"]/, Str::Double
148
- mixin :escape_sequence
149
- rule %r/\\\n/, Str::Double
212
+ rule %r/[^"]+/, Str::Double
213
+ rule %r/""/, Str::Double
150
214
  rule %r/"/, Str::Double, :pop!
151
215
  end
152
216
 
153
- state :escape_sequence do
154
- rule %r/\\[\\"'ntbr]/, Str::Escape
155
- end
156
-
157
217
  state :continue_id do
158
218
  # the stream starts with an id (stored in @name) and continues here
159
219
  rule dot_id do |m|
160
- token Name::Namespace , @name
161
- token Punctuation , '.'
162
- @continue = true
220
+ token Name::Namespace, @name
221
+ token Punctuation, '.'
222
+ @id_dotted = true
163
223
  @name = m[1]
164
224
  end
225
+
165
226
  rule dot_space do |m|
166
- if @continue
167
- token Name::Constant , @name
227
+ if @id_dotted
228
+ token Name::Constant, @name
168
229
  else
169
- token self.class.classify(@name) , @name
230
+ token self.class.classify(@name), @name
170
231
  end
171
- token self.class.end_sentence , '.'
172
- token Text::Whitespace , m[1]
232
+
233
+ token Punctuation::Indicator, '.'
234
+ token Text::Whitespace, m[1]
173
235
  @name = false
174
- @continue = false
175
- pop!
236
+ @id_dotted = false
237
+ pop! # :continue_id
238
+ pop! # :sentence_postid
176
239
  end
240
+
177
241
  rule %r// do
178
- if @continue
179
- token Name::Constant , @name
242
+ if @id_dotted
243
+ token Name::Constant, @name
180
244
  else
181
- token self.class.classify(@name) , @name
245
+ token self.class.classify(@name), @name
182
246
  end
183
247
  @name = false
184
- @continue = false
185
- pop!
248
+ @id_dotted = false
249
+ # we finished parsing an id, drop back into the sentence_postid that was pushed first.
250
+ pop! # :continue_id
186
251
  end
187
252
  end
188
-
189
253
  end
190
254
  end
191
255
  end
@@ -9,10 +9,10 @@ module Rouge
9
9
  module Lexers
10
10
  def Gherkin.keywords
11
11
  @keywords ||= {}.tap do |k|
12
- k[:step] = Set.new ["'a ", "'ach ", "'ej ", "* ", "7 ", "A ", "A taktiež ", "A také ", "A tiež ", "A zároveň ", "AN ", "Aber ", "Ac ", "Ach", "Adott ", "Agus", "Ak ", "Akkor ", "Alavez ", "Ale ", "Aleshores ", "Ali ", "Allora ", "Alors ", "Als ", "Ama ", "Amennyiben ", "Amikor ", "Amma ", "Ampak ", "An ", "Ananging ", "Ancaq ", "And ", "Angenommen ", "Anrhegedig a ", "Ansin", "Antonces ", "Apabila ", "Atesa ", "Atunci ", "Atès ", "Avast! ", "Aye ", "BUT ", "Bagi ", "Banjur ", "Bet ", "Bila ", "Biết ", "Blimey! ", "Buh ", "But ", "But at the end of the day I reckon ", "Cal ", "Cand ", "Cando ", "Ce ", "Cho ", "Cuan ", "Cuando ", "Cuir i gcás go", "Cuir i gcás gur", "Cuir i gcás nach", "Cuir i gcás nár", "Când ", "DEN ", "DaH ghu' bejlu' ", "Dada ", "Dadas ", "Dadena ", "Dadeno ", "Dado ", "Dados ", "Daes ", "Dan ", "Dann ", "Dano ", "Daos ", "Dar ", "Dat fiind ", "Data ", "Date ", "Date fiind ", "Dati ", "Dati fiind ", "Dato ", "Dată fiind", "Dau ", "Daus ", "Daţi fiind ", "Dați fiind ", "De ", "Den youse gotta ", "Dengan ", "Diasumsikan ", "Diberi ", "Diketahui ", "Diyelim ki ", "Do ", "Donada ", "Donat ", "Donc ", "Donitaĵo ", "Dun ", "Duota ", "Dáu ", "E ", "Eeldades ", "Ef ", "En ", "Entao ", "Entonces ", "Então ", "Entón ", "Entós ", "Epi ", "Et ", "Et qu'", "Et que ", "Etant donné ", "Etant donné qu'", "Etant donné que ", "Etant donnée ", "Etant données ", "Etant donnés ", "Eğer ki ", "Fakat ", "Gangway! ", "Gdy ", "Gegeben sei ", "Gegeben seien ", "Gegeven ", "Gegewe ", "Gitt ", "Given ", "Givet ", "Givun ", "Ha ", "Həm ", "I ", "I CAN HAZ ", "In ", "Ir ", "It's just unbelievable ", "Ja ", "Jeśli ", "Jeżeli ", "Jika ", "Kad ", "Kada ", "Kadar ", "Kai ", "Kaj ", "Když ", "Kemudian ", "Ketika ", "Keď ", "Khi ", "Kiedy ", "Ko ", "Koga ", "Komence ", "Kui ", "Kuid ", "Kun ", "Lan ", "Le ", "Le sa a ", "Let go and haul ", "Logo ", "Lorsqu'", "Lorsque ", "Lè ", "Lè sa a ", "Ma ", "Maar ", "Mais ", "Mais qu'", "Mais que ", "Majd ", "Mając ", "Maka ", "Manawa ", "Mas ", "Men ", "Menawa ", "Mutta ", "Nalika ", "Nalikaning ", "Nanging ", "Nato ", "Nhưng ", "Niin ", "Njuk ", "No ", "Nuair a", "Nuair ba", "Nuair nach", "Nuair nár", "När ", "Når ", "Nə vaxt ki ", "O halda ", "O zaman ", "Och ", "Og ", "Oletetaan ", "Ond ", "Onda ", "Oraz ", "Pak ", "Pero ", "Peru ", "Però ", "Podano ", "Pokiaľ ", "Pokud ", "Potem ", "Potom ", "Privzeto ", "Pryd ", "Quan ", "Quand ", "Quando ", "Sachant ", "Sachant qu'", "Sachant que ", "Se ", "Sed ", "Si ", "Siis ", "Sipoze ", "Sipoze Ke ", "Sipoze ke ", "Soit ", "Stel ", "Så ", "Tad ", "Tada ", "Tak ", "Takrat ", "Tapi ", "Ter ", "Tetapi ", "Tha ", "Tha the ", "Then ", "Thurh ", "Thì ", "Toda ", "Togash ", "Too right ", "Tutaq ki ", "Ukoliko ", "Un ", "Und ", "Ve ", "Vendar ", "Verilir ", "Và ", "Və ", "WEN ", "Wanneer ", "Wenn ", "When ", "Wtedy ", "Wun ", "Y ", "Y'know ", "Ya ", "Yeah nah ", "Yna ", "Youse know like when ", "Youse know when youse got ", "Za date ", "Za dati ", "Za dato ", "Za predpokladu ", "Za předpokladu ", "Zadan ", "Zadani ", "Zadano ", "Zakładając ", "Zakładając, że ", "Zaradi ", "Zatim ", "a ", "an ", "awer ", "dann ", "ghu' noblu' ", "latlh ", "mä ", "qaSDI' ", "ugeholl ", "vaj ", "wann ", "És ", "Étant donné ", "Étant donné qu'", "Étant donné que ", "Étant donnée ", "Étant données ", "Étant donnés ", "Ða ", "Ða ðe ", "Ðurh ", "Þa ", "Þa þe ", "Þegar ", "Þurh ", "Þá ", "Če ", "Şi ", "Əgər ", "Și ", "Όταν ", "Αλλά ", "Δεδομένου ", "Και ", "Τότε ", "І ", "А ", "А також ", "Агар ", "Але ", "Али ", "Аммо ", "Анх ", "Бирок ", "Ва ", "Вә ", "Гэхдээ ", "Дадена ", "Дадено ", "Дано ", "Допустим ", "Если ", "За дате ", "За дати ", "За дато ", "Затем ", "И ", "Иначе ", "К тому же ", "Кад ", "Када ", "Кога ", "Когато ", "Когда ", "Коли ", "Лекин ", "Ләкин ", "Мөн ", "Нехай ", "Но ", "Нәтиҗәдә ", "Онда ", "Припустимо ", "Припустимо, що ", "Пусть ", "Та ", "Также ", "То ", "Тогаш ", "Тогда ", "Тоді ", "Тэгэхэд ", "Тэгээд ", "Унда ", "Харин ", "Хэрэв ", "Якщо ", "Үүний дараа ", "Һәм ", "Әгәр ", "Әйтик ", "Әмма ", "Өгөгдсөн нь ", "Ապա ", "Բայց ", "Դիցուք ", "Եթե ", "Եվ ", "Երբ ", "אבל ", "אז ", "אזי ", "בהינתן ", "וגם ", "כאשר ", "آنگاه ", "اذاً ", "اما ", "اور ", "اگر ", "با فرض ", "بالفرض ", "بفرض ", "تب ", "ثم ", "جب ", "عندما ", "فرض کیا ", "لكن ", "لیکن ", "متى ", "هنگامی ", "و ", "پھر ", "अगर ", "अनी ", "आणि ", "और ", "कदा ", "किन्तु ", "चूंकि ", "जब ", "जर", "जेव्हा ", "तथा ", "तदा ", "तब ", "तर ", "तसेच ", "तेव्हा ", "त्यसपछि ", "दिइएको ", "दिएको ", "दिलेल्या प्रमाणे ", "पण ", "पर ", "परंतु ", "परन्तु ", "मग ", "यदि ", "र ", "ਅਤੇ ", "ਜਦੋਂ ", "ਜਿਵੇਂ ਕਿ ", "ਜੇਕਰ ", "ਤਦ ", "ਪਰ ", "અને ", "આપેલ છે ", "ક્યારે ", "પછી ", "પણ ", "அப்பொழுது ", "ஆனால் ", "எப்போது ", "கொடுக்கப்பட்ட ", "மற்றும் ", "மேலும் ", "అప్పుడు ", "ఈ పరిస్థితిలో ", "కాని ", "చెప్పబడినది ", "మరియు ", "ಆದರೆ ", "ನಂತರ ", "ನೀಡಿದ ", "ಮತ್ತು ", "ಸ್ಥಿತಿಯನ್ನು ", "กำหนดให้ ", "ดังนั้น ", "เมื่อ ", "แต่ ", "และ ", "და", "მაგ­რამ", "მაშინ", "მოცემული", "როდესაც", "かつ", "しかし", "ただし", "ならば", "もし", "並且", "但し", "但是", "假如", "假定", "假設", "假设", "前提", "同时", "同時", "并且", "当", "當", "而且", "那么", "那麼", "그러면", "그리고", "단", "만약", "만일", "먼저", "조건", "하지만", "🎬", "😂", "😐", "😔", "🙏"]
13
- k[:element] = Set.new ["Abstract Scenario", "Abstrakt Scenario", "Achtergrond", "Aer", "Agtergrond", "Antecedentes", "Antecedents", "Atburðarás", "Awww, look mate", "B4", "Background", "Baggrund", "Bakgrund", "Bakgrunn", "Bakgrunnur", "Beispiel", "Beispill", "Bối cảnh", "Caso", "Casu", "Cefndir", "Cenario", "Cenario de Fundo", "Cenário", "Cenário de Fundo", "Contesto", "Context", "Contexte", "Contexto", "Cás", "Cás Achomair", "Cúlra", "Dasar", "Delineacao do Cenario", "Delineação do Cenário", "Dis is what went down", "Dyagram Senaryo", "Dyagram senaryo", "Eixemplo", "Ejemplo", "Eksempel", "Ekzemplo", "Enghraifft", "Esbozo do escenario", "Esbozu del casu", "Escenari", "Escenario", "Esempio", "Esquema de l'escenari", "Esquema del caso", "Esquema del escenario", "Esquema do Cenario", "Esquema do Cenário", "Example", "Exemple", "Exemplo", "Exemplu", "First off", "Fono", "Forgatókönyv", "Forgatókönyv vázlat", "Fundo", "Garis Panduan Senario", "Garis-Besar Skenario", "Geçmiş", "Grundlage", "Hannergrond", "Heave to", "Hintergrund", "Háttér", "Istorik", "Juhtum", "Kazo", "Kazo-skizo", "Keadaan", "Kerangka Keadaan", "Kerangka Senario", "Kerangka Situasi", "Keçmiş", "Khung kịch bản", "Khung tình huống", "Koncept", "Konsep skenario", "Kontekst", "Kontekstas", "Konteksts", "Kontext", "Konturo de la scenaro", "Kontèks", "Kịch bản", "Latar Belakang", "Lýsing Atburðarásar", "Lýsing Dæma", "MISHUN", "MISHUN SRSLY", "Na primer", "Náčrt Scenára", "Náčrt Scenáru", "Náčrt Scénáře", "Nümunə", "Oris scenarija", "Osnova", "Osnova Scenára", "Osnova scénáře", "Osnutek", "Ozadje", "Pavyzdys", "Piemērs", "Plan Senaryo", "Plan du Scénario", "Plan du scénario", "Plan senaryo", "Plang vum Szenario", "Pozadie", "Pozadina", "Pozadí", "Pregled na scenarija", "Primer", "Primjer", "Przykład", "Príklad", "Példa", "Příklad", "Raamjuhtum", "Raamstsenaarium", "Reckon it's like", "Rerefons", "Sampla", "Scenarie", "Scenarij", "Scenarijaus šablonas", "Scenariju", "Scenariju-obris", "Scenarijus", "Scenario", "Scenario Amlinellol", "Scenario Outline", "Scenario Template", "Scenario-outline", "Scenariomal", "Scenariomall", "Scenariu", "Scenariusz", "Scenaro", "Scenár", "Scenārijs", "Scenārijs pēc parauga", "Schema dello scenario", "Scénario", "Scénář", "Senario", "Senaryo", "Senaryo Deskripsyon", "Senaryo deskripsyon", "Senaryo taslağı", "Shiver me timbers", "Situasi", "Situasie", "Situasie Uiteensetting", "Situācija", "Skenario", "Skenario konsep", "Skica", "Skizo", "Sodrzhina", "Ssenari", "Ssenarinin strukturu", "Structura scenariu", "Structură scenariu", "Struktura scenarija", "Stsenaarium", "Swa", "Swa hwaer swa", "Swa hwær swa", "Szablon scenariusza", "Szenarien", "Szenario", "Szenariogrundriss", "Tapaus", "Tapausaihio", "Taust", "Tausta", "The thing of it is", "Tình huống", "Voorbeeld", "Voraussetzungen", "Vorbedingungen", "Wharrimean is", "Yo-ho-ho", "Założenia", "lut", "lut chovnatlh", "mo'", "Ær", "Örnek", "Παράδειγμα", "Περίγραμμα Σεναρίου", "Περιγραφή Σεναρίου", "Σενάριο", "Υπόβαθρο", "Агуулга", "Кереш", "Контекст", "Концепт", "На пример", "Основа", "Передумова", "Позадина", "Преглед на сценарија", "Предистория", "Предыстория", "Приклад", "Пример", "Рамка на сценарий", "Скица", "Содржина", "Структура сценария", "Структура сценарија", "Структура сценарію", "Сценар", "Сценарий", "Сценарий структураси", "Сценарийның төзелеше", "Сценарио", "Сценарын төлөвлөгөө", "Сценарій", "Тарих", "Կոնտեքստ", "Սցենար", "Սցենարի կառուցվացքը", "Օրինակ", "דוגמא", "רקע", "תבנית תרחיש", "תרחיש", "الخلفية", "الگوی سناریو", "زمینه", "سناریو", "سيناريو", "سيناريو مخطط", "مثال", "منظر نامے کا خاکہ", "منظرنامہ", "پس منظر", "परिदृश्य", "परिदृश्य रूपरेखा", "पार्श्वभूमी", "पृष्ठभूमि", "पृष्ठभूमी", "ਉਦਾਹਰਨ", "ਪਟਕਥਾ", "ਪਟਕਥਾ ਢਾਂਚਾ", "ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ", "ਪਿਛੋਕੜ", "ઉદાહરણ", "પરિદ્દશ્ય ઢાંચો", "પરિદ્દશ્ય રૂપરેખા", "બેકગ્રાઉન્ડ", "સ્થિતિ", "உதாரணமாக", "காட்சி", "காட்சி சுருக்கம்", "காட்சி வார்ப்புரு", "பின்னணி", "ఉదాహరణ", "కథనం", "నేపథ్యం", "సన్నివేశం", "ಉದಾಹರಣೆ", "ಕಥಾಸಾರಾಂಶ", "ವಿವರಣೆ", "ಹಿನ್ನೆಲೆ", "สรุปเหตุการณ์", "เหตุการณ์", "แนวคิด", "โครงสร้างของเหตุการณ์", "კონტექსტი", "მაგალითად", "სცენარის", "სცენარის ნიმუში", "シナリオ", "シナリオアウトライン", "シナリオテンプレ", "シナリオテンプレート", "テンプレ", "剧本", "剧本大纲", "劇本", "劇本大綱", "场景", "场景大纲", "場景", "場景大綱", "背景", "배경", "시나리오", "시나리오 개요", "💤", "📕", "📖", "🥒"]
14
- k[:examples] = Set.new ["Atburðarásir", "Beispiele", "Beispiller", "Cenarios", "Cenários", "Conto", "Contoh", "Contone", "Dead men tell no tales", "Dæmi", "Dữ liệu", "EXAMPLZ", "Egzanp", "Eixemplos", "Ejemplos", "Eksempler", "Ekzemploj", "Enghreifftiau", "Esempi", "Examples", "Exempel", "Exemple", "Exemples", "Exemplos", "Juhtumid", "Misal", "Nümunələr", "Paraugs", "Pavyzdžiai", "Piemēri", "Primeri", "Primjeri", "Przykłady", "Príklady", "Példák", "Příklady", "Samplaí", "Scenaria", "Scenarijai", "Scenariji", "Scenarios", "Se the", "Se ðe", "Se þe", "Tapaukset", "Variantai", "Voorbeelde", "Voorbeelden", "You'll wanna", "ghantoH", "lutmey", "Örnekler", "Παραδείγματα", "Σενάρια", "Мисаллар", "Мисоллар", "Приклади", "Примери", "Примеры", "Сценарија", "Сценарији", "Тухайлбал", "Үрнәкләр", "Օրինակներ", "דוגמאות", "امثلة", "مثالیں", "نمونه ها", "उदाहरण", "उदाहरणहरु", "ਉਦਾਹਰਨਾਂ", "ઉદાહરણો", "எடுத்துக்காட்டுகள்", "காட்சிகள்", "நிலைமைகளில்", "ఉదాహరణలు", "ಉದಾಹರಣೆಗಳು", "ชุดของตัวอย่าง", "ชุดของเหตุการณ์", "მაგალითები", "サンプル", "例", "例子", "예", "📓"]
15
- k[:feature] = Set.new ["Ability", "Ahoy matey!", "Arwedd", "Aspekt", "Besigheid Behoefte", "Biznis potreba", "Business Need", "Caracteristica", "Característica", "Carauterística", "Egenskab", "Egenskap", "Eiginleiki", "Feature", "Fitur", "Fonctionnalité", "Fonksyonalite", "Funcionalidade", "Funcionalitat", "Functionalitate", "Functionaliteit", "Funcţionalitate", "Funcționalitate", "Fungsi", "Funkcia", "Funkcija", "Funkcionalitāte", "Funkcionalnost", "Funkcja", "Funksie", "Funktion", "Funktionalität", "Funktionalitéit", "Funzionalità", "Fīča", "Gné", "Hwaet", "Hwæt", "Jellemző", "Karakteristik", "Karakteristika", "Lastnost", "Mak", "Mogucnost", "Mogućnost", "Mozhnost", "Moznosti", "Možnosti", "OH HAI", "Omadus", "Ominaisuus", "Osobina", "Potrzeba biznesowa", "Požadavek", "Požiadavka", "Pretty much", "Qap", "Qu'meH 'ut", "Savybė", "Trajto", "Tính năng", "Vermoë", "Vlastnosť", "Właściwość", "Značilnost", "laH", "perbogh", "poQbogh malja'", "Özellik", "Özəllik", "Δυνατότητα", "Λειτουργία", "Бизнис потреба", "Могућност", "Можност", "Мөмкинлек", "Особина", "Свойство", "Функц", "Функционал", "Функционалност", "Функциональность", "Функция", "Функціонал", "Үзенчәлеклелек", "Հատկություն", "Ֆունկցիոնալություն", "תכונה", "خاصية", "خصوصیت", "صلاحیت", "وِیژگی", "کاروبار کی ضرورت", "रूप लेख", "विशेषता", "वैशिष्ट्य", "सुविधा", "ਖਾਸੀਅਤ", "ਨਕਸ਼ ਨੁਹਾਰ", "ਮੁਹਾਂਦਰਾ", "ક્ષમતા", "લક્ષણ", "વ્યાપાર જરૂર", "அம்சம்", "திறன்", "வணிக தேவை", "గుణము", "ಹೆಚ್ಚಳ", "ความต้องการทางธุรกิจ", "ความสามารถ", "โครงหลัก", "თვისება", "フィーチャ", "功能", "機能", "기능", "📚"]
12
+ k[:step] = Set.new ["'a ", "'ach ", "'ej ", "* ", "7 ", "A ", "A taktiež ", "A také ", "A tiež ", "A zároveň ", "AN ", "Aber ", "Ac ", "Ach", "Adott ", "Agus", "Ak ", "Akkor ", "Alavez ", "Ale ", "Aleshores ", "Ali ", "All git out ", "Allora ", "Alors ", "Als ", "Ama ", "Amennyiben ", "Amikor ", "Amma ", "Ampak ", "An ", "Ananging ", "Ancaq ", "And ", "Angenommen ", "Anrhegedig a ", "Ansin", "Antonces ", "Apabila ", "Atesa ", "Atunci ", "Atès ", "Avast! ", "Aye ", "BUT ", "Bagi ", "Banjur ", "Belgilangan ", "Bet ", "Bila ", "Biết ", "Blimey! ", "Buh ", "But ", "But at the end of the day I reckon ", "Bæþsealf ", "Bæþsealfa ", "Bæþsealfe ", "Cal ", "Cand ", "Cando ", "Ce ", "Cho ", "Ciricæw ", "Ciricæwa ", "Ciricæwe ", "Come hell or high water ", "Cuan ", "Cuando ", "Cuir i gcás go", "Cuir i gcás gur", "Cuir i gcás nach", "Cuir i gcás nár", "Când ", "DEN ", "DaH ghu' bejlu' ", "Dada ", "Dadas ", "Dadena ", "Dadeno ", "Dado ", "Dados ", "Daes ", "Dan ", "Dann ", "Dano ", "Daos ", "Dar ", "Dat fiind ", "Data ", "Date ", "Date fiind ", "Dati ", "Dati fiind ", "Dato ", "Dată fiind", "Dau ", "Daus ", "Daţi fiind ", "Dați fiind ", "De ", "Den youse gotta ", "Dengan ", "Diasumsikan ", "Diberi ", "Diketahui ", "Diyelim ki ", "Do ", "Donada ", "Donat ", "Donc ", "Donitaĵo ", "Dun ", "Duota ", "Dáu ", "E ", "Eeldades ", "Ef ", "En ", "Entao ", "Entonces ", "Então ", "Entón ", "Entós ", "Epi ", "Et ", "Et qu'", "Et que ", "Etant donné ", "Etant donné qu'", "Etant donné que ", "Etant donnée ", "Etant données ", "Etant donnés ", "Eğer ki ", "Fakat ", "Fixin' to ", "Gangway! ", "Gdy ", "Gegeben sei ", "Gegeben seien ", "Gegeven ", "Gegewe ", "Gitt ", "Given ", "Givet ", "Givun ", "Ha ", "Həm ", "I ", "I CAN HAZ ", "In ", "Ir ", "It's just unbelievable ", "Ja ", "Jeśli ", "Jeżeli ", "Jika ", "Kad ", "Kada ", "Kadar ", "Kai ", "Kaj ", "Když ", "Kemudian ", "Ketika ", "Keď ", "Khi ", "Kiedy ", "Ko ", "Koga ", "Komence ", "Kui ", "Kuid ", "Kun ", "Lan ", "Le ", "Le sa a ", "Let go and haul ", "Logo ", "Lorsqu'", "Lorsque ", "Lè ", "Lè sa a ", "Ma ", "Maar ", "Mais ", "Mais qu'", "Mais que ", "Majd ", "Mając ", "Maka ", "Manawa ", "Mas ", "Men ", "Menawa ", "Mutta ", "Nalika ", "Nalikaning ", "Nanging ", "Nato ", "Nhưng ", "Niin ", "Njuk ", "No ", "Nuair a", "Nuair ba", "Nuair nach", "Nuair nár", "När ", "Når ", "Nə vaxt ki ", "O halda ", "O zaman ", "Och ", "Og ", "Oletetaan ", "Ond ", "Onda ", "Oraz ", "Pak ", "Pero ", "Peru ", "Però ", "Podano ", "Pokiaľ ", "Pokud ", "Potem ", "Potom ", "Privzeto ", "Pryd ", "Quan ", "Quand ", "Quando ", "Quick out of the chute ", "Sachant ", "Sachant qu'", "Sachant que ", "Se ", "Sed ", "Si ", "Siis ", "Sipoze ", "Sipoze Ke ", "Sipoze ke ", "Soit ", "Stel ", "Så ", "Tad ", "Tada ", "Tak ", "Takrat ", "Tapi ", "Ter ", "Tetapi ", "Tha ", "Tha the ", "Then ", "There’s no tree but bears some fruit ", "Thurh ", "Thì ", "Toda ", "Togash ", "Too right ", "Tutaq ki ", "Ukoliko ", "Un ", "Und ", "Ve ", "Vendar ", "Verilir ", "Và ", "Və ", "WEN ", "Wanneer ", "Well now hold on, I'll you what ", "Wenn ", "When ", "Wtedy ", "Wun ", "Y ", "Y'know ", "Ya ", "Yeah nah ", "Yna ", "Youse know like when ", "Youse know when youse got ", "Za date ", "Za dati ", "Za dato ", "Za predpokladu ", "Za předpokladu ", "Zadan ", "Zadani ", "Zadano ", "Zakładając ", "Zakładając, że ", "Zaradi ", "Zatim ", "a ", "an ", "awer ", "dann ", "ghu' noblu' ", "latlh ", "mä ", "qaSDI' ", "ugeholl ", "vaj ", "wann ", "És ", "Étant donné ", "Étant donné qu'", "Étant donné que ", "Étant donnée ", "Étant données ", "Étant donnés ", "Ða ", "Ða ðe ", "Ðurh ", "Þa ", "Þa þe ", "Þegar ", "Þurh ", "Þá ", "Če ", "Şi ", "Əgər ", "Și ", "Όταν ", "Αλλά ", "Δεδομένου ", "Και ", "Τότε ", "І ", "А ", "А також ", "Агар ", "Але ", "Али ", "Аммо ", "Анх ", "Бирок ", "Ва ", "Вә ", "Гэхдээ ", "Дадена ", "Дадено ", "Дано ", "Допустим ", "Если ", "За дате ", "За дати ", "За дато ", "Затем ", "И ", "Иначе ", "К тому же ", "Кад ", "Када ", "Кога ", "Когато ", "Когда ", "Коли ", "Лекин ", "Ләкин ", "Мөн ", "Нехай ", "Но ", "Нәтиҗәдә ", "Онда ", "Припустимо ", "Припустимо, що ", "Пусть ", "Та ", "Также ", "То ", "Тогаш ", "Тогда ", "Тоді ", "Тэгэхэд ", "Тэгээд ", "Унда ", "Харин ", "Хэрэв ", "Якщо ", "Үүний дараа ", "Һәм ", "Әгәр ", "Әйтик ", "Әмма ", "Өгөгдсөн нь ", "Ապա ", "Բայց ", "Դիցուք ", "Եթե ", "Եվ ", "Երբ ", "אבל ", "אז ", "אזי ", "בהינתן ", "וגם ", "כאשר ", "آنگاه ", "اذاً ", "اما ", "اور ", "اگر ", "با فرض ", "بالفرض ", "بفرض ", "تب ", "ثم ", "جب ", "عندما ", "فرض کیا ", "لكن ", "لیکن ", "متى ", "هنگامی ", "و ", "پھر ", "अगर ", "अनि ", "अनी ", "आणि ", "और ", "कदा ", "किन्तु ", "चूंकि ", "जब ", "जर", "जेव्हा ", "तथा ", "तदा ", "तब ", "तर ", "तसेच ", "तेव्हा ", "त्यसपछि ", "दिइएको ", "दिएको ", "दिलेल्या प्रमाणे ", "पण ", "पर ", "परंतु ", "परन्तु ", "मग ", "यदि ", "र ", "ਅਤੇ ", "ਜਦੋਂ ", "ਜਿਵੇਂ ਕਿ ", "ਜੇਕਰ ", "ਤਦ ", "ਪਰ ", "અને ", "આપેલ છે ", "ક્યારે ", "પછી ", "પણ ", "அப்பொழுது ", "ஆனால் ", "எப்போது ", "கொடுக்கப்பட்ட ", "மற்றும் ", "மேலும் ", "అప్పుడు ", "ఈ పరిస్థితిలో ", "కాని ", "చెప్పబడినది ", "మరియు ", "ಆದರೆ ", "ನಂತರ ", "ನೀಡಿದ ", "ಮತ್ತು ", "ಸ್ಥಿತಿಯನ್ನು ", "กำหนดให้ ", "ดังนั้น ", "เมื่อ ", "แต่ ", "และ ", "ასევე ", "და ", "ვთქვათ ", "თუ ", "თუმცა ", "მაგრამ ", "მაშინ ", "მოცემული ", "მოცემულია ", "როგორც კი ", "როდესაც ", "როცა ", "መቼ ", "እና ", "ከዚያ ", "የተሰጠ ", "ግን ", "かつ", "しかし", "ただし", "ならば", "もし", "且つ", "並且", "但し", "但是", "假如", "假定", "假設", "假设", "前提", "同时", "同時", "并且", "当", "然し", "當", "而且", "那么", "那麼", "그러면", "그리고", "단", "만약", "만일", "먼저", "조건", "하지만", "🎬", "😂", "😐", "😔", "🙏"]
13
+ k[:element] = Set.new ["Abstract Scenario", "Abstrakt Scenario", "Achtergrond", "Aer", "Agtergrond", "All hat and no cattle", "Antecedentes", "Antecedents", "Atburðarás", "Aturan", "Awww, look mate", "B4", "Background", "Baggrund", "Bakgrund", "Bakgrunn", "Bakgrunnur", "Beispiel", "Beispill", "Busy as a hound in flea season", "Bối cảnh", "Caso", "Casu", "Cefndir", "Cenario", "Cenario de Fundo", "Cenário", "Cenário de Fundo", "Contesto", "Context", "Contexte", "Contexto", "Cás", "Cás Achomair", "Cúlra", "Dasar", "Delineacao do Cenario", "Delineação do Cenário", "Dis is what went down", "Dyagram Senaryo", "Dyagram senaryo", "Eixemplo", "Ejemplo", "Eksempel", "Ekzemplo", "Enghraifft", "Esbozo do escenario", "Esbozu del casu", "Escenari", "Escenario", "Esempio", "Esquema de l'escenari", "Esquema del caso", "Esquema del escenario", "Esquema do Cenario", "Esquema do Cenário", "Example", "Exemple", "Exemplo", "Exemplu", "First off", "Fono", "Forgatókönyv", "Forgatókönyv vázlat", "Fundo", "Garis Panduan Senario", "Garis-Besar Skenario", "Geçmiş", "Grundlage", "Hannergrond", "Heave to", "Hintergrund", "Háttér", "Istorik", "Juhtum", "Kazo", "Kazo-skizo", "Keadaan", "Kerangka Keadaan", "Kerangka Senario", "Kerangka Situasi", "Keçmiş", "Khung kịch bản", "Khung tình huống", "Koncept", "Konsep skenario", "Kontekst", "Kontekstas", "Konteksts", "Kontext", "Konturo de la scenaro", "Kontèks", "Kural", "Kịch bản", "Latar Belakang", "Lemme tell y'all a story", "Lýsing Atburðarásar", "Lýsing Dæma", "MISHUN", "MISHUN SRSLY", "Na primer", "Náčrt Scenára", "Náčrt Scenáru", "Náčrt Scénáře", "Nümunə", "Oris scenarija", "Osnova", "Osnova Scenára", "Osnova scénáře", "Osnutek", "Ozadje", "Pavyzdys", "Piemērs", "Plan Senaryo", "Plan du Scénario", "Plan du scénario", "Plan senaryo", "Plang vum Szenario", "Pozadie", "Pozadina", "Pozadí", "Pravidlo", "Pravilo", "Pregled na scenarija", "Primer", "Primjer", "Przykład", "Príklad", "Példa", "Příklad", "Raamjuhtum", "Raamstsenaarium", "Reckon it's like", "Reegel", "Regel", "Regla", "Regla de negocio", "Regola", "Regra", "Reguła", "Rerefons", "Rule", "Rule ", "Règle", "Sampla", "Scenarie", "Scenarij", "Scenarijaus šablonas", "Scenariju", "Scenariju-obris", "Scenarijus", "Scenario", "Scenario Amlinellol", "Scenario Outline", "Scenario Template", "Scenario-outline", "Scenariomal", "Scenariomall", "Scenariu", "Scenariusz", "Scenaro", "Scenár", "Scenārijs", "Scenārijs pēc parauga", "Schema dello scenario", "Scénario", "Scénář", "Senario", "Senaryo", "Senaryo Deskripsyon", "Senaryo deskripsyon", "Senaryo taslağı", "Serious as a snake bite", "Shiver me timbers", "Situasi", "Situasie", "Situasie Uiteensetting", "Situācija", "Skenario", "Skenario konsep", "Skica", "Skizo", "Sodrzhina", "Ssenari", "Ssenarinin strukturu", "Structura scenariu", "Structură scenariu", "Struktura scenarija", "Stsenaarium", "Swa", "Swa hwaer swa", "Swa hwær swa", "Szablon scenariusza", "Szabály", "Szenarien", "Szenario", "Szenariogrundriss", "Tapaus", "Tapausaihio", "Taust", "Tausta", "The thing of it is", "Tình huống", "Voorbeeld", "Voraussetzungen", "Vorbedingungen", "Wharrimean is", "Yo-ho-ho", "Zasada", "Założenia", "lut", "lut chovnatlh", "mo'", "Ær", "Örnek", "Παράδειγμα", "Περίγραμμα Σεναρίου", "Περιγραφή Σεναρίου", "Σενάριο", "Υπόβαθρο", "Агуулга", "Кереш", "Контекст", "Концепт", "На пример", "Основа", "Передумова", "Позадина", "Правило", "Преглед на сценарија", "Предистория", "Предыстория", "Приклад", "Пример", "Рамка на сценарий", "Скица", "Содржина", "Структура сценария", "Структура сценарија", "Структура сценарію", "Сценар", "Сценарий", "Сценарий структураси", "Сценарийның төзелеше", "Сценарио", "Сценарын төлөвлөгөө", "Сценарій", "Тарих", "Шаблон сценария", "Կոնտեքստ", "Սցենար", "Սցենարի կառուցվացքը", "Օրինակ", "דוגמא", "כלל", "רקע", "תבנית תרחיש", "תרחיש", "الخلفية", "الگوی سناریو", "زمینه", "سناریو", "سيناريو", "سيناريو مخطط", "مثال", "منظر نامے کا خاکہ", "منظرنامہ", "پس منظر", "नियम", "परिदृश्य", "परिदृश्य रूपरेखा", "पार्श्वभूमी", "पृष्ठभूमि", "पृष्ठभूमी", "ਉਦਾਹਰਨ", "ਪਟਕਥਾ", "ਪਟਕਥਾ ਢਾਂਚਾ", "ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ", "ਪਿਛੋਕੜ", "ઉદાહરણ", "પરિદ્દશ્ય ઢાંચો", "પરિદ્દશ્ય રૂપરેખા", "બેકગ્રાઉન્ડ", "સ્થિતિ", "உதாரணமாக", "காட்சி", "காட்சி சுருக்கம்", "காட்சி வார்ப்புரு", "பின்னணி", "ఉదాహరణ", "కథనం", "నేపథ్యం", "సన్నివేశం", "ಉದಾಹರಣೆ", "ಕಥಾಸಾರಾಂಶ", "ವಿವರಣೆ", "ಹಿನ್ನೆಲೆ", "สรุปเหตุการณ์", "เหตุการณ์", "แนวคิด", "โครงสร้างของเหตุการณ์", "კონტექსტი", "მაგ", "მაგალითად", "მაგალითი", "ნიმუში", "სცენარი", "სცენარის ნიმუში", "სცენარის შაბლონი", "შაბლონი", "წესი", "ሁናቴ", "ሁናቴ አብነት", "ሁናቴ ዝርዝር", "ህግ", "መነሻ", "መነሻ ሀሳብ", "ምሳሌ", "ቅድመ ሁኔታ", "シナリオ", "シナリオアウトライン", "シナリオテンプレ", "シナリオテンプレート", "テンプレ", "ルール", "剧本", "剧本大纲", "劇本", "劇本大綱", "场景", "场景大纲", "場景", "場景大綱", "背景", "规则", "배경", "시나리오", "시나리오 개요", "💤", "📕", "📖", "🥒"]
14
+ k[:examples] = Set.new ["Atburðarásir", "Beispiele", "Beispiller", "Cenarios", "Cenários", "Conto", "Contoh", "Contone", "Dead men tell no tales", "Dæmi", "Dữ liệu", "EXAMPLZ", "Egzanp", "Eixemplos", "Ejemplos", "Eksempler", "Ekzemploj", "Enghreifftiau", "Esempi", "Examples", "Exempel", "Exemple", "Exemples", "Exemplos", "Juhtumid", "Misal", "Now that's a story longer than a cattle drive in July", "Nümunələr", "Paraugs", "Pavyzdžiai", "Piemēri", "Primeri", "Primjeri", "Przykłady", "Príklady", "Példák", "Příklady", "Samplaí", "Scenaria", "Scenarijai", "Scenariji", "Scenarios", "Se the", "Se ðe", "Se þe", "Tapaukset", "Variantai", "Voorbeelde", "Voorbeelden", "You'll wanna", "ghantoH", "lutmey", "Örnekler", "Παραδείγματα", "Σενάρια", "Мисаллар", "Мисоллар", "Приклади", "Примери", "Примеры", "Сценарија", "Сценарији", "Тухайлбал", "Үрнәкләр", "Օրինակներ", "דוגמאות", "امثلة", "مثالیں", "نمونه ها", "उदाहरण", "उदाहरणहरु", "ਉਦਾਹਰਨਾਂ", "ઉદાહરણો", "எடுத்துக்காட்டுகள்", "காட்சிகள்", "நிலைமைகளில்", "ఉదాహరణలు", "ಉದಾಹರಣೆಗಳು", "ชุดของตัวอย่าง", "ชุดของเหตุการณ์", "მაგალითები", "ሁናቴዎች", "ምሳሌዎች", "サンプル", "例", "例子", "예", "📓"]
15
+ k[:feature] = Set.new ["Ability", "Abilità", "Ahoy matey!", "All gussied up", "Arwedd", "Aspekt", "Besigheid Behoefte", "Biznis potreba", "Business Need", "Caracteristica", "Característica", "Carauterística", "Egenskab", "Egenskap", "Eiginleiki", "Esigenza di Business", "Feature", "Fitur", "Fonctionnalité", "Fonksyonalite", "Funcionalidade", "Funcionalitat", "Functionalitate", "Functionaliteit", "Funcţionalitate", "Funcționalitate", "Fungsi", "Funkcia", "Funkcija", "Funkcionalitāte", "Funkcionalnost", "Funkcja", "Funksie", "Funktion", "Funktionalität", "Funktionalitéit", "Funzionalità", "Fīča", "Gné", "Hwaet", "Hwæt", "Jellemző", "Karakteristik", "Karakteristika", "Lastnost", "Mak", "Mogucnost", "Mogućnost", "Mozhnost", "Moznosti", "Možnosti", "Necesidad del negocio", "OH HAI", "Omadus", "Ominaisuus", "Osobina", "Potrzeba biznesowa", "Požadavek", "Požiadavka", "Pretty much", "Qap", "Qu'meH 'ut", "Requisito", "Savybė", "This ain’t my first rodeo", "Trajto", "Tính năng", "Vermoë", "Vlastnosť", "Właściwość", "Značilnost", "laH", "perbogh", "poQbogh malja'", "Özellik", "Özəllik", "Δυνατότητα", "Λειτουργία", "Бизнис потреба", "Могућност", "Можност", "Мөмкинлек", "Особина", "Свойство", "Фича", "Функц", "Функционал", "Функционалност", "Функциональность", "Функция", "Функціонал", "Үзенчәлеклелек", "Հատկություն", "Ֆունկցիոնալություն", "תכונה", "خاصية", "خصوصیت", "صلاحیت", "وِیژگی", "کاروبار کی ضرورت", "रूप लेख", "विशेषता", "वैशिष्ट्य", "सुविधा", "ਖਾਸੀਅਤ", "ਨਕਸ਼ ਨੁਹਾਰ", "ਮੁਹਾਂਦਰਾ", "ક્ષમતા", "લક્ષણ", "વ્યાપાર જરૂર", "அம்சம்", "திறன்", "வணிக தேவை", "గుణము", "ಹೆಚ್ಚಳ", "ความต้องการทางธุรกิจ", "ความสามารถ", "โครงหลัก", "თვისება", "მოთხოვნა", "ስራ", "የሚፈለገው ድርጊት", "የተፈለገው ስራ", "フィーチャ", "功能", "機能", "기능", "📚"]
16
16
  end
17
17
  end
18
18
  end
@@ -11,7 +11,7 @@ module Rouge
11
11
  option :content, "the language for the content (default: auto-detect)"
12
12
 
13
13
  def self.http_methods
14
- @http_methods ||= %w(GET POST PUT DELETE HEAD OPTIONS TRACE PATCH)
14
+ @http_methods ||= %w(GET POST PUT DELETE HEAD OPTIONS TRACE PATCH QUERY)
15
15
  end
16
16
 
17
17
  def content_lexer
@@ -53,6 +53,7 @@ module Rouge
53
53
  rule %r/(?:true|false|null)\b/, Keyword::Constant
54
54
  rule %r/(?:class|interface)\b/, Keyword::Declaration, :class
55
55
  rule %r/(?:import|package)\b/, Keyword::Namespace, :import
56
+ rule %r/"""\s*\n.*?(?<!\\)"""/m, Str::Heredoc
56
57
  rule %r/"(\\\\|\\"|[^"])*"/, Str
57
58
  rule %r/'(?:\\.|[^\\]|\\u[0-9a-f]{4})'/, Str::Char
58
59
  rule %r/(\.)(#{id})/ do
@@ -271,7 +271,7 @@ module Rouge
271
271
  state :template_string do
272
272
  rule %r/[$]{/, Punctuation, :template_string_expr
273
273
  rule %r/`/, Str::Double, :pop!
274
- rule %r/\\[$`]/, Str::Escape
274
+ rule %r/\\[$`\\]/, Str::Escape
275
275
  rule %r/[^$`\\]+/, Str::Double
276
276
  rule %r/[\\$]/, Str::Double
277
277
  end
@@ -9,11 +9,11 @@ module Rouge
9
9
  module Lexers
10
10
  class LLVM
11
11
  def self.keywords
12
- @keywords ||= Set.new ["aarch64_sve_vector_pcs", "aarch64_vector_pcs", "acq_rel", "acquire", "addrspace", "afn", "alias", "aliasee", "align", "alignLog2", "alignstack", "allOnes", "allocsize", "alwaysInline", "alwaysinline", "amdgpu_cs", "amdgpu_es", "amdgpu_gs", "amdgpu_hs", "amdgpu_kernel", "amdgpu_ls", "amdgpu_ps", "amdgpu_vs", "any", "anyregcc", "appending", "arcp", "argmemonly", "args", "arm_aapcs_vfpcc", "arm_aapcscc", "arm_apcscc", "asm", "atomic", "attributes", "available_externally", "avr_intrcc", "avr_signalcc", "bit", "bitMask", "blockaddress", "branchFunnel", "builtin", "byArg", "byte", "byteArray", "byval", "c", "callee", "caller", "calls", "canAutoHide", "catch", "cc", "ccc", "cfguard_checkcc", "cleanup", "cold", "coldcc", "comdat", "common", "constant", "contract", "convergent", "critical", "cxx_fast_tlscc", "datalayout", "declare", "default", "define", "deplibs", "dereferenceable", "dereferenceable_or_null", "distinct", "dllexport", "dllimport", "dsoLocal", "dso_local", "dso_preemptable", "eq", "exact", "exactmatch", "extern_weak", "external", "externally_initialized", "false", "fast", "fastcc", "filter", "flags", "from", "funcFlags", "function", "gc", "ghccc", "global", "guid", "gv", "hash", "hhvm_ccc", "hhvmcc", "hidden", "hot", "hotness", "ifunc", "immarg", "inaccessiblemem_or_argmemonly", "inaccessiblememonly", "inalloca", "inbounds", "indir", "info", "initialexec", "inline", "inlineBits", "inlinehint", "inrange", "inreg", "insts", "intel_ocl_bicc", "inteldialect", "internal", "jumptable", "kind", "largest", "linkage", "linkonce", "linkonce_odr", "live", "local_unnamed_addr", "localdynamic", "localexec", "max", "min", "minsize", "module", "monotonic", "msp430_intrcc", "musttail", "naked", "name", "nand", "ne", "nest", "ninf", "nnan", "noInline", "noRecurse", "noalias", "nobuiltin", "nocapture", "nocf_check", "noduplicate", "noduplicates", "nofree", "noimplicitfloat", "noinline", "none", "nonlazybind", "nonnull", "norecurse", "noredzone", "noreturn", "nosync", "notEligibleToImport", "notail", "nounwind", "nsw", "nsz", "null", "nuw", "oeq", "offset", "oge", "ogt", "ole", "olt", "one", "opaque", "optforfuzzing", "optnone", "optsize", "ord", "partition", "path", "personality", "prefix", "preserve_allcc", "preserve_mostcc", "private", "prologue", "protected", "ptx_device", "ptx_kernel", "readNone", "readOnly", "readnone", "readonly", "reassoc", "refs", "relbf", "release", "resByArg", "returnDoesNotAlias", "returned", "returns_twice", "safestack", "samesize", "sanitize_address", "sanitize_hwaddress", "sanitize_memory", "sanitize_memtag", "sanitize_thread", "section", "seq_cst", "sge", "sgt", "shadowcallstack", "sideeffect", "signext", "single", "singleImpl", "singleImplName", "sizeM1", "sizeM1BitWidth", "sle", "slt", "source_filename", "speculatable", "speculative_load_hardening", "spir_func", "spir_kernel", "sret", "ssp", "sspreq", "sspstrong", "strictfp", "summaries", "summary", "swiftcc", "swifterror", "swiftself", "syncscope", "tail", "tailcc", "target", "thread_local", "to", "triple", "true", "type", "typeCheckedLoadConstVCalls", "typeCheckedLoadVCalls", "typeIdInfo", "typeTestAssumeConstVCalls", "typeTestAssumeVCalls", "typeTestRes", "typeTests", "typeid", "typeidCompatibleVTable", "ueq", "uge", "ugt", "ule", "ult", "umax", "umin", "undef", "une", "uniformRetVal", "uniqueRetVal", "unknown", "unnamed_addr", "uno", "unordered", "unsat", "unwind", "uselistorder", "uselistorder_bb", "uwtable", "vFuncId", "vTableFuncs", "varFlags", "variable", "vcall_visibility", "virtFunc", "virtualConstProp", "volatile", "vscale", "weak", "weak_odr", "webkit_jscc", "willreturn", "win64cc", "within", "wpdRes", "wpdResolutions", "writeonly", "x", "x86_64_sysvcc", "x86_fastcallcc", "x86_intrcc", "x86_regcallcc", "x86_stdcallcc", "x86_thiscallcc", "x86_vectorcallcc", "xchg", "zeroext", "zeroinitializer"]
12
+ @keywords ||= Set.new ["aarch64_sve_vector_pcs", "aarch64_vector_pcs", "acq_rel", "acquire", "addrspace", "afn", "alias", "aliasee", "align", "alignLog2", "alignstack", "allOnes", "allocalign", "allocptr", "allocsize", "alwaysInline", "alwaysinline", "amdgpu_cs", "amdgpu_es", "amdgpu_gfx", "amdgpu_gs", "amdgpu_hs", "amdgpu_kernel", "amdgpu_ls", "amdgpu_ps", "amdgpu_vs", "any", "anyregcc", "appending", "arcp", "argmemonly", "args", "arm_aapcs_vfpcc", "arm_aapcscc", "arm_apcscc", "asm", "async", "atomic", "attributes", "available_externally", "avr_intrcc", "avr_signalcc", "bit", "bitMask", "blockaddress", "blockcount", "branchFunnel", "builtin", "byArg", "byref", "byte", "byteArray", "byval", "c", "callee", "caller", "calls", "canAutoHide", "catch", "cc", "ccc", "cfguard_checkcc", "cleanup", "cold", "coldcc", "comdat", "common", "constant", "contract", "convergent", "critical", "cxx_fast_tlscc", "datalayout", "declare", "default", "define", "dereferenceable", "dereferenceable_or_null", "disable_sanitizer_instrumentation", "distinct", "dllexport", "dllimport", "dsoLocal", "dso_local", "dso_local_equivalent", "dso_preemptable", "elementtype", "eq", "exact", "exactmatch", "extern_weak", "external", "externally_initialized", "false", "fast", "fastcc", "filter", "flags", "from", "funcFlags", "function", "gc", "ghccc", "global", "guid", "gv", "hasUnknownCall", "hash", "hhvm_ccc", "hhvmcc", "hidden", "hot", "hotness", "ifunc", "immarg", "inaccessiblemem_or_argmemonly", "inaccessiblememonly", "inalloca", "inbounds", "indir", "info", "initialexec", "inline", "inlineBits", "inlinehint", "inrange", "inreg", "insts", "intel_ocl_bicc", "inteldialect", "internal", "jumptable", "kind", "largest", "linkage", "linkonce", "linkonce_odr", "live", "local_unnamed_addr", "localdynamic", "localexec", "max", "mayThrow", "min", "minsize", "module", "monotonic", "msp430_intrcc", "mustBeUnreachable", "mustprogress", "musttail", "naked", "name", "nand", "ne", "nest", "ninf", "nnan", "noInline", "noRecurse", "noUnwind", "no_cfi", "noalias", "nobuiltin", "nocallback", "nocapture", "nocf_check", "nodeduplicate", "noduplicate", "nofree", "noimplicitfloat", "noinline", "nomerge", "none", "nonlazybind", "nonnull", "noprofile", "norecurse", "noredzone", "noreturn", "nosanitize_bounds", "nosanitize_coverage", "nosync", "notEligibleToImport", "notail", "noundef", "nounwind", "nsw", "nsz", "null", "null_pointer_is_valid", "nuw", "oeq", "offset", "oge", "ogt", "ole", "olt", "one", "opaque", "optforfuzzing", "optnone", "optsize", "ord", "param", "params", "partition", "path", "personality", "poison", "preallocated", "prefix", "preserve_allcc", "preserve_mostcc", "private", "prologue", "protected", "ptx_device", "ptx_kernel", "readNone", "readOnly", "readnone", "readonly", "reassoc", "refs", "relbf", "release", "resByArg", "returnDoesNotAlias", "returned", "returns_twice", "safestack", "samesize", "sanitize_address", "sanitize_hwaddress", "sanitize_memory", "sanitize_memtag", "sanitize_thread", "section", "seq_cst", "sge", "sgt", "shadowcallstack", "sideeffect", "signext", "single", "singleImpl", "singleImplName", "sizeM1", "sizeM1BitWidth", "sle", "slt", "source_filename", "speculatable", "speculative_load_hardening", "spir_func", "spir_kernel", "sret", "ssp", "sspreq", "sspstrong", "strictfp", "summaries", "summary", "swiftasync", "swiftcc", "swifterror", "swiftself", "swifttailcc", "sync", "syncscope", "tail", "tailcc", "target", "thread_local", "to", "triple", "true", "type", "typeCheckedLoadConstVCalls", "typeCheckedLoadVCalls", "typeIdInfo", "typeTestAssumeConstVCalls", "typeTestAssumeVCalls", "typeTestRes", "typeTests", "typeid", "typeidCompatibleVTable", "ueq", "uge", "ugt", "ule", "ult", "umax", "umin", "undef", "une", "uniformRetVal", "uniqueRetVal", "unknown", "unnamed_addr", "uno", "unordered", "unsat", "unwind", "uselistorder", "uselistorder_bb", "uwtable", "vFuncId", "vTableFuncs", "varFlags", "variable", "vcall_visibility", "virtFunc", "virtualConstProp", "visibility", "volatile", "vscale", "vscale_range", "weak", "weak_odr", "webkit_jscc", "willreturn", "win64cc", "within", "wpdRes", "wpdResolutions", "writeonly", "x", "x86_64_sysvcc", "x86_fastcallcc", "x86_intrcc", "x86_regcallcc", "x86_stdcallcc", "x86_thiscallcc", "x86_vectorcallcc", "xchg", "zeroext", "zeroinitializer"]
13
13
  end
14
14
 
15
15
  def self.types
16
- @types ||= Set.new ["double", "float", "fp128", "half", "label", "metadata", "ppc_fp128", "token", "void", "x86_fp80", "x86_mmx"]
16
+ @types ||= Set.new ["bfloat", "double", "float", "fp128", "half", "label", "metadata", "ppc_fp128", "ptr", "token", "void", "x86_amx", "x86_fp80", "x86_mmx"]
17
17
  end
18
18
 
19
19
  def self.instructions
@@ -182,6 +182,10 @@ module Rouge
182
182
 
183
183
  state :parameters do
184
184
  rule %r/`./m, Str::Escape
185
+ rule %r/\)/ do
186
+ token Punctuation
187
+ pop!(2) if in_state?(:interpol) # pop :parameters and :interpol
188
+ end
185
189
  rule %r/\s*?\n/, Text::Whitespace, :pop!
186
190
  rule %r/[;(){}\]]/, Punctuation, :pop!
187
191
  rule %r/[|=]/, Operator, :pop!
@@ -236,6 +240,8 @@ module Rouge
236
240
 
237
241
  rule %r/[-+*\/%=!.&|]/, Operator
238
242
  rule %r/[{}(),:;]/, Punctuation
243
+
244
+ rule %r/`$/, Str::Escape # line continuation
239
245
  end
240
246
  end
241
247
  end
@@ -15,109 +15,138 @@ module Rouge
15
15
  return true if text.shebang? 'praat'
16
16
  end
17
17
 
18
- keywords = %w(
19
- if then else elsif elif endif fi for from to endfor endproc while
20
- endwhile repeat until select plus minus demo assert stopwatch
21
- nocheck nowarn noprogress editor endeditor clearinfo
22
- )
23
-
24
- functions_string = %w(
25
- backslashTrigraphsToUnicode chooseDirectory chooseReadFile
26
- chooseWriteFile date demoKey do environment extractLine extractWord
27
- fixed info left mid percent readFile replace replace_regex right
28
- selected string unicodeToBackslashTrigraphs
29
- )
30
-
31
- functions_numeric = %w(
32
- abs appendFile appendFileLine appendInfo appendInfoLine arccos arccosh
33
- arcsin arcsinh arctan arctan2 arctanh barkToHertz beginPause
34
- beginSendPraat besselI besselK beta beta2 binomialP binomialQ boolean
35
- ceiling chiSquareP chiSquareQ choice comment cos cosh createDirectory
36
- deleteFile demoClicked demoClickedIn demoCommandKeyPressed
37
- demoExtraControlKeyPressed demoInput demoKeyPressed
38
- demoOptionKeyPressed demoShiftKeyPressed demoShow demoWaitForInput
39
- demoWindowTitle demoX demoY differenceLimensToPhon do editor endPause
40
- endSendPraat endsWith erb erbToHertz erf erfc exitScript exp
41
- extractNumber fileReadable fisherP fisherQ floor gaussP gaussQ hash
42
- hertzToBark hertzToErb hertzToMel hertzToSemitones imax imin
43
- incompleteBeta incompleteGammaP index index_regex integer invBinomialP
44
- invBinomialQ invChiSquareQ invFisherQ invGaussQ invSigmoid invStudentQ
45
- length ln lnBeta lnGamma log10 log2 max melToHertz min minusObject
46
- natural number numberOfColumns numberOfRows numberOfSelected
47
- objectsAreIdentical option optionMenu pauseScript
48
- phonToDifferenceLimens plusObject positive randomBinomial randomGauss
49
- randomInteger randomPoisson randomUniform real readFile removeObject
50
- rindex rindex_regex round runScript runSystem runSystem_nocheck
51
- selectObject selected semitonesToHertz sentence sentencetext sigmoid
52
- sin sinc sincpi sinh soundPressureToPhon sqrt startsWith studentP
53
- studentQ tan tanh text variableExists word writeFile writeFileLine
54
- writeInfo writeInfoLine
55
- )
56
-
57
- functions_array = %w(
58
- linear randomGauss randomInteger randomUniform zero
59
- )
60
-
61
- functions_matrix = %w(
62
- linear mul mul_fast mul_metal mul_nt mul_tn mul_tt outer peaks
63
- randomGamma randomGauss randomInteger randomUniform softmaxPerRow
64
- solve transpose zero
65
- )
66
-
67
- functions_string_vector = %w(
68
- empty fileNames folderNames readLinesFromFile splitByWhitespace
69
- )
70
-
71
- objects = %w(
72
- Activation AffineTransform AmplitudeTier Art Artword Autosegment
73
- BarkFilter BarkSpectrogram CCA Categories Cepstrogram Cepstrum
74
- Cepstrumc ChebyshevSeries ClassificationTable Cochleagram Collection
75
- ComplexSpectrogram Configuration Confusion ContingencyTable Corpus
76
- Correlation Covariance CrossCorrelationTable CrossCorrelationTableList
77
- CrossCorrelationTables DTW DataModeler Diagonalizer Discriminant
78
- Dissimilarity Distance Distributions DurationTier EEG ERP ERPTier
79
- EditCostsTable EditDistanceTable Eigen Excitation Excitations
80
- ExperimentMFC FFNet FeatureWeights FileInMemory FilesInMemory Formant
81
- FormantFilter FormantGrid FormantModeler FormantPoint FormantTier
82
- GaussianMixture HMM HMM_Observation HMM_ObservationSequence HMM_State
83
- HMM_StateSequence HMMObservation HMMObservationSequence HMMState
84
- HMMStateSequence Harmonicity ISpline Index Intensity IntensityTier
85
- IntervalTier KNN KlattGrid KlattTable LFCC LPC Label LegendreSeries
86
- LinearRegression LogisticRegression LongSound Ltas MFCC MSpline ManPages
87
- Manipulation Matrix MelFilter MelSpectrogram MixingMatrix Movie Network
88
- OTGrammar OTHistory OTMulti PCA PairDistribution ParamCurve Pattern
89
- Permutation Photo Pitch PitchModeler PitchTier PointProcess Polygon
90
- Polynomial PowerCepstrogram PowerCepstrum Procrustes RealPoint RealTier
91
- ResultsMFC Roots SPINET SSCP SVD Salience ScalarProduct Similarity
92
- SimpleString SortedSetOfString Sound Speaker Spectrogram Spectrum
93
- SpectrumTier SpeechSynthesizer SpellingChecker Strings StringsIndex
94
- Table TableOfReal TextGrid TextInterval TextPoint TextTier Tier
95
- Transition VocalTract VocalTractTier Weight WordList
96
- )
97
-
98
- variables_numeric = %w(
99
- all average e left macintosh mono pi praatVersion right stereo
100
- undefined unix windows
101
- )
102
-
103
- variables_string = %w(
104
- praatVersion tab shellDirectory homeDirectory
105
- preferencesDirectory newline temporaryDirectory
106
- defaultDirectory
107
- )
108
-
109
- object_attributes = %w(
110
- ncol nrow xmin ymin xmax ymax nx ny dx dy
111
- )
18
+ def self.keywords
19
+ @keywords ||= %w(
20
+ if then else elsif elif endif fi for from to endfor endproc while
21
+ endwhile repeat until select plus minus demo assert stopwatch
22
+ nocheck nowarn noprogress editor endeditor clearinfo
23
+ )
24
+ end
25
+
26
+ def self.functions_string
27
+ @functions_string ||= %w(
28
+ backslashTrigraphsToUnicode$ chooseDirectory$ chooseReadFile$
29
+ chooseWriteFile$ date$ demoKey$ do$ environment$ extractLine$ extractWord$
30
+ fixed$ info$ left$ mid$ percent$ readFile$ replace$ replace_regex$ right$
31
+ selected$ string$ unicodeToBackslashTrigraphs$
32
+ )
33
+ end
34
+
35
+ def self.functions_numeric
36
+ @functions_numeric ||= %w(
37
+ abs appendFile appendFileLine appendInfo appendInfoLine arccos arccosh
38
+ arcsin arcsinh arctan arctan2 arctanh barkToHertz beginPause
39
+ beginSendPraat besselI besselK beta beta2 binomialP binomialQ boolean
40
+ ceiling chiSquareP chiSquareQ choice comment cos cosh createDirectory
41
+ deleteFile demoClicked demoClickedIn demoCommandKeyPressed
42
+ demoExtraControlKeyPressed demoInput demoKeyPressed
43
+ demoOptionKeyPressed demoShiftKeyPressed demoShow demoWaitForInput
44
+ demoWindowTitle demoX demoY differenceLimensToPhon do editor endPause
45
+ endSendPraat endsWith erb erbToHertz erf erfc exitScript exp
46
+ extractNumber fileReadable fisherP fisherQ floor gaussP gaussQ hash
47
+ hertzToBark hertzToErb hertzToMel hertzToSemitones imax imin
48
+ incompleteBeta incompleteGammaP index index_regex integer invBinomialP
49
+ invBinomialQ invChiSquareQ invFisherQ invGaussQ invSigmoid invStudentQ
50
+ length ln lnBeta lnGamma log10 log2 max melToHertz min minusObject
51
+ natural number numberOfColumns numberOfRows numberOfSelected
52
+ objectsAreIdentical option optionMenu pauseScript
53
+ phonToDifferenceLimens plusObject positive randomBinomial randomGauss
54
+ randomInteger randomPoisson randomUniform real readFile removeObject
55
+ rindex rindex_regex round runScript runSystem runSystem_nocheck
56
+ selectObject selected semitonesToHertz sentence sentencetext sigmoid
57
+ sin sinc sincpi sinh soundPressureToPhon sqrt startsWith studentP
58
+ studentQ tan tanh text variableExists word writeFile writeFileLine
59
+ writeInfo writeInfoLine
60
+ )
61
+ end
62
+
63
+ def self.functions_array
64
+ @functions_array ||= %w(
65
+ linear# randomGauss# randomInteger# randomUniform# zero#
66
+ )
67
+ end
68
+
69
+ def self.functions_matrix
70
+ @functions_matrix ||= %w(
71
+ linear## mul## mul_fast## mul_metal## mul_nt## mul_tn## mul_tt## outer## peaks##
72
+ randomGamma## randomGauss## randomInteger## randomUniform## softmaxPerRow##
73
+ solve## transpose## zero##
74
+ )
75
+ end
76
+
77
+ def self.functions_string_vector
78
+ @functions_string_vector ||= %w(
79
+ empty$# fileNames$# folderNames$# readLinesFromFile$# splitByWhitespace$#
80
+ )
81
+ end
82
+
83
+ def self.functions_builtin
84
+ @functions_builtin ||=
85
+ self.functions_string |
86
+ self.functions_numeric |
87
+ self.functions_array |
88
+ self.functions_matrix |
89
+ self.functions_string_vector
90
+ end
91
+
92
+ def self.objects
93
+ @objects ||= %w(
94
+ Activation AffineTransform AmplitudeTier Art Artword Autosegment
95
+ BarkFilter BarkSpectrogram CCA Categories Cepstrogram Cepstrum
96
+ Cepstrumc ChebyshevSeries ClassificationTable Cochleagram Collection
97
+ ComplexSpectrogram Configuration Confusion ContingencyTable Corpus
98
+ Correlation Covariance CrossCorrelationTable CrossCorrelationTableList
99
+ CrossCorrelationTables DTW DataModeler Diagonalizer Discriminant
100
+ Dissimilarity Distance Distributions DurationTier EEG ERP ERPTier
101
+ EditCostsTable EditDistanceTable Eigen Excitation Excitations
102
+ ExperimentMFC FFNet FeatureWeights FileInMemory FilesInMemory Formant
103
+ FormantFilter FormantGrid FormantModeler FormantPoint FormantTier
104
+ GaussianMixture HMM HMM_Observation HMM_ObservationSequence HMM_State
105
+ HMM_StateSequence HMMObservation HMMObservationSequence HMMState
106
+ HMMStateSequence Harmonicity ISpline Index Intensity IntensityTier
107
+ IntervalTier KNN KlattGrid KlattTable LFCC LPC Label LegendreSeries
108
+ LinearRegression LogisticRegression LongSound Ltas MFCC MSpline ManPages
109
+ Manipulation Matrix MelFilter MelSpectrogram MixingMatrix Movie Network
110
+ OTGrammar OTHistory OTMulti PCA PairDistribution ParamCurve Pattern
111
+ Permutation Photo Pitch PitchModeler PitchTier PointProcess Polygon
112
+ Polynomial PowerCepstrogram PowerCepstrum Procrustes RealPoint RealTier
113
+ ResultsMFC Roots SPINET SSCP SVD Salience ScalarProduct Similarity
114
+ SimpleString SortedSetOfString Sound Speaker Spectrogram Spectrum
115
+ SpectrumTier SpeechSynthesizer SpellingChecker Strings StringsIndex
116
+ Table TableOfReal TextGrid TextInterval TextPoint TextTier Tier
117
+ Transition VocalTract VocalTractTier Weight WordList
118
+ )
119
+ end
120
+
121
+ def self.variables_numeric
122
+ @variables_numeric ||= %w(
123
+ all average e left macintosh mono pi praatVersion right stereo
124
+ undefined unix windows
125
+ )
126
+ end
127
+
128
+ def self.variables_string
129
+ @variables_string ||= %w(
130
+ praatVersion$ tab$ shellDirectory$ homeDirectory$
131
+ preferencesDirectory$ newline$ temporaryDirectory$
132
+ defaultDirectory$
133
+ )
134
+ end
135
+
136
+ def self.object_attributes
137
+ @object_attributes ||= %w(
138
+ ncol nrow xmin ymin xmax ymax nx ny dx dy
139
+ )
140
+ end
112
141
 
113
142
  state :root do
114
143
  rule %r/(\s+)(#.*?$)/ do
115
144
  groups Text, Comment::Single
116
145
  end
117
146
 
118
- rule %r/^#.*?$/, Comment::Single
119
- rule %r/;[^\n]*/, Comment::Single
120
- rule %r/\s+/, Text
147
+ rule %r/^#.*?$/, Comment::Single
148
+ rule %r/;[^\n]*/, Comment::Single
149
+ rule %r/\s+/, Text
121
150
 
122
151
  rule %r/(\bprocedure)(\s+)/ do
123
152
  groups Keyword, Text
@@ -129,12 +158,11 @@ module Rouge
129
158
  push :procedure_call
130
159
  end
131
160
 
132
- rule %r/@/, Name::Function, :procedure_call
161
+ rule %r/@/, Name::Function, :procedure_call
133
162
 
134
163
  mixin :function_call
135
164
 
136
165
  rule %r/\b(?:select all)\b/, Keyword
137
- rule %r/\b(?:#{keywords.join('|')})\b/, Keyword
138
166
 
139
167
  rule %r/(\bform\b)(\s+)([^\n]+)/ do
140
168
  groups Keyword, Text, Literal::String
@@ -156,10 +184,27 @@ module Rouge
156
184
 
157
185
  rule %r/"/, Literal::String, :string
158
186
 
159
- rule %r/\b(?:#{objects.join('|')})(?=\s+\S+\n)/, Name::Class, :string_unquoted
187
+ rule %r/\b([A-Z][a-zA-Z0-9]+)(?=\s+\S+\n)/ do |m|
188
+ match = m[0]
189
+ if self.class.objects.include?(match)
190
+ token Name::Class
191
+ push :string_unquoted
192
+ else
193
+ token Keyword
194
+ end
195
+ end
160
196
 
161
197
  rule %r/\b(?=[A-Z])/, Text, :command
162
198
  rule %r/(\.{3}|[)(,\$])/, Punctuation
199
+
200
+ rule %r/[a_z]+/ do |m|
201
+ match = m[0]
202
+ if self.class.keywords.include?(match)
203
+ token Keyword
204
+ else
205
+ token Text
206
+ end
207
+ end
163
208
  end
164
209
 
165
210
  state :command do
@@ -178,7 +223,7 @@ module Rouge
178
223
  push :comma_list
179
224
  end
180
225
 
181
- rule %r/[\s]/, Text, :pop!
226
+ rule %r/[\s]/, Text, :pop!
182
227
  end
183
228
 
184
229
  state :procedure_call do
@@ -186,7 +231,7 @@ module Rouge
186
231
 
187
232
  rule %r/(:|\s*\()/, Punctuation, :pop!
188
233
 
189
- rule %r/'/, Name::Function
234
+ rule %r/'/, Name::Function
190
235
  rule %r/[^:\('\s]+/, Name::Function
191
236
 
192
237
  rule %r/(?=\s+)/ do
@@ -205,11 +250,17 @@ module Rouge
205
250
  end
206
251
 
207
252
  state :function_call do
208
- rule %r/\b(#{functions_string.join('|')})\$(?=\s*[:(])/, Name::Function, :function
209
- rule %r/\b(#{functions_array.join('|')})#(?=\s*[:(])/, Name::Function, :function
210
- rule %r/\b(#{functions_matrix.join('|')})##(?=\s*[:(])/, Name::Function, :function
211
- rule %r/\b(#{functions_string_vector.join('|')})\$#(?=\s*[:(])/, Name::Function, :function
212
- rule %r/\b(#{functions_numeric.join('|')})(?=\s*[:(])/, Name::Function, :function
253
+ rule %r/\b([a-z][a-zA-Z0-9_.]+)(\$#|##|\$|#)?(?=\s*[:(])/ do |m|
254
+ match = m[0]
255
+ if self.class.functions_builtin.include?(match)
256
+ token Name::Function
257
+ push :function
258
+ elsif self.class.keywords.include?(match)
259
+ token Keyword
260
+ else
261
+ token Operator::Word
262
+ end
263
+ end
213
264
  end
214
265
 
215
266
  state :function do
@@ -230,7 +281,7 @@ module Rouge
230
281
  rule %r/\s*[\]\})\n]/, Text, :pop!
231
282
 
232
283
  rule %r/\s+/, Text
233
- rule %r/"/, Literal::String, :string
284
+ rule %r/"/, Literal::String, :string
234
285
  rule %r/\b(if|then|else|fi|endif)\b/, Keyword
235
286
 
236
287
  mixin :function_call
@@ -263,15 +314,28 @@ module Rouge
263
314
  mixin :operator
264
315
  mixin :number
265
316
 
266
- rule %r/\b(?:#{variables_string.join('|')})\$/, Name::Builtin
267
- rule %r/\b(?:#{variables_numeric.join('|')})(?!\$)\b/, Name::Builtin
317
+ rule %r/\b([A-Z][a-zA-Z0-9]+)_/ do |m|
318
+ match = m[1]
319
+ if (['Object'] | self.class.objects).include?(match)
320
+ token Name::Builtin
321
+ push :object_reference
322
+ else
323
+ token Name::Variable
324
+ end
325
+ end
268
326
 
269
- rule %r/\b(Object|#{objects.join('|')})_/ do
270
- token Name::Builtin
271
- push :object_reference
327
+ rule %r/\.?[a-z][a-zA-Z0-9_.]*(\$#|##|\$|#)?/ do |m|
328
+ match = m[0]
329
+ if self.class.variables_string.include?(match) ||
330
+ self.class.variables_numeric.include?(match)
331
+ token Name::Builtin
332
+ elsif self.class.keywords.include?(match)
333
+ token Keyword
334
+ else
335
+ token Name::Variable
336
+ end
272
337
  end
273
338
 
274
- rule %r/\.?[a-z][a-zA-Z0-9_.]*(\$#|##|\$|#)?/, Text
275
339
  rule %r/[\[\]]/, Text, :comma_list
276
340
  mixin :string_interpolated
277
341
  end
@@ -284,7 +348,13 @@ module Rouge
284
348
  mixin :string_interpolated
285
349
  rule %r/([a-z][a-zA-Z0-9_]*|\d+)/, Name::Builtin
286
350
 
287
- rule %r/\.(#{object_attributes.join('|')})\b/, Name::Builtin, :pop!
351
+ rule %r/\.([a-z]+)\b/ do |m|
352
+ match = m[1]
353
+ if self.class.object_attributes.include?(match)
354
+ token Name::Builtin
355
+ pop!
356
+ end
357
+ end
288
358
 
289
359
  rule %r/\$/, Name::Builtin
290
360
  rule %r/\[/, Text, :pop!
@@ -292,7 +362,7 @@ module Rouge
292
362
 
293
363
  state :operator do
294
364
  # This rule incorrectly matches === or +++++, which are not operators
295
- rule %r/([+\/*<>=!-]=?|[&*|][&*|]?|\^|<>)/, Operator
365
+ rule %r/([+\/*<>=!-]=?|[&*|][&*|]?|\^|<>)/, Operator
296
366
  rule %r/(?<![\w.])(and|or|not|div|mod)(?![\w.])/, Operator::Word
297
367
  end
298
368
 
@@ -302,23 +372,23 @@ module Rouge
302
372
 
303
373
  state :string_unquoted do
304
374
  rule %r/\n\s*\.{3}/, Punctuation
305
- rule %r/\n/, Text, :pop!
306
- rule %r/\s/, Text
375
+ rule %r/\n/, Text, :pop!
376
+ rule %r/\s/, Text
307
377
 
308
378
  mixin :string_interpolated
309
379
 
310
- rule %r/'/, Literal::String
311
- rule %r/[^'\n]+/, Literal::String
380
+ rule %r/'/, Literal::String
381
+ rule %r/[^'\n]+/, Literal::String
312
382
  end
313
383
 
314
384
  state :string do
315
385
  rule %r/\n\s*\.{3}/, Punctuation
316
- rule %r/"/, Literal::String, :pop!
386
+ rule %r/"/, Literal::String, :pop!
317
387
 
318
388
  mixin :string_interpolated
319
389
 
320
- rule %r/'/, Literal::String
321
- rule %r/[^'"\n]+/, Literal::String
390
+ rule %r/'/, Literal::String
391
+ rule %r/[^'"\n]+/, Literal::String
322
392
  end
323
393
 
324
394
  state :old_form do
@@ -363,7 +433,6 @@ module Rouge
363
433
 
364
434
  rule %r/\bendform\b/, Keyword, :pop!
365
435
  end
366
-
367
436
  end
368
437
  end
369
438
  end
@@ -27,7 +27,7 @@ module Rouge
27
27
  rule %r/(.*?)(\\\n)/ do
28
28
  groups Text, Str::Escape
29
29
  end
30
- rule %r/(.*)'/, Text, :pop!
30
+ rule %r/(.*)'?/, Text, :pop!
31
31
  end
32
32
  end
33
33
  end
@@ -5,7 +5,7 @@ module Rouge
5
5
  module Lexers
6
6
  class Vala < RegexLexer
7
7
  tag 'vala'
8
- filenames '*.vala'
8
+ filenames '*.vala', '*.vapi'
9
9
  mimetypes 'text/x-vala'
10
10
 
11
11
  title "Vala"
@@ -175,7 +175,7 @@ module Rouge
175
175
 
176
176
  state :block_nodes do
177
177
  # implicit key
178
- rule %r/([^#,:?\[\]{}"'\n]+)(:)(?=\s|$)/ do |m|
178
+ rule %r/([^#,?\[\]{}"'\n]+)(:)(?=\s|$)/ do |m|
179
179
  groups Name::Attribute, Punctuation::Indicator
180
180
  set_indent m[0], :implicit => true
181
181
  end
data/lib/rouge/version.rb CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  module Rouge
5
5
  def self.version
6
- "4.0.0"
6
+ "4.0.1"
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rouge
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeanine Adkisson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-06 00:00:00.000000000 Z
11
+ date: 2022-12-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Rouge aims to a be a simple, easy-to-extend drop-in replacement for pygments.
14
14
  email: