tla-parser-s 0.2.2 → 0.2.5

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
  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: