tla-parser-s 0.2.2 → 0.2.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3e456bcc271a0ec3f6a7b5f71112eb11b33ae320
4
- data.tar.gz: b4dfe0d536c58a28f9963c149d350e291583dfdd
3
+ metadata.gz: ebb55209f382a77488d0541f147f82616795a2b7
4
+ data.tar.gz: 9b3b143c43fb410967b4e2a2e88f67673207e63b
5
5
  SHA512:
6
- metadata.gz: 8401edf952eedba3bfc76ae0a08ffbab159dbd90481c82d48de19123bb90a9167369d01d624d16c63ed7c43956371f18ca182e9aedcfdf657ea5dab2a67f9bdf
7
- data.tar.gz: c2e9d8063ef23e14c45f430568281f58e10b3eb6c72af478cb420828ca3eceb4443faa21e6ed0e312a012233149e3e2f0d35ad2a478ad9be22b76b171ba83eba
6
+ metadata.gz: df3858b3f83b89c097f715a1987cf56f7a319807fd8dafdacc1ff83876fe61803de8f0b1d1a9857406cf5d9f41b83cf31c23065c72e524f2c4448c80ed28f82e
7
+ data.tar.gz: 55fea89b643ea8d308c3b518e5f905018b2d990dbabd650e82ba7db9667836cd115eda59ed524a3ae29c586a2e5310505ffb488684640a004d2e767a02db8be4
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  <link href="../site.css" rel="stylesheet"></link>
2
- [Up](../index.php) [Readme](README.html) [Releases](RELEASES.html) [Todo](TODO.html)
2
+ [Readme](README.md) [Releases](RELEASES.md) [Todo](TODO.md)
3
3
 
4
4
 
5
- # tla-parser-s - TLA+ language parser (for tla-sbuilder) - $Release:0.2.2$
5
+ # tla-parser-s - TLA+ language parser (for tla-sbuilder) - $Release:0.2.5$
6
6
 
7
7
  A Ruby library for parsing
8
8
  [TLA+ language](http://research.microsoft.com/en-us/um/people/lamport/tla/book.html).
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.2
1
+ 0.2.5
@@ -148,14 +148,21 @@ end
148
148
 
149
149
 
150
150
  rule unit_expression
151
- sequence_expression / set_expression / set_expression_map / set_constructor / record_expression / operator_expression / quantify_expression / choose_expression
152
- / function_expression
153
- / let_expression
154
- / if_expression
155
- / identifier
156
- / record_self
157
- / original_value
158
- / string / integer / ( '(' space? expression space? ')' <ParenthesisExpression>) <UnitExpression>
151
+ sequence_expression
152
+ / set_expression
153
+ / set_expression_map
154
+ / set_constructor
155
+ / record_expression
156
+ / operator_expression
157
+ / quantify_expression
158
+ / choose_expression
159
+ / function_expression
160
+ / let_expression
161
+ / if_expression
162
+ / identifier / 'DOMAIN' space* identifier <Identifier>
163
+ / record_self
164
+ / original_value
165
+ / string / integer / ( '(' space? expression space? ')' <ParenthesisExpression>) <UnitExpression>
159
166
 
160
167
  end
161
168
 
@@ -250,6 +257,7 @@ rule set_constructor
250
257
  '{' space* expression_list? space* '}' space* <SetConstructor>
251
258
  end
252
259
 
260
+
253
261
  rule bound_expression
254
262
  identifier space* '\in' space+ 'DOMAIN'? space? expression space* <BoundInExpression>
255
263
  end
@@ -0,0 +1 @@
1
+ op_domain(rec) == "x" \in DOMAIN rec \/ op_let
@@ -267,6 +267,9 @@ describe TlaParserS::Parser do
267
267
  # manually traverse quantified expression
268
268
  quantified_expression = node.quantified_expression.traverse { |m, node_type, enode, node_val| m.concat( expression_value(node_type, enode, node_val )) }
269
269
  "#{node_val} #{binds.join(', ')} : #{quantified_expression}"
270
+
271
+ when "BoundInExpression"
272
+ raise "BoundInExpression missing implemetation"
270
273
  when "IntegerValue"
271
274
  "#{node_val}"
272
275
  else
@@ -1684,6 +1687,29 @@ describe TlaParserS::Parser do
1684
1687
  :expression => "TRUE"
1685
1688
  },
1686
1689
  },
1690
+ {
1691
+ :str => 'operator(rec) == "x" \in rec',
1692
+ :desc => "in-set",
1693
+ :start => :operator,
1694
+ :exception => nil,
1695
+ :debug => false,
1696
+ :expect => {
1697
+ :parameters=>{:node_type=>"Parameters", :value=>[{:node_type=>"Identifier", :value=>'rec'}]},
1698
+ :expression => '"x"\\inrec'
1699
+ },
1700
+ },
1701
+
1702
+ {
1703
+ :str => 'operator(rec) == "x" \in DOMAIN rec',
1704
+ :desc => "in-set",
1705
+ :start => :operator,
1706
+ :exception => nil,
1707
+ :debug => false,
1708
+ :expect => {
1709
+ :parameters=>{:node_type=>"Parameters", :value=>[{:node_type=>"Identifier", :value=>'rec'}]},
1710
+ :expression => '"x"\\inDOMAIN rec'
1711
+ },
1712
+ },
1687
1713
 
1688
1714
  {
1689
1715
  :str => "itWork( param1 ) == TRUE",
@@ -274,6 +274,12 @@ describe TlaParserS::Resolver do
274
274
  :expect => [ "op_let.tla", "var4.tla", "directives.tla", "directives.cfg" ]
275
275
  },
276
276
 
277
+ {
278
+ :desc => "Domain expression",
279
+ :entrypoints => ["op_domain"],
280
+ :expect => [ "op_domain.tla", "op_let.tla", "directives.tla", "var4.tla", "directives.cfg" ]
281
+ },
282
+
277
283
 
278
284
  {
279
285
  :desc => "RECURSIVE directive",
@@ -34,8 +34,9 @@ EOF
34
34
 
35
35
  s.required_ruby_version = '~> 2'
36
36
 
37
+ s.add_runtime_dependency 'ffi', '~>1.9', ">=1.9.18"
37
38
  s.add_runtime_dependency 'thor', '~>0.19', ">=0.19.1"
38
- s.add_runtime_dependency 'treetop', '~>1.6', ">=1.6.3"
39
-
39
+ s.add_runtime_dependency 'treetop', '~>1.6', ">=1.6.3"
40
+
40
41
 
41
42
  end
metadata CHANGED
@@ -1,15 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tla-parser-s
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - jarjuk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-02 00:00:00.000000000 Z
11
+ date: 2017-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ffi
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.9'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.9.18
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.9'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.9.18
13
33
  - !ruby/object:Gem::Dependency
14
34
  name: thor
15
35
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +114,7 @@ files:
94
114
  - spec/fixtures/resolver1/op2.tla
95
115
  - spec/fixtures/resolver1/op3.tla
96
116
  - spec/fixtures/resolver1/op4.tla
117
+ - spec/fixtures/resolver1/op_domain.tla
97
118
  - spec/fixtures/resolver1/op_let.tla
98
119
  - spec/fixtures/resolver1/op_tail_chg.tla
99
120
  - spec/fixtures/resolver1/proc1.tla
@@ -157,9 +178,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
178
  version: '0'
158
179
  requirements: []
159
180
  rubyforge_project:
160
- rubygems_version: 2.2.2
181
+ rubygems_version: 2.6.14
161
182
  signing_key:
162
183
  specification_version: 4
163
184
  summary: Treetop parser & sematic routines to resolve modules+
164
185
  test_files: []
165
- has_rdoc: