unparser 0.4.6 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -2
  3. data/bin/unparser +1 -1
  4. data/lib/unparser.rb +117 -62
  5. data/lib/unparser/ast.rb +0 -1
  6. data/lib/unparser/ast/local_variable_scope.rb +6 -76
  7. data/lib/unparser/buffer.rb +19 -16
  8. data/lib/unparser/cli.rb +84 -77
  9. data/lib/unparser/{cli/color.rb → color.rb} +0 -13
  10. data/lib/unparser/comments.rb +0 -26
  11. data/lib/unparser/constants.rb +4 -53
  12. data/lib/unparser/diff.rb +98 -0
  13. data/lib/unparser/dsl.rb +0 -32
  14. data/lib/unparser/emitter.rb +24 -425
  15. data/lib/unparser/emitter/alias.rb +2 -8
  16. data/lib/unparser/emitter/args.rb +45 -0
  17. data/lib/unparser/emitter/argument.rb +8 -166
  18. data/lib/unparser/emitter/array.rb +27 -0
  19. data/lib/unparser/emitter/array_pattern.rb +29 -0
  20. data/lib/unparser/emitter/assignment.rb +36 -127
  21. data/lib/unparser/emitter/begin.rb +9 -84
  22. data/lib/unparser/emitter/binary.rb +7 -20
  23. data/lib/unparser/emitter/block.rb +57 -41
  24. data/lib/unparser/emitter/case.rb +6 -48
  25. data/lib/unparser/emitter/case_guard.rb +27 -0
  26. data/lib/unparser/emitter/case_match.rb +40 -0
  27. data/lib/unparser/emitter/cbase.rb +1 -3
  28. data/lib/unparser/emitter/class.rb +6 -26
  29. data/lib/unparser/emitter/const_pattern.rb +24 -0
  30. data/lib/unparser/emitter/def.rb +7 -51
  31. data/lib/unparser/emitter/defined.rb +2 -12
  32. data/lib/unparser/emitter/dstr.rb +22 -0
  33. data/lib/unparser/emitter/dsym.rb +41 -0
  34. data/lib/unparser/emitter/flipflop.rb +11 -10
  35. data/lib/unparser/emitter/float.rb +29 -0
  36. data/lib/unparser/emitter/flow_modifier.rb +8 -55
  37. data/lib/unparser/emitter/for.rb +5 -19
  38. data/lib/unparser/emitter/hash.rb +74 -0
  39. data/lib/unparser/emitter/hash_pattern.rb +67 -0
  40. data/lib/unparser/emitter/hookexe.rb +5 -11
  41. data/lib/unparser/emitter/if.rb +9 -73
  42. data/lib/unparser/emitter/in_match.rb +21 -0
  43. data/lib/unparser/emitter/in_pattern.rb +34 -0
  44. data/lib/unparser/emitter/index.rb +21 -88
  45. data/lib/unparser/emitter/kwbegin.rb +31 -0
  46. data/lib/unparser/emitter/lambda.rb +0 -8
  47. data/lib/unparser/emitter/masgn.rb +20 -0
  48. data/lib/unparser/emitter/match.rb +3 -17
  49. data/lib/unparser/emitter/match_alt.rb +23 -0
  50. data/lib/unparser/emitter/match_as.rb +21 -0
  51. data/lib/unparser/emitter/match_rest.rb +26 -0
  52. data/lib/unparser/emitter/match_var.rb +19 -0
  53. data/lib/unparser/emitter/mlhs.rb +40 -0
  54. data/lib/unparser/emitter/module.rb +3 -9
  55. data/lib/unparser/emitter/op_assign.rb +12 -27
  56. data/lib/unparser/emitter/pin.rb +19 -0
  57. data/lib/unparser/emitter/primitive.rb +93 -0
  58. data/lib/unparser/emitter/range.rb +35 -0
  59. data/lib/unparser/emitter/regexp.rb +35 -0
  60. data/lib/unparser/emitter/repetition.rb +17 -57
  61. data/lib/unparser/emitter/rescue.rb +1 -97
  62. data/lib/unparser/emitter/root.rb +17 -1
  63. data/lib/unparser/emitter/send.rb +10 -219
  64. data/lib/unparser/emitter/simple.rb +33 -0
  65. data/lib/unparser/emitter/splat.rb +2 -18
  66. data/lib/unparser/emitter/super.rb +1 -29
  67. data/lib/unparser/emitter/undef.rb +1 -9
  68. data/lib/unparser/emitter/variable.rb +1 -31
  69. data/lib/unparser/emitter/xstr.rb +72 -0
  70. data/lib/unparser/emitter/yield.rb +1 -9
  71. data/lib/unparser/generation.rb +250 -0
  72. data/lib/unparser/node_details.rb +21 -0
  73. data/lib/unparser/node_details/send.rb +62 -0
  74. data/lib/unparser/node_helpers.rb +45 -6
  75. data/lib/unparser/validation.rb +151 -0
  76. data/lib/unparser/writer.rb +15 -0
  77. data/lib/unparser/writer/binary.rb +99 -0
  78. data/lib/unparser/writer/dynamic_string.rb +233 -0
  79. data/lib/unparser/writer/resbody.rb +40 -0
  80. data/lib/unparser/writer/rescue.rb +39 -0
  81. data/lib/unparser/writer/send.rb +124 -0
  82. data/lib/unparser/{emitter → writer}/send/attribute_assignment.rb +11 -26
  83. data/lib/unparser/writer/send/binary.rb +27 -0
  84. data/lib/unparser/writer/send/conditional.rb +25 -0
  85. data/lib/unparser/writer/send/regular.rb +33 -0
  86. data/lib/unparser/{emitter → writer}/send/unary.rb +10 -17
  87. metadata +151 -100
  88. data/.circleci/config.yml +0 -49
  89. data/.gitignore +0 -37
  90. data/.rspec +0 -4
  91. data/.rubocop.yml +0 -9
  92. data/Changelog.md +0 -150
  93. data/Gemfile +0 -11
  94. data/Gemfile.lock +0 -176
  95. data/LICENSE +0 -20
  96. data/Rakefile +0 -22
  97. data/config/devtools.yml +0 -2
  98. data/config/flay.yml +0 -3
  99. data/config/flog.yml +0 -2
  100. data/config/mutant.yml +0 -6
  101. data/config/reek.yml +0 -98
  102. data/config/rubocop.yml +0 -122
  103. data/config/yardstick.yml +0 -2
  104. data/lib/unparser/cli/differ.rb +0 -152
  105. data/lib/unparser/cli/source.rb +0 -267
  106. data/lib/unparser/emitter/empty.rb +0 -23
  107. data/lib/unparser/emitter/ensure.rb +0 -37
  108. data/lib/unparser/emitter/literal.rb +0 -10
  109. data/lib/unparser/emitter/literal/array.rb +0 -29
  110. data/lib/unparser/emitter/literal/dynamic.rb +0 -53
  111. data/lib/unparser/emitter/literal/dynamic_body.rb +0 -132
  112. data/lib/unparser/emitter/literal/execute_string.rb +0 -38
  113. data/lib/unparser/emitter/literal/hash.rb +0 -156
  114. data/lib/unparser/emitter/literal/primitive.rb +0 -145
  115. data/lib/unparser/emitter/literal/range.rb +0 -36
  116. data/lib/unparser/emitter/literal/regexp.rb +0 -114
  117. data/lib/unparser/emitter/literal/singleton.rb +0 -26
  118. data/lib/unparser/emitter/meta.rb +0 -16
  119. data/lib/unparser/emitter/redo.rb +0 -25
  120. data/lib/unparser/emitter/resbody.rb +0 -76
  121. data/lib/unparser/emitter/retry.rb +0 -25
  122. data/lib/unparser/emitter/send/binary.rb +0 -57
  123. data/lib/unparser/emitter/send/conditional.rb +0 -40
  124. data/lib/unparser/emitter/send/regular.rb +0 -40
  125. data/lib/unparser/preprocessor.rb +0 -159
  126. data/spec/integration/unparser/corpus_spec.rb +0 -111
  127. data/spec/integrations.yml +0 -92
  128. data/spec/spec_helper.rb +0 -20
  129. data/spec/unit/unparser/buffer/append_spec.rb +0 -24
  130. data/spec/unit/unparser/buffer/append_without_prefix_spec.rb +0 -23
  131. data/spec/unit/unparser/buffer/capture_content_spec.rb +0 -17
  132. data/spec/unit/unparser/buffer/content_spec.rb +0 -38
  133. data/spec/unit/unparser/buffer/fresh_line_spec.rb +0 -20
  134. data/spec/unit/unparser/buffer/indent_spec.rb +0 -20
  135. data/spec/unit/unparser/buffer/nl_spec.rb +0 -16
  136. data/spec/unit/unparser/buffer/unindent_spec.rb +0 -20
  137. data/spec/unit/unparser/comments/consume_spec.rb +0 -22
  138. data/spec/unit/unparser/comments/take_all_spec.rb +0 -19
  139. data/spec/unit/unparser/comments/take_before_spec.rb +0 -46
  140. data/spec/unit/unparser/comments/take_eol_comments_spec.rb +0 -32
  141. data/spec/unit/unparser/emitter/class_methods/handle_spec.rb +0 -17
  142. data/spec/unit/unparser_spec.rb +0 -1847
  143. data/unparser.gemspec +0 -30
@@ -1,49 +0,0 @@
1
- defaults: &defaults
2
- working_directory: ~/unparser
3
- docker:
4
- - image: circleci/ruby:2.5.5
5
- version: 2
6
- jobs:
7
- unit_specs:
8
- <<: *defaults
9
- steps:
10
- - checkout
11
- - run: bundle install
12
- - run: bundle exec rspec spec/unit
13
- integration_specs:
14
- <<: *defaults
15
- steps:
16
- - checkout
17
- - run: bundle install
18
- - run: bundle exec rspec spec/integration
19
- metrics:
20
- <<: *defaults
21
- steps:
22
- - checkout
23
- - run: bundle install
24
- - run: bundle exec rake metrics:rubocop
25
- - run: bundle exec rake metrics:reek
26
- - run: bundle exec rake metrics:flay
27
- - run: bundle exec rake metrics:flog
28
- mutant:
29
- <<: *defaults
30
- steps:
31
- - checkout
32
- - run: bundle install
33
- - run: |
34
- bundle \
35
- exec \
36
- mutant \
37
- --ignore-subject 'Unparser::AST::LocalVariableScope*' \
38
- --since origin/master \
39
- --zombie \
40
- -- \
41
- 'Unparser*'
42
- workflows:
43
- version: 2
44
- test:
45
- jobs:
46
- - unit_specs
47
- - integration_specs
48
- - metrics
49
- - mutant
data/.gitignore DELETED
@@ -1,37 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.sw[op]
15
-
16
- ## Rubinius
17
- *.rbc
18
- .rbx
19
-
20
- ## PROJECT::GENERAL
21
- *.gem
22
- coverage
23
- profiling
24
- turbulence
25
- rdoc
26
- pkg
27
- tmp
28
- doc
29
- log
30
- .yardoc
31
- measurements
32
-
33
- ## BUNDLER
34
- .bundle
35
-
36
- ## PROJECT::SPECIFIC
37
- /vendor
data/.rspec DELETED
@@ -1,4 +0,0 @@
1
- --color
2
- --format progress
3
- --warnings
4
- --order random
@@ -1,9 +0,0 @@
1
- AllCops:
2
- Include:
3
- - 'Gemfile'
4
- Exclude:
5
- - 'Gemfile.devtools'
6
- - 'vendor/**/*'
7
- - 'benchmarks/**/*'
8
- - 'tmp/**/*'
9
- TargetRubyVersion: 2.5
@@ -1,150 +0,0 @@
1
- # v0.4.6 2020-01-02
2
-
3
- * Upgrades to allow parser dependency to ~> 2.6.5
4
-
5
- # v0.4.5 2019-05-10
6
-
7
- * Bump parser dependency to ~> 2.6.3
8
-
9
- # v0.4.4 2019-03-27
10
-
11
- * Bump parser dependency to ~> 2.6.2
12
-
13
- # v0.4.3 2019-02-24
14
-
15
- * Bump parser dependency to ~> 2.6.0
16
-
17
- # v0.4.2 2018-12-04
18
-
19
- * Drop hard ruby version requirement. Still officially I'll only support 2.5.
20
-
21
- # v0.4.1 2018-12-03
22
-
23
- * Fix unparsing of `def foo(bar: bar())`
24
-
25
- # v0.4.0 2018-12-03
26
-
27
- * Change to modern AST format.
28
- * Add experimental `Unparser.{parser,parse,parse_with_comments}`
29
-
30
- # v0.3.0 2018-11-16
31
-
32
- * Drop support for Ruby < 2.5
33
-
34
- # v0.2.7 2018-07-18
35
-
36
- * Add emitters for `__FILE__` and `__LINE__`
37
- https://github.com/mbj/unparser/pull/70
38
-
39
- # v0.2.7 2018-02-09
40
-
41
- * Allow ruby_parser 2.5
42
-
43
- # v0.2.6 2017-05-30
44
-
45
- * Reduce memory consumption via not requirering all possible parsers
46
- * Allow ruby 2.4
47
- * Update parser dependency
48
-
49
- # v0.2.5 2016-01-24
50
-
51
- * Add support for ruby 2.3
52
- * Bump parser dependency to ~>2.3.0
53
- * Trade uglier for more correct dstring / dsyms
54
- * Drop support for ruby < 2.1
55
-
56
- # v0.2.4 2015-05-30
57
-
58
- * Relax parser dependency to ~>2.2.2
59
-
60
- # v0.2.3 2015-04-28
61
-
62
- * Compatibility with parser ~>2.2.2, >2.2.2.2
63
-
64
- # v0.2.2 2015-01-14
65
-
66
- * Really add back unofficial support for 1.9.3
67
-
68
- # v0.2.1 2015-01-14
69
-
70
- * Add back unofficial support for 1.9.3
71
-
72
- # v0.2.0 2015-01-12
73
-
74
- * Bump required ruby version to 2.0.0
75
-
76
- # v0.1.17 2015-01-10
77
-
78
- * Fix jruby complex / rational generation edge case
79
- * Support generation under MRI 2.2
80
-
81
- # v0.1.16 2014-11-07
82
-
83
- * Add emitter for complex and rational literals
84
- * Fix edge cases for MLHS
85
- * Fix differencies from 2.2.pre7 series of parser
86
-
87
- # v0.1.15 2014-09-24
88
-
89
- * Handle syntax edge case for MRI 2.1.3 parser.
90
-
91
- # v0.1.14 2014-06-15
92
-
93
- * Fix emitter to correctly unparse foo[] = 1
94
-
95
- # v0.1.13 2014-06-08
96
-
97
- * Add support for rubinius.
98
-
99
- # v0.1.12 2014-04-13
100
-
101
- * Add support for 2.1 kwsplat
102
-
103
- # v0.1.11 2014-04-11
104
-
105
- * Fix performance on local variable scope inspection
106
-
107
- # v0.1.10 2014-04-06
108
-
109
- * Fix emit of inline rescues in combination with control flow keywords.
110
- * Begin corpus testing on rake ci against rubyspec
111
-
112
- # v0.1.9 2014-01-14
113
-
114
- * Fix emit of proc { |(a)| }
115
-
116
- # v0.1.8 2014-01-11
117
-
118
- * Fix all bugs found while round tripping rubyspec.
119
-
120
- # v0.1.7 2014-01-03
121
-
122
- * Add back support for root nodes of type resbody https://github.com/mbj/unparser/issues/24
123
-
124
- # v0.1.6 2013-12-31
125
-
126
- * Emit 1.9 style hashes where possible: https://github.com/mbj/unparser/pull/23
127
- * Fix invalid quoting of hash keys: https://github.com/mbj/unparser/issues/22
128
- * Fix crash on take before introduced by code refactorings: https://github.com/mbj/unparser/issues/20
129
- * Fix crash on comment reproduction https://github.com/mbj/unparser/issues/17
130
-
131
- # v0.1.5 2013-11-01
132
-
133
- * Fix crash with comment reproduction.
134
-
135
- # v0.1.4 2013-11-01
136
-
137
- * Code cleanups.
138
- * Remove warnings.
139
-
140
- # v0.0.3 2013-06-17
141
-
142
- * Adjust to changes in parser 2.0.0.beta5 => beta6
143
-
144
- # v0.0.2 2013-06-17
145
-
146
- Crappy release
147
-
148
- # v0.0.1 2013-06-15
149
-
150
- Initial release
data/Gemfile DELETED
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gemspec
6
-
7
- gem 'mutant', git: 'https://github.com/mbj/mutant.git', branch: 'upgrade/parser'
8
-
9
- source 'https://oss:Px2ENN7S91OmWaD5G7MIQJi1dmtmYrEh@gem.mutant.dev' do
10
- gem 'mutant-license'
11
- end
@@ -1,176 +0,0 @@
1
- GIT
2
- remote: https://github.com/mbj/mutant.git
3
- revision: f138cc7b16ed6dab728ef2e2f46731754086b9e8
4
- branch: upgrade/parser
5
- specs:
6
- mutant (0.9.1)
7
- abstract_type (~> 0.0.7)
8
- adamantium (~> 0.2.0)
9
- anima (~> 0.3.1)
10
- ast (~> 2.2)
11
- concord (~> 0.1.5)
12
- diff-lcs (~> 1.3)
13
- equalizer (~> 0.0.9)
14
- ice_nine (~> 0.11.1)
15
- memoizable (~> 0.4.2)
16
- mutant-license (~> 0.1.0)
17
- parser (~> 2.6.5)
18
- procto (~> 0.0.2)
19
- unparser (~> 0.4.5)
20
-
21
- PATH
22
- remote: .
23
- specs:
24
- unparser (0.4.6)
25
- abstract_type (~> 0.0.7)
26
- adamantium (~> 0.2.0)
27
- concord (~> 0.1.5)
28
- diff-lcs (~> 1.3)
29
- equalizer (~> 0.0.9)
30
- parser (~> 2.6.5)
31
- procto (~> 0.0.2)
32
-
33
- GEM
34
- remote: https://rubygems.org/
35
- remote: https://oss:Px2ENN7S91OmWaD5G7MIQJi1dmtmYrEh@gem.mutant.dev/
36
- specs:
37
- abstract_type (0.0.7)
38
- adamantium (0.2.0)
39
- ice_nine (~> 0.11.0)
40
- memoizable (~> 0.4.0)
41
- anima (0.3.1)
42
- abstract_type (~> 0.0.7)
43
- adamantium (~> 0.2)
44
- equalizer (~> 0.0.11)
45
- ast (2.4.0)
46
- axiom-types (0.1.1)
47
- descendants_tracker (~> 0.0.4)
48
- ice_nine (~> 0.11.0)
49
- thread_safe (~> 0.3, >= 0.3.1)
50
- codeclimate-engine-rb (0.4.1)
51
- virtus (~> 1.0)
52
- coercible (1.0.0)
53
- descendants_tracker (~> 0.0.1)
54
- concord (0.1.5)
55
- adamantium (~> 0.2.0)
56
- equalizer (~> 0.0.9)
57
- descendants_tracker (0.0.4)
58
- thread_safe (~> 0.3, >= 0.3.1)
59
- devtools (0.1.24)
60
- abstract_type (~> 0.0.7)
61
- adamantium (~> 0.2.0)
62
- anima (~> 0.3.0)
63
- concord (~> 0.1.5)
64
- flay (~> 2.12.0)
65
- flog (~> 4.6.2)
66
- procto (~> 0.0.3)
67
- rake (~> 12.3.0)
68
- reek (~> 5.3.0)
69
- rspec (~> 3.8.0)
70
- rspec-core (~> 3.8.0)
71
- rspec-its (~> 1.2.0)
72
- rubocop (~> 0.61.1)
73
- simplecov (~> 0.16.1)
74
- yard (~> 0.9.16)
75
- yardstick (~> 0.9.9)
76
- diff-lcs (1.3)
77
- docile (1.3.2)
78
- equalizer (0.0.11)
79
- erubis (2.7.0)
80
- flay (2.12.1)
81
- erubis (~> 2.7.0)
82
- path_expander (~> 1.0)
83
- ruby_parser (~> 3.0)
84
- sexp_processor (~> 4.0)
85
- flog (4.6.4)
86
- path_expander (~> 1.0)
87
- ruby_parser (~> 3.1, > 3.1.0)
88
- sexp_processor (~> 4.8)
89
- ice_nine (0.11.2)
90
- jaro_winkler (1.5.4)
91
- json (2.3.0)
92
- kwalify (0.7.2)
93
- memoizable (0.4.2)
94
- thread_safe (~> 0.3, >= 0.3.1)
95
- morpher (0.2.6)
96
- abstract_type (~> 0.0.7)
97
- adamantium (~> 0.2.0)
98
- anima (~> 0.3.0)
99
- ast (~> 2.2)
100
- concord (~> 0.1.5)
101
- equalizer (~> 0.0.9)
102
- ice_nine (~> 0.11.0)
103
- procto (~> 0.0.2)
104
- mutant-license (0.1.0)
105
- parallel (1.19.1)
106
- parser (2.6.5.0)
107
- ast (~> 2.4.0)
108
- path_expander (1.1.0)
109
- powerpack (0.1.2)
110
- procto (0.0.3)
111
- psych (3.1.0)
112
- rainbow (3.0.0)
113
- rake (12.3.3)
114
- reek (5.3.2)
115
- codeclimate-engine-rb (~> 0.4.0)
116
- kwalify (~> 0.7.0)
117
- parser (>= 2.5.0.0, < 2.7, != 2.5.1.1)
118
- psych (~> 3.1.0)
119
- rainbow (>= 2.0, < 4.0)
120
- rspec (3.8.0)
121
- rspec-core (~> 3.8.0)
122
- rspec-expectations (~> 3.8.0)
123
- rspec-mocks (~> 3.8.0)
124
- rspec-core (3.8.2)
125
- rspec-support (~> 3.8.0)
126
- rspec-expectations (3.8.6)
127
- diff-lcs (>= 1.2.0, < 2.0)
128
- rspec-support (~> 3.8.0)
129
- rspec-its (1.2.0)
130
- rspec-core (>= 3.0.0)
131
- rspec-expectations (>= 3.0.0)
132
- rspec-mocks (3.8.2)
133
- diff-lcs (>= 1.2.0, < 2.0)
134
- rspec-support (~> 3.8.0)
135
- rspec-support (3.8.3)
136
- rubocop (0.61.1)
137
- jaro_winkler (~> 1.5.1)
138
- parallel (~> 1.10)
139
- parser (>= 2.5, != 2.5.1.1)
140
- powerpack (~> 0.1)
141
- rainbow (>= 2.2.2, < 4.0)
142
- ruby-progressbar (~> 1.7)
143
- unicode-display_width (~> 1.4.0)
144
- ruby-progressbar (1.10.1)
145
- ruby_parser (3.14.1)
146
- sexp_processor (~> 4.9)
147
- sexp_processor (4.13.0)
148
- simplecov (0.16.1)
149
- docile (~> 1.1)
150
- json (>= 1.8, < 3)
151
- simplecov-html (~> 0.10.0)
152
- simplecov-html (0.10.2)
153
- thread_safe (0.3.6)
154
- unicode-display_width (1.4.1)
155
- virtus (1.0.5)
156
- axiom-types (~> 0.1)
157
- coercible (~> 1.0)
158
- descendants_tracker (~> 0.0, >= 0.0.3)
159
- equalizer (~> 0.0, >= 0.0.9)
160
- yard (0.9.22)
161
- yardstick (0.9.9)
162
- yard (~> 0.8, >= 0.8.7.2)
163
-
164
- PLATFORMS
165
- ruby
166
-
167
- DEPENDENCIES
168
- anima (~> 0.3.1)
169
- devtools (~> 0.1.23)
170
- morpher (~> 0.2.6)
171
- mutant!
172
- mutant-license!
173
- unparser!
174
-
175
- BUNDLED WITH
176
- 1.17.3
data/LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2013 Markus Schirp
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.