nasl 0.2.0 → 0.3.0
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 +13 -5
- data/Rakefile +1 -1
- data/lib/nasl/grammar.racc +6 -2
- data/lib/nasl/parser/array.rb +2 -0
- data/lib/nasl/parser/foreach.rb +3 -3
- data/lib/nasl/version.rb +1 -1
- data/test/unit/parser/test_array.rb +4 -0
- data/test/unit/parser/test_foreach.rb +9 -0
- data/test/unit/parser/test_if.rb +9 -0
- data/test/unit/parser/test_while.rb +38 -0
- metadata +17 -15
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZWMwMTc1ZTg3N2ZmZDJjYzBkN2U3NDljZWM0MGMxNDUxNzc4ZmI2Yg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MGZmMWYyMmVkOTA3ZjhlZTUwNGY4YWI3OGJmYzA0YzlmNThlMjg0NQ==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
Nzc0ZjcyMTk5ZjZkNzgxZmYxMTVhNzRmNjE0ZDJhOWNlNTEwMTllMzk1NjYz
|
10
|
+
ODBhNTc1NjIxYzhkNmJjZTVmMDJkMGMzMDg5YzViYzBiMjZkZTA1ZmFjM2Q1
|
11
|
+
ZjRhMDFkZDg0ZDFkY2MwYTYwOGM3YWU3MzFiZjMxMmU1NWVhMWM=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MWRhZDY3MjQ4NDg5ZjQ5ZTExOTk3MjIyODJlN2IzNGZhNTliOTAwODA1ZmM4
|
14
|
+
MWM5OWRkNzdmNzgyZDM3Y2JkOTMyNGY0ZTI1YzdlMWUxMTgzMWZmNjAxNzJj
|
15
|
+
NWE2ZDNjZDQzMTI0MWE4M2M5ODY1YzQ2MDhhOTM3M2MyYzIwZjQ=
|
data/Rakefile
CHANGED
data/lib/nasl/grammar.racc
CHANGED
@@ -221,9 +221,9 @@ rule
|
|
221
221
|
;
|
222
222
|
|
223
223
|
foreach : FOREACH ident LPAREN expr RPAREN statement
|
224
|
-
{ n(:Foreach, val[1], val[3], val[5]) }
|
224
|
+
{ n(:Foreach, val[0], val[1], val[3], val[5]) }
|
225
225
|
| FOREACH LPAREN ident IN expr RPAREN statement
|
226
|
-
{ n(:Foreach, val[2], val[4], val[6]) }
|
226
|
+
{ n(:Foreach, val[0], val[2], val[4], val[6]) }
|
227
227
|
;
|
228
228
|
|
229
229
|
if : IF LPAREN expr RPAREN statement
|
@@ -382,10 +382,14 @@ rule
|
|
382
382
|
{ n(:KeyValuePair, *val) }
|
383
383
|
| int COLON expr
|
384
384
|
{ n(:KeyValuePair, *val) }
|
385
|
+
| ident COLON expr
|
386
|
+
{ n(:KeyValuePair, *val) }
|
385
387
|
| string COLON ref
|
386
388
|
{ n(:KeyValuePair, *val) }
|
387
389
|
| int COLON ref
|
388
390
|
{ n(:KeyValuePair, *val) }
|
391
|
+
| ident COLON ref
|
392
|
+
{ n(:KeyValuePair, *val) }
|
389
393
|
;
|
390
394
|
|
391
395
|
kv_pairs : kv_pair COMMA kv_pairs
|
data/lib/nasl/parser/array.rb
CHANGED
data/lib/nasl/parser/foreach.rb
CHANGED
data/lib/nasl/version.rb
CHANGED
@@ -40,4 +40,13 @@ class TestForeach < Test::Unit::TestCase
|
|
40
40
|
'<tree><foreach><identifier name="foo"/><lvalue><identifier name="bar"/></lvalue><empty/></foreach></tree>'
|
41
41
|
)
|
42
42
|
end
|
43
|
+
|
44
|
+
# Check that the 'foreach' itself is in the tokens list
|
45
|
+
def test_foreach_in_tokens
|
46
|
+
tree = parse(%q|foreach foo (bar);|)
|
47
|
+
assert_equal(
|
48
|
+
tree.all(:Foreach).first.tokens.first.to_s,
|
49
|
+
"foreach"
|
50
|
+
)
|
51
|
+
end
|
43
52
|
end
|
data/test/unit/parser/test_if.rb
CHANGED
@@ -82,4 +82,13 @@ class TestIf < Test::Unit::TestCase
|
|
82
82
|
'<tree><if><integer value="1"/><if><integer value="1"/><call><lvalue><identifier name="foo"/></lvalue></call></if><call><identifier name="bar"/></call></if></tree>'
|
83
83
|
)
|
84
84
|
end
|
85
|
+
|
86
|
+
# Check that the 'if' itself is in the tokens list
|
87
|
+
def test_if_in_tokens
|
88
|
+
tree = parse(%q|if (foo) {};|)
|
89
|
+
assert_equal(
|
90
|
+
tree.all(:If).first.tokens.first.to_s,
|
91
|
+
"if"
|
92
|
+
)
|
93
|
+
end
|
85
94
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
################################################################################
|
2
|
+
# Copyright (c) 2011-2014, Tenable Network Security
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use in source and binary forms, with or without
|
6
|
+
# modification, are permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of source code must retain the above copyright notice, this
|
9
|
+
# list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
12
|
+
# this list of conditions and the following disclaimer in the documentation
|
13
|
+
# and/or other materials provided with the distribution.
|
14
|
+
#
|
15
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
16
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
17
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
18
|
+
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
19
|
+
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
20
|
+
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
21
|
+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
22
|
+
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
23
|
+
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
24
|
+
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
25
|
+
################################################################################
|
26
|
+
|
27
|
+
class TestWhile < Test::Unit::TestCase
|
28
|
+
include Nasl::Test
|
29
|
+
|
30
|
+
# Check that the 'while' itself is in the tokens list
|
31
|
+
def test_while_in_tokens
|
32
|
+
tree = parse(%q|while (foo) {}|)
|
33
|
+
assert_equal(
|
34
|
+
tree.all(:While).first.tokens.first.to_s,
|
35
|
+
"while"
|
36
|
+
)
|
37
|
+
end
|
38
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nasl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mak Kolybabi
|
@@ -10,62 +10,62 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2015-09-04 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: racc
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '1.4'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- -
|
26
|
+
- - ~>
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: '1.4'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: rake
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- -
|
33
|
+
- - ~>
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: '10.1'
|
36
36
|
type: :development
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- -
|
40
|
+
- - ~>
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '10.1'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: builder
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - ~>
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '3.1'
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- -
|
54
|
+
- - ~>
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: '3.1'
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: rainbow
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- -
|
61
|
+
- - ~>
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: '2.0'
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- -
|
68
|
+
- - ~>
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '2.0'
|
71
71
|
description: A language parser for the Nessus Attack Scripting Language. Supporting
|
@@ -79,8 +79,8 @@ executables:
|
|
79
79
|
extensions: []
|
80
80
|
extra_rdoc_files: []
|
81
81
|
files:
|
82
|
-
-
|
83
|
-
-
|
82
|
+
- .gitignore
|
83
|
+
- .travis.yml
|
84
84
|
- Gemfile
|
85
85
|
- Gemfile.ci
|
86
86
|
- README.md
|
@@ -162,6 +162,7 @@ files:
|
|
162
162
|
- test/unit/parser/test_repetition.rb
|
163
163
|
- test/unit/parser/test_return.rb
|
164
164
|
- test/unit/parser/test_string.rb
|
165
|
+
- test/unit/parser/test_while.rb
|
165
166
|
- test/unit/parser/test_whitespace.rb
|
166
167
|
- test/unit/test_context.rb
|
167
168
|
- test/unit/tokenizer/test_comment.rb
|
@@ -179,17 +180,17 @@ require_paths:
|
|
179
180
|
- lib
|
180
181
|
required_ruby_version: !ruby/object:Gem::Requirement
|
181
182
|
requirements:
|
182
|
-
- -
|
183
|
+
- - ! '>='
|
183
184
|
- !ruby/object:Gem::Version
|
184
185
|
version: '0'
|
185
186
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
186
187
|
requirements:
|
187
|
-
- -
|
188
|
+
- - ! '>='
|
188
189
|
- !ruby/object:Gem::Version
|
189
190
|
version: '0'
|
190
191
|
requirements: []
|
191
192
|
rubyforge_project: nasl
|
192
|
-
rubygems_version: 2.
|
193
|
+
rubygems_version: 2.4.6
|
193
194
|
signing_key:
|
194
195
|
specification_version: 4
|
195
196
|
summary: A language parser for the Nessus Attack Scripting Language.
|
@@ -216,6 +217,7 @@ test_files:
|
|
216
217
|
- test/unit/parser/test_repetition.rb
|
217
218
|
- test/unit/parser/test_return.rb
|
218
219
|
- test/unit/parser/test_string.rb
|
220
|
+
- test/unit/parser/test_while.rb
|
219
221
|
- test/unit/parser/test_whitespace.rb
|
220
222
|
- test/unit/test_context.rb
|
221
223
|
- test/unit/tokenizer/test_comment.rb
|