summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.editorconfig18
-rw-r--r--.git-blame-ignore-revs2
-rw-r--r--.github/workflows/build.yml18
-rw-r--r--.github/workflows/codeql-analysis.yml2
-rw-r--r--.github/workflows/lint.yml34
-rw-r--r--.github/workflows/super-linter.yml (renamed from .github/workflows/linter.yml)8
-rw-r--r--.pre-commit-config.yaml25
-rw-r--r--AUTHORS14
-rw-r--r--build_config/IntelGalileo.rb2
-rw-r--r--codespell.txt17
-rw-r--r--doc/guides/compile.md92
-rw-r--r--doc/guides/mrbgems.md144
-rw-r--r--doc/limitations.md26
-rw-r--r--doc/mruby3.md5
-rw-r--r--include/mrbconf.h8
-rw-r--r--include/mruby.h8
-rw-r--r--include/mruby/array.h17
-rw-r--r--include/mruby/numeric.h33
-rw-r--r--include/mruby/ops.h6
-rw-r--r--include/mruby/string.h2
-rw-r--r--include/mruby/value.h24
-rw-r--r--lib/mruby/presym.rb2
-rw-r--r--mrbgems/mruby-array-ext/mrblib/array.rb92
-rw-r--r--mrbgems/mruby-array-ext/src/array.c177
-rw-r--r--mrbgems/mruby-compiler/core/codegen.c49
-rw-r--r--mrbgems/mruby-compiler/core/parse.y42
-rw-r--r--mrbgems/mruby-compiler/core/y.tab.c8030
-rw-r--r--mrbgems/mruby-complex/src/complex.c32
-rw-r--r--mrbgems/mruby-error/src/exception.c2
-rw-r--r--mrbgems/mruby-eval/src/eval.c31
-rw-r--r--mrbgems/mruby-eval/test/eval.rb8
-rw-r--r--mrbgems/mruby-io/src/file.c2
-rw-r--r--mrbgems/mruby-io/src/io.c4
-rw-r--r--mrbgems/mruby-kernel-ext/src/kernel.c75
-rw-r--r--mrbgems/mruby-metaprog/test/metaprog.rb11
-rw-r--r--mrbgems/mruby-numeric-ext/src/numeric_ext.c6
-rw-r--r--mrbgems/mruby-pack/README.md2
-rw-r--r--mrbgems/mruby-pack/src/pack.c325
-rw-r--r--mrbgems/mruby-pack/test/pack.rb55
-rw-r--r--mrbgems/mruby-range-ext/src/range.c6
-rw-r--r--mrbgems/mruby-rational/src/rational.c50
-rw-r--r--mrbgems/mruby-sleep/mrbgem.rake2
-rw-r--r--mrbgems/mruby-socket/src/socket.c82
-rw-r--r--mrbgems/mruby-sprintf/src/sprintf.c240
-rw-r--r--mrbgems/mruby-sprintf/test/sprintf.rb10
-rw-r--r--mrbgems/mruby-string-ext/mrblib/string.rb2
-rw-r--r--mrbgems/mruby-string-ext/src/string.c16
-rw-r--r--mrbgems/mruby-struct/src/struct.c4
-rw-r--r--mrbgems/mruby-test/driver.c6
-rw-r--r--mrbgems/mruby-time/src/time.c10
-rw-r--r--mrblib/array.rb14
-rw-r--r--mrblib/hash.rb14
-rw-r--r--mrblib/range.rb28
-rwxr-xr-xscripts/ci/pre-commit/sort-codespell-wordlist.sh7
-rw-r--r--src/array.c31
-rw-r--r--src/backtrace.c61
-rw-r--r--src/cdump.c445
-rw-r--r--src/class.c6
-rw-r--r--src/codedump.c4
-rw-r--r--src/dump.c427
-rw-r--r--src/fmt_fp.c709
-rw-r--r--src/kernel.c3
-rw-r--r--src/load.c6
-rw-r--r--src/numeric.c173
-rw-r--r--src/object.c14
-rw-r--r--src/range.c64
-rw-r--r--src/readflt.c120
-rw-r--r--src/readint.c30
-rw-r--r--src/string.c271
-rw-r--r--src/symbol.c31
-rw-r--r--src/vm.c47
-rw-r--r--test/t/bs_block.rb12
-rw-r--r--test/t/class.rb14
-rw-r--r--test/t/syntax.rb26
-rw-r--r--test/t/unicode.rb14
75 files changed, 6464 insertions, 5985 deletions
diff --git a/.editorconfig b/.editorconfig
index 705b1f022..70cc78f0b 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -6,38 +6,38 @@
root = true
[*]
-indent_style = tab
-indent_size = 8
-tab_width = 8
-end_of_line = lf
charset = utf-8
+end_of_line = lf
+indent_size = 8
+indent_style = tab
insert_final_newline = true
+tab_width = 8
[{Makefile,Makefile.*,makefile,*.mk}]
trim_trailing_whitespace = true
#max_line_length = 80
[*.{c,cc,C,cxx,cpp,h,hh,H,hxx,hpp,inc,y}]
-indent_style = space
indent_size = 2
+indent_style = space
trim_trailing_whitespace = true
#max_line_length = 120
[{*.rb,Rakefile,rakefile,*.rake,*.gemspec,*.gembox}]
-indent_style = space
indent_size = 2
+indent_style = space
trim_trailing_whitespace = true
#max_line_length = 120
[*.bat]
-end_of_line = crlf
charset = latin1
+end_of_line = crlf
#max_line_length = 80
[*.{yaml,yml}]
-indent_style = space
indent_size = 2
+indent_style = space
[*.md]
-indent_style = space
indent_size = 2
+indent_style = space
diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs
new file mode 100644
index 000000000..d28f636f9
--- /dev/null
+++ b/.git-blame-ignore-revs
@@ -0,0 +1,2 @@
+# Extend the tab with 8 whitespace
+6fc5dc986a5ffc1a74c63ad0617ea1dcc10d3cdd
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 93e759c3e..6ee80eefd 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -10,7 +10,7 @@ jobs:
MRUBY_CONFIG: ci/gcc-clang
CC: gcc
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
- name: Ruby version
run: ruby -v
- name: Compiler version
@@ -25,7 +25,7 @@ jobs:
MRUBY_CONFIG: ci/gcc-clang
CC: clang
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
- name: Ruby version
run: ruby -v
- name: Compiler version
@@ -40,7 +40,7 @@ jobs:
MRUBY_CONFIG: ci/gcc-clang
CC: gcc
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
- name: Ruby version
run: ruby -v
- name: Compiler version
@@ -55,7 +55,7 @@ jobs:
MRUBY_CONFIG: ci/gcc-clang
CC: clang
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
- name: Ruby version
run: ruby -v
- name: Compiler version
@@ -70,7 +70,7 @@ jobs:
MRUBY_CONFIG: ci/gcc-clang
CC: clang
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
- name: Ruby version
run: ruby -v
- name: Compiler version
@@ -85,7 +85,7 @@ jobs:
MRUBY_CONFIG: ci/gcc-clang
CC: gcc
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
- name: Ruby version
run: ruby -v
- name: Compiler version
@@ -105,8 +105,8 @@ jobs:
package-dir: C:\cygwin-package
cache-version: v1
steps:
- - uses: actions/checkout@v2
- - uses: actions/[email protected]
+ - uses: actions/[email protected]
+ - uses: actions/[email protected]
with:
path: ${{ env.package-dir }}
key: ${{ runner.os }}-cygwin-${{ env.cache-version }}
@@ -145,7 +145,7 @@ jobs:
env:
MRUBY_CONFIG: ci/msvc
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
- name: Ruby version
run: ruby -v
- name: Build and test
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 75f80a558..4b0be0ed0 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -13,7 +13,7 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v2
+ uses: actions/[email protected]
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index f949c5bbc..3e89c0328 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -4,29 +4,29 @@ on: [pull_request]
jobs:
misspell:
- name: Check Spelling
+ name: Check spelling with misspell
runs-on: ubuntu-latest
steps:
- name: Check Out
- uses: actions/checkout@v2
+ uses: actions/[email protected]
- name: Install
- run: |
- wget -O - -q https://git.io/misspell | sh -s -- -b .
+ run: wget -O - -q https://git.io/misspell | sh -s -- -b .
- name: Misspell
- run: |
- git ls-files --empty-directory | xargs ./misspell -error
- merge-conflict:
- name: Merge Conflict
+ run: git ls-files --empty-directory | xargs ./misspell -error
+ pre-commit:
+ name: Run pre-commit
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/[email protected]
- name: Check merge conflict
run: |
- grep "^<<<<<<< HEAD" $(git ls-files | xargs) && exit 1 || true
- trailing-whitespace:
- name: Trailing whitespace
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Check for trailing whitespace
- run: "! git grep -EIn $'[ \t]+$'"
+ python -m pip install --upgrade pip
+ pip install pre-commit
+ - name: Set PY
+ run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
+ - uses: actions/cache@v1
+ with:
+ path: ~/.cache/pre-commit
+ key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
+ - name: Run pre-commit
+ run: pre-commit run --all-files
diff --git a/.github/workflows/linter.yml b/.github/workflows/super-linter.yml
index 306060c3f..884f705d5 100644
--- a/.github/workflows/linter.yml
+++ b/.github/workflows/super-linter.yml
@@ -1,4 +1,4 @@
-name: Lint Code Base
+name: Super Linter
on:
push:
@@ -12,14 +12,12 @@ jobs:
name: Lint Code Base
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
- - uses: github/super-linter@v3
+ - uses: actions/[email protected]
+ - uses: github/[email protected]
env:
ERROR_ON_MISSING_EXEC_BIT: true
VALIDATE_BASH: true
# VALIDATE_BASH_EXEC: true
# VALIDATE_EDITORCONFIG: true
- VALIDATE_MARKDOWN: true
# VALIDATE_SHELL_SHFMT: true
- VALIDATE_YAML: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 46abd0675..a274930e7 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -27,16 +27,37 @@ repos:
# hooks:
# - id: forbid-tabs
# - id: remove-tabs
+ - repo: https://github.com/codespell-project/codespell
+ rev: v2.0.0
+ hooks:
+ - id: codespell
+ name: Run codespell
+ description: Check spelling with codespell
+ entry: codespell --ignore-words=codespell.txt
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.27.1
hooks:
- id: markdownlint
name: Run markdownlint
+ description: Checks the style of Markdown files
entry: markdownlint -c .github/linters/.markdown-lint.yml .
+ types: [markdown]
+ files: \.(md|mdown|markdown)$
- repo: https://github.com/adrienverge/yamllint
rev: v1.26.1
hooks:
- id: yamllint
- name: Check YAML files with yamllint
- entry: yamllint --strict -c .github/linters/.yaml-lint.yml .
+ name: Run yamllint
+ description: Check YAML files with yamllint
+ entry: yamllint --strict -c .github/linters/.yaml-lint.yml
types: [yaml]
+ files: \.(yaml|yml)$
+ - repo: local
+ hooks:
+ - id: sort-codespell-wordlist
+ name: Sort codespell.txt
+ description: Sort alphabetically and uniquify codespell.txt
+ entry: ./scripts/ci/pre-commit/sort-codespell-wordlist.sh
+ language: system
+ files: ^\.pre-commit-config\.yaml$|^codespell\.txt$
+ require_serial: true
diff --git a/AUTHORS b/AUTHORS
index 9a4366f07..7ac81e888 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,14 +1,14 @@
# Authors of mruby (mruby developers)
-## The List of Contributors sorted by number of commits (as of 2021-04-12 ff2ffe3)
+## The List of Contributors sorted by number of commits (as of 2021-05-15 c09a810)
- 7340 Yukihiro "Matz" Matsumoto (@matz)*
- 576 KOBAYASHI Shuji (@shuujii)
+ 7418 Yukihiro "Matz" Matsumoto (@matz)*
+ 582 KOBAYASHI Shuji (@shuujii)
376 Daniel Bovensiepen (@bovi)
344 Takeshi Watanabe (@take-cheeze)*
334 Masaki Muranaka (@monaka)
298 Tomoyuki Sahara (@tsahara)*
- 276 dearblue (@dearblue)*
+ 285 dearblue (@dearblue)*
234 Jun Hiroe (@suzukaze)
217 Cremno (@cremno)*
208 Yuki Kurihara (@ksss)+
@@ -34,8 +34,8 @@
38 Kouhei Sutou (@kou)*
31 MATSUMOTO Ryosuke (@matsumotory)*
30 Nobuyoshi Nakada (@nobu)
+ 29 John Bampton (@jbampton)
28 Masayoshi Takahashi (@takahashim)+
- 26 John Bampton (@jbampton)
24 Julian Aron Prenner (@furunkel)*
24 Ryan Scott (@ryan-scott-dev)*
22 Clayton Smith (@clayton-shopify)
@@ -50,7 +50,7 @@
18 Corey Powell (@IceDragon200)
18 Jon Maken (@jonforums)+
18 Mitchell Blank Jr (@mitchblank)*
- 16 Ryan Lopopolo (@lopopolo)
+ 17 Ryan Lopopolo (@lopopolo)
16 bggd (@bggd)
16 kano4 (@kano4)
14 Blaž Hrastnik (@archseer)*
@@ -131,8 +131,8 @@
3 J. Mutua (@katmutua)+
3 Jan Berdajs (@mrbrdo)
3 Joseph McCullough (@joequery)
+ 3 Mark McCurry (@fundamental)
3 Nobuhiro Iwamatsu (@iwamatsu)
- 3 Mark McCurry (@fundamental)
3 Per Lundberg (@perlun)*
3 Rob Fors (@robfors)*
3 Rodrigo Malizia (@rmalizia44)+
diff --git a/build_config/IntelGalileo.rb b/build_config/IntelGalileo.rb
index d28986e36..f1f39e5dc 100644
--- a/build_config/IntelGalileo.rb
+++ b/build_config/IntelGalileo.rb
@@ -74,7 +74,7 @@ MRuby::CrossBuild.new("Galileo") do |conf|
conf.gem :core => "mruby-fiber"
conf.gem :core => "mruby-toplevel-ext"
- #lightweigh regular expression
+ #lightweight regular expression
conf.gem :github => "masamitsu-murase/mruby-hs-regexp", :branch => "master"
#Arduino API
diff --git a/codespell.txt b/codespell.txt
new file mode 100644
index 000000000..dcc0ddb43
--- /dev/null
+++ b/codespell.txt
@@ -0,0 +1,17 @@
+ans
+ba
+creat
+delet
+disabl
+filetest
+fo
+hel
+hist
+ist
+methid
+nd
+quitt
+remore
+runn
+sting
+upto
diff --git a/doc/guides/compile.md b/doc/guides/compile.md
index 7156b2b68..08dbd850f 100644
--- a/doc/guides/compile.md
+++ b/doc/guides/compile.md
@@ -333,9 +333,9 @@ conf.enable_debug
When debugging mode is enabled
* Macro `MRB_DEBUG` would be defined.
- * Which means `mrb_assert()` macro is enabled.
+ * Which means `mrb_assert()` macro is enabled.
* Debug information of irep would be generated by `mrbc`.
- * Because `-g` flag would be added to `mrbc` runner.
+ * Because `-g` flag would be added to `mrbc` runner.
* You can have better backtrace of mruby scripts with this.
## Cross-Compilation
@@ -379,23 +379,25 @@ end
During the build process the directory `build` will be created in the
root directory. The structure of this directory will look like this:
- +- build
- |
- +- host
- |
- +- LEGAL <- License description
- |
- +- bin <- Binaries (mirb, mrbc and mruby)
- |
- +- lib <- Libraries (libmruby.a and libmruby_core.a)
- |
- +- mrbc <- Minimal mrbc place
- |
- +- mrbgems <- Compilation result from mrbgems
- |
- +- mrblib <- Compilation result from mrblib
- |
- +- src <- Compilation result from C sources
+```
++- build
+ |
+ +- host
+ |
+ +- LEGAL <- License description
+ |
+ +- bin <- Binaries (mirb, mrbc and mruby)
+ |
+ +- lib <- Libraries (libmruby.a and libmruby_core.a)
+ |
+ +- mrbc <- Minimal mrbc place
+ |
+ +- mrbgems <- Compilation result from mrbgems
+ |
+ +- mrblib <- Compilation result from mrblib
+ |
+ +- src <- Compilation result from C sources
+```
The compilation workflow will look like this:
@@ -425,31 +427,33 @@ The compilation workflow will look like this:
In case of a cross-compilation to `i386` the `build` directory structure looks
like this:
- +- build
- |
- +- host
- | |
- | +- bin <- Native Binaries
- | |
- | +- lib <- Native Libraries
- | |
- | +- mrbgems
- | |
- | +- src
- |
- +- i386
- |
- +- bin <- Cross-compiled Binaries
- |
- +- include <- Header Directory
- |
- +- lib <- Cross-compiled Libraries
- |
- +- mrbgems
- |
- +- mrblib
- |
- +- src
+```
++- build
+ |
+ +- host
+ | |
+ | +- bin <- Native Binaries
+ | |
+ | +- lib <- Native Libraries
+ | |
+ | +- mrbgems
+ | |
+ | +- src
+ |
+ +- i386
+ |
+ +- bin <- Cross-compiled Binaries
+ |
+ +- include <- Header Directory
+ |
+ +- lib <- Cross-compiled Libraries
+ |
+ +- mrbgems
+ |
+ +- mrblib
+ |
+ +- src
+```
An extra directory is created for the target platform. In case you
compile for `i386` a directory called `i386` is created under the
diff --git a/doc/guides/mrbgems.md b/doc/guides/mrbgems.md
index d4160ebc8..9aebb9208 100644
--- a/doc/guides/mrbgems.md
+++ b/doc/guides/mrbgems.md
@@ -111,21 +111,21 @@ contains every gem found in the `mrbgems` directory.
The maximal GEM structure looks like this:
```
-+- GEM_NAME <- Name of GEM
- |
- +- README.md <- Readme for GEM
- |
- +- mrbgem.rake <- GEM Specification
- |
- +- include/ <- Header for Ruby extension (will exported)
- |
- +- mrblib/ <- Source for Ruby extension
- |
- +- src/ <- Source for C extension
- |
- +- tools/ <- Source for Executable (in C)
- |
- +- test/ <- Test code (Ruby)
++- GEM_NAME <- Name of GEM
+ |
+ +- README.md <- Readme for GEM
+ |
+ +- mrbgem.rake <- GEM Specification
+ |
+ +- include/ <- Header for Ruby extension (will exported)
+ |
+ +- mrblib/ <- Source for Ruby extension
+ |
+ +- src/ <- Source for C extension
+ |
+ +- tools/ <- Source for Executable (in C)
+ |
+ +- test/ <- Test code (Ruby)
```
The folder `mrblib` contains pure Ruby files to extend mruby. The folder `src`
@@ -297,19 +297,21 @@ mrb_c_extension_example_gem_final(mrb_state* mrb) {
### Example
- +- c_extension_example/
- |
- +- README.md (Optional)
- |
- +- src/
- | |
- | +- example.c <- C extension source
- |
- +- test/
- | |
- | +- example.rb <- Test code for C extension
- |
- +- mrbgem.rake <- GEM specification
+```
++- c_extension_example/
+ |
+ +- README.md (Optional)
+ |
+ +- src/
+ | |
+ | +- example.c <- C extension source
+ |
+ +- test/
+ | |
+ | +- example.rb <- Test code for C extension
+ |
+ +- mrbgem.rake <- GEM specification
+```
## Ruby Extension
@@ -323,19 +325,21 @@ none
### Example
- +- ruby_extension_example/
- |
- +- README.md (Optional)
- |
- +- mrblib/
- | |
- | +- example.rb <- Ruby extension source
- |
- +- test/
- | |
- | +- example.rb <- Test code for Ruby extension
- |
- +- mrbgem.rake <- GEM specification
+```
++- ruby_extension_example/
+ |
+ +- README.md (Optional)
+ |
+ +- mrblib/
+ | |
+ | +- example.rb <- Ruby extension source
+ |
+ +- test/
+ | |
+ | +- example.rb <- Test code for Ruby extension
+ |
+ +- mrbgem.rake <- GEM specification
+```
## C and Ruby Extension
@@ -353,23 +357,25 @@ See C and Ruby example.
### Example
- +- c_and_ruby_extension_example/
- |
- +- README.md (Optional)
- |
- +- mrblib/
- | |
- | +- example.rb <- Ruby extension source
- |
- +- src/
- | |
- | +- example.c <- C extension source
- |
- +- test/
- | |
- | +- example.rb <- Test code for C and Ruby extension
- |
- +- mrbgem.rake <- GEM specification
+```
++- c_and_ruby_extension_example/
+ |
+ +- README.md (Optional)
+ |
+ +- mrblib/
+ | |
+ | +- example.rb <- Ruby extension source
+ |
+ +- src/
+ | |
+ | +- example.c <- C extension source
+ |
+ +- test/
+ | |
+ | +- example.rb <- Test code for C and Ruby extension
+ |
+ +- mrbgem.rake <- GEM specification
+```
## Binary gems
@@ -389,23 +395,23 @@ binary gems, to separate normal gems and binary gems.
### Example
```
- +- mruby-bin-example/
++- mruby-bin-example/
|
- +- README.md (Optional)
+ +- README.md (Optional)
|
+- bintest/
- | |
- | +- example.rb <- Test code for binary gem
+ | |
+ | +- example.rb <- Test code for binary gem
|
- +- mrbgem.rake <- Gem specification
+ +- mrbgem.rake <- Gem specification
|
- +- mrblib/ <- Source for Ruby extension (Optional)
+ +- mrblib/ <- Source for Ruby extension (Optional)
|
- +- src/ <- Source for C extension (Optional)
+ +- src/ <- Source for C extension (Optional)
|
+- tools/
- |
- +- example/ <- Executable name directory
- |
- +- example.c <- Source for Executable (includes main)
+ |
+ +- example/ <- Executable name directory
+ |
+ +- example.c <- Source for Executable (includes main)
```
diff --git a/doc/limitations.md b/doc/limitations.md
index d903d528c..265e4a2d4 100644
--- a/doc/limitations.md
+++ b/doc/limitations.md
@@ -13,28 +13,6 @@ This document is collecting these limitations.
This document does not contain a complete list of limitations.
Please help to improve it by submitting your findings.
-## `Array` passed to `puts`
-
-Passing an Array to `puts` results in different output.
-
-```ruby
-puts [1,2,3]
-```
-
-#### Ruby [ruby 2.0.0p645 (2015-04-13 revision 50299)]
-
-```
-1
-2
-3
-```
-
-#### mruby [3.0.0 (2021-03-05)]
-
-```
-[1, 2, 3]
-```
-
## `Kernel.raise` in rescue clause
`Kernel.raise` without arguments does not raise the current exception within
@@ -54,7 +32,7 @@ end
#### mruby [3.0.0 (2021-03-05)]
-No exception is raised. Instead, you have to do:
+`RuntimeError` is raised instead of `ZeroDivisionError`. To re-raise the exception, you have to do:
```ruby
begin
@@ -77,7 +55,7 @@ To reduce memory consumption `Array` does not support instance variables.
```ruby
class Liste < Array
def initialize(str = nil)
- @feld = str
+ @field = str
end
end
diff --git a/doc/mruby3.md b/doc/mruby3.md
index d5218428e..cf103e428 100644
--- a/doc/mruby3.md
+++ b/doc/mruby3.md
@@ -77,8 +77,9 @@ to be default `mrb_value` representation. Now the default is
Pack `mrb_value` in an `intptr_t` integer. Consumes less
memory compared to `MRB_NO_BOXING` especially on 32-bit
-platforms. `Fixnum` size is 31 bits, so some integer values
-does not fit in `Fixnum` integers.
+platforms. Inlined integer size is 31 bits, so some `mrb_int`
+values does not fit in `mrb_value`. Those integers are allocated
+in the object heap as `struct RInteger`.
## `MRB_NAN_BOXING`
diff --git a/include/mrbconf.h b/include/mrbconf.h
index d4da81bfc..2a320f371 100644
--- a/include/mrbconf.h
+++ b/include/mrbconf.h
@@ -181,14 +181,6 @@
# include <stdio.h>
#endif
-#ifndef FALSE
-# define FALSE 0
-#endif
-
-#ifndef TRUE
-# define TRUE 1
-#endif
-
/*
** mruby tuning profiles
**/
diff --git a/include/mruby.h b/include/mruby.h
index d421dc58c..04d8c1a53 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -1220,9 +1220,8 @@ MRB_API mrb_bool mrb_obj_eq(mrb_state *mrb, mrb_value a, mrb_value b);
MRB_API mrb_bool mrb_obj_equal(mrb_state *mrb, mrb_value a, mrb_value b);
MRB_API mrb_bool mrb_equal(mrb_state *mrb, mrb_value obj1, mrb_value obj2);
MRB_API mrb_value mrb_convert_to_integer(mrb_state *mrb, mrb_value val, mrb_int base);
-MRB_API mrb_value mrb_Integer(mrb_state *mrb, mrb_value val);
#ifndef MRB_NO_FLOAT
-MRB_API mrb_value mrb_Float(mrb_state *mrb, mrb_value val);
+MRB_API mrb_value mrb_to_float(mrb_state *mrb, mrb_value val);
#endif
MRB_API mrb_value mrb_inspect(mrb_state *mrb, mrb_value obj);
MRB_API mrb_bool mrb_eql(mrb_state *mrb, mrb_value obj1, mrb_value obj2);
@@ -1340,7 +1339,8 @@ MRB_API void mrb_gc_register(mrb_state *mrb, mrb_value obj);
MRB_API void mrb_gc_unregister(mrb_state *mrb, mrb_value obj);
MRB_API mrb_value mrb_to_int(mrb_state *mrb, mrb_value val);
-#define mrb_int(mrb, val) mrb_integer(mrb_to_int(mrb, val))
+#define mrb_as_int(mrb, val) mrb_integer(mrb_to_int(mrb, val))
+
/* string type checking (contrary to the name, it doesn't convert) */
MRB_API mrb_value mrb_to_str(mrb_state *mrb, mrb_value val);
MRB_API void mrb_check_type(mrb_state *mrb, mrb_value x, enum mrb_vtype t);
@@ -1361,6 +1361,8 @@ MRB_API mrb_bool mrb_respond_to(mrb_state *mrb, mrb_value obj, mrb_sym mid);
MRB_API mrb_bool mrb_obj_is_instance_of(mrb_state *mrb, mrb_value obj, struct RClass* c);
MRB_API mrb_bool mrb_func_basic_p(mrb_state *mrb, mrb_value obj, mrb_sym mid, mrb_func_t func);
+/* obsolete function(s); will be removed */
+#define mrb_int(mrb, val) mrb_as_int(mrb, val)
/**
* Resume a Fiber
diff --git a/include/mruby/array.h b/include/mruby/array.h
index 16f78f773..105e825ea 100644
--- a/include/mruby/array.h
+++ b/include/mruby/array.h
@@ -177,20 +177,6 @@ MRB_API void mrb_ary_push(mrb_state *mrb, mrb_value array, mrb_value value);
MRB_API mrb_value mrb_ary_pop(mrb_state *mrb, mrb_value ary);
/*
- * Returns a reference to an element of the array on the given index.
- *
- * Equivalent to:
- *
- * ary[n]
- *
- * @param mrb The mruby state reference.
- * @param ary The target array.
- * @param n The array index being referenced
- * @return The referenced value.
- */
-MRB_API mrb_value mrb_ary_ref(mrb_state *mrb, mrb_value ary, mrb_int n);
-
-/*
* Sets a value on an array at the given index
*
* Equivalent to:
@@ -200,7 +186,7 @@ MRB_API mrb_value mrb_ary_ref(mrb_state *mrb, mrb_value ary, mrb_int n);
* @param mrb The mruby state reference.
* @param ary The target array.
* @param n The array index being referenced.
- * @param val The value being setted.
+ * @param val The value being set.
*/
MRB_API void mrb_ary_set(mrb_state *mrb, mrb_value ary, mrb_int n, mrb_value val);
@@ -243,6 +229,7 @@ MRB_API mrb_value mrb_ary_unshift(mrb_state *mrb, mrb_value self, mrb_value item
* @param offset The element position (negative counts from the tail).
*/
MRB_API mrb_value mrb_ary_entry(mrb_value ary, mrb_int offset);
+#define mrb_ary_ref(mrb, ary, n) mrb_ary_entry(ary, n)
/*
* Replace subsequence of an array.
diff --git a/include/mruby/numeric.h b/include/mruby/numeric.h
index fc6cacfda..e09a797ed 100644
--- a/include/mruby/numeric.h
+++ b/include/mruby/numeric.h
@@ -30,21 +30,19 @@ MRB_BEGIN_DECL
#endif
#endif
-#ifndef MRB_NO_FLOAT
-MRB_API mrb_value mrb_flo_to_fixnum(mrb_state *mrb, mrb_value val);
-#endif
-MRB_API mrb_value mrb_fixnum_to_str(mrb_state *mrb, mrb_value x, mrb_int base);
-/* ArgumentError if format string doesn't match /%(\.[0-9]+)?[aAeEfFgG]/ */
-#ifndef MRB_NO_FLOAT
-MRB_API mrb_value mrb_float_to_str(mrb_state *mrb, mrb_value x, const char *fmt);
-MRB_API int mrb_float_to_cstr(mrb_state *mrb, char *buf, size_t len, const char *fmt, mrb_float f);
-MRB_API mrb_float mrb_to_flo(mrb_state *mrb, mrb_value x);
-#endif
-
MRB_API mrb_value mrb_num_plus(mrb_state *mrb, mrb_value x, mrb_value y);
MRB_API mrb_value mrb_num_minus(mrb_state *mrb, mrb_value x, mrb_value y);
MRB_API mrb_value mrb_num_mul(mrb_state *mrb, mrb_value x, mrb_value y);
+MRB_API mrb_value mrb_integer_to_str(mrb_state *mrb, mrb_value x, mrb_int base);
+MRB_API char *mrb_int_to_cstr(char *buf, size_t len, mrb_int n, mrb_int base);
+
+/* internal function(s) */
+mrb_int mrb_div_int(mrb_state *mrb, mrb_int x, mrb_int y);
+
+/* obsolete function(s); will be removed */
+#define mrb_fixnum_to_str(mrb, x, base) mrb_integer_to_str(mrb, x, base)
+
#ifndef __has_builtin
#define __has_builtin(x) 0
#endif
@@ -162,6 +160,19 @@ mrb_int_mul_overflow(mrb_int a, mrb_int b, mrb_int *c)
# define MRB_FLT_MAX DBL_MAX
# define MRB_FLT_MAX_10_EXP DBL_MAX_10_EXP
# endif /* MRB_USE_FLOAT32 */
+
+MRB_API mrb_value mrb_float_to_integer(mrb_state *mrb, mrb_value val);
+MRB_API mrb_float mrb_as_float(mrb_state *mrb, mrb_value x);
+
+/* internal functions */
+mrb_float mrb_div_float(mrb_float x, mrb_float y);
+mrb_value mrb_float_to_str(mrb_state *mrb, mrb_value x, const char *fmt);
+int mrb_format_float(mrb_float f, char *buf, size_t buf_size, char fmt, int prec, char sign);
+
+/* obsolete functions; will be removed */
+#define mrb_flo_to_fixnum(mrb, val) mrb_float_to_integer(mrb, val)
+#define mrb_to_flo(mrb, x) mrb_as_float(mrb, x)
+
#endif /* MRB_NO_FLOAT */
MRB_END_DECL
diff --git a/include/mruby/ops.h b/include/mruby/ops.h
index d5d8fb077..98f447aab 100644
--- a/include/mruby/ops.h
+++ b/include/mruby/ops.h
@@ -93,8 +93,8 @@ OPCODE(AREF, BBB) /* R(a) = R(b)[c] */
OPCODE(ASET, BBB) /* R(a)[c] = R(b) */
OPCODE(APOST, BBB) /* *R(a),R(a+1)..R(a+c) = R(a)[b..] */
OPCODE(INTERN, B) /* R(a) = intern(R(a)) */
-OPCODE(STRING, BB) /* R(a) = str_dup(Lit(b)) */
-OPCODE(STRING16, BS) /* R(a) = str_dup(Lit(b)) */
+OPCODE(STRING, BB) /* R(a) = str_dup(Pool(b)) */
+OPCODE(STRING16, BS) /* R(a) = str_dup(Pool(b)) */
OPCODE(STRCAT, B) /* str_cat(R(a),R(a+1)) */
OPCODE(HASH, BB) /* R(a) = hash_new(R(a),R(a+1)..R(a+b*2-1)) */
OPCODE(HASHADD, BB) /* R(a) = hash_push(R(a),R(a+1)..R(a+b*2)) */
@@ -118,5 +118,5 @@ OPCODE(UNDEF, B) /* undef_method(target_class,Syms(a)) */
OPCODE(SCLASS, B) /* R(a) = R(a).singleton_class */
OPCODE(TCLASS, B) /* R(a) = target_class */
OPCODE(DEBUG, BBB) /* print a,b,c */
-OPCODE(ERR, B) /* raise(LocalJumpError, Lit(a)) */
+OPCODE(ERR, B) /* raise(LocalJumpError, Pool(a)) */
OPCODE(STOP, Z) /* stop VM */
diff --git a/include/mruby/string.h b/include/mruby/string.h
index 4410accd5..9c88a0856 100644
--- a/include/mruby/string.h
+++ b/include/mruby/string.h
@@ -370,9 +370,7 @@ MRB_API mrb_value mrb_str_dup(mrb_state *mrb, mrb_value str);
MRB_API mrb_value mrb_str_intern(mrb_state *mrb, mrb_value self);
MRB_API mrb_value mrb_str_to_inum(mrb_state *mrb, mrb_value str, mrb_int base, mrb_bool badcheck);
-MRB_API mrb_value mrb_cstr_to_inum(mrb_state *mrb, const char *s, mrb_int base, mrb_bool badcheck);
MRB_API double mrb_str_to_dbl(mrb_state *mrb, mrb_value str, mrb_bool badcheck);
-MRB_API double mrb_cstr_to_dbl(mrb_state *mrb, const char *s, mrb_bool badcheck);
/**
* Returns a converted string type.
diff --git a/include/mruby/value.h b/include/mruby/value.h
index 39c01509d..d9389b6fd 100644
--- a/include/mruby/value.h
+++ b/include/mruby/value.h
@@ -31,7 +31,30 @@ typedef uint32_t mrb_sym;
* Not to be confused with Ruby's boolean classes, which can be
* obtained using mrb_false_value() and mrb_true_value()
*/
+#if defined(__cplusplus) || (defined(__bool_true_false_are_defined) && __bool_true_false_are_defined)
+typedef bool mrb_bool;
+
+# ifndef FALSE
+# define FALSE false
+# endif
+# ifndef TRUE
+# define TRUE true
+# endif
+#else
+# if __STDC_VERSION__ >= 199901L
+typedef _Bool mrb_bool;
+# else
typedef uint8_t mrb_bool;
+# endif
+
+# ifndef FALSE
+# define FALSE 0
+# endif
+# ifndef TRUE
+# define TRUE 1
+# endif
+#endif
+
struct mrb_state;
#if defined _MSC_VER && _MSC_VER < 1800
@@ -77,6 +100,7 @@ struct mrb_state;
# define MRB_ENDIAN_LOHI(a,b) b a
#endif
+MRB_API mrb_int mrb_int_read(const char *p, const char *e, char **endp);
#ifndef MRB_NO_FLOAT
MRB_API double mrb_float_read(const char*, char**);
#ifdef MRB_USE_FLOAT32
diff --git a/lib/mruby/presym.rb b/lib/mruby/presym.rb
index 6a68cf65c..016c2b20e 100644
--- a/lib/mruby/presym.rb
+++ b/lib/mruby/presym.rb
@@ -99,7 +99,7 @@ module MRuby
end
def list_path
- @list_pat ||= "#{@build.build_dir}/presym".freeze
+ @list_path ||= "#{@build.build_dir}/presym".freeze
end
def header_dir;
diff --git a/mrbgems/mruby-array-ext/mrblib/array.rb b/mrbgems/mruby-array-ext/mrblib/array.rb
index ecd09aa6e..7fbb948d2 100644
--- a/mrbgems/mruby-array-ext/mrblib/array.rb
+++ b/mrbgems/mruby-array-ext/mrblib/array.rb
@@ -150,7 +150,7 @@ class Array
# [ 1, 1, 3, 5 ] & [ 1, 2, 3 ] #=> [ 1, 3 ]
#
def &(elem)
- raise TypeError, "can't convert #{elem.class} into Array" unless elem.class == Array
+ raise TypeError, "cannot convert #{elem.class} into Array" unless elem.class == Array
hash = {}
array = []
@@ -204,7 +204,7 @@ class Array
# a.intersect?(b) #=> true
# a.intersect?(c) #=> false
def intersect?(ary)
- raise TypeError, "can't convert #{ary.class} into Array" unless ary.class == Array
+ raise TypeError, "cannot convert #{ary.class} into Array" unless ary.class == Array
hash = {}
if self.length > ary.length
@@ -294,41 +294,6 @@ class Array
end
end
- ##
- # call-seq:
- # ary.compact -> new_ary
- #
- # Returns a copy of +self+ with all +nil+ elements removed.
- #
- # [ "a", nil, "b", nil, "c", nil ].compact
- # #=> [ "a", "b", "c" ]
- #
- def compact
- result = self.dup
- result.compact!
- result
- end
-
- ##
- # call-seq:
- # ary.compact! -> ary or nil
- #
- # Removes +nil+ elements from the array.
- # Returns +nil+ if no changes were made, otherwise returns
- # <i>ary</i>.
- #
- # [ "a", nil, "b", nil, "c" ].compact! #=> [ "a", "b", "c" ]
- # [ "a", "b", "c" ].compact! #=> nil
- #
- def compact!
- result = self.select { |e| !e.nil? }
- if result.size == self.size
- nil
- else
- self.replace(result)
- end
- end
-
# for efficiency
def reverse_each(&block)
return to_enum :reverse_each unless block
@@ -485,57 +450,6 @@ class Array
##
# call-seq:
- # ary.rotate(count=1) -> new_ary
- #
- # Returns a new array by rotating +self+ so that the element at +count+ is
- # the first element of the new array.
- #
- # If +count+ is negative then it rotates in the opposite direction, starting
- # from the end of +self+ where +-1+ is the last element.
- #
- # a = [ "a", "b", "c", "d" ]
- # a.rotate #=> ["b", "c", "d", "a"]
- # a #=> ["a", "b", "c", "d"]
- # a.rotate(2) #=> ["c", "d", "a", "b"]
- # a.rotate(-3) #=> ["b", "c", "d", "a"]
-
- def rotate(count=1)
- ary = []
- len = self.length
-
- if len > 0
- idx = (count < 0) ? (len - (~count % len) - 1) : (count % len) # rotate count
- len.times do
- ary << self[idx]
- idx += 1
- idx = 0 if idx > len-1
- end
- end
- ary
- end
-
- ##
- # call-seq:
- # ary.rotate!(count=1) -> ary
- #
- # Rotates +self+ in place so that the element at +count+ comes first, and
- # returns +self+.
- #
- # If +count+ is negative then it rotates in the opposite direction, starting
- # from the end of the array where +-1+ is the last element.
- #
- # a = [ "a", "b", "c", "d" ]
- # a.rotate! #=> ["b", "c", "d", "a"]
- # a #=> ["b", "c", "d", "a"]
- # a.rotate!(2) #=> ["d", "a", "b", "c"]
- # a.rotate!(-3) #=> ["a", "b", "c", "d"]
-
- def rotate!(count=1)
- self.replace(self.rotate(count))
- end
-
- ##
- # call-seq:
# ary.delete_if { |item| block } -> ary
# ary.delete_if -> Enumerator
#
@@ -961,7 +875,7 @@ class Array
# ary.to_h -> Hash
# ary.to_h{|item| ... } -> Hash
#
- # Returns the result of interpreting <i>aray</i> as an array of
+ # Returns the result of interpreting <i>array</i> as an array of
# <tt>[key, value]</tt> pairs. If a block is given, it should
# return <tt>[key, value]</tt> pairs to construct a hash.
#
diff --git a/mrbgems/mruby-array-ext/src/array.c b/mrbgems/mruby-array-ext/src/array.c
index 8df9d7f30..d97778642 100644
--- a/mrbgems/mruby-array-ext/src/array.c
+++ b/mrbgems/mruby-array-ext/src/array.c
@@ -95,6 +95,12 @@ mrb_ary_at(mrb_state *mrb, mrb_value ary)
}
static mrb_value
+ary_ref(mrb_state *mrb, mrb_value ary, mrb_int n)
+{
+ return mrb_ary_entry(ary, n);
+}
+
+static mrb_value
mrb_ary_values_at(mrb_state *mrb, mrb_value self)
{
mrb_int argc;
@@ -102,10 +108,9 @@ mrb_ary_values_at(mrb_state *mrb, mrb_value self)
mrb_get_args(mrb, "*", &argv, &argc);
- return mrb_get_values_at(mrb, self, RARRAY_LEN(self), argc, argv, mrb_ary_ref);
+ return mrb_get_values_at(mrb, self, RARRAY_LEN(self), argc, argv, ary_ref);
}
-
/*
* call-seq:
* ary.slice!(index) -> obj or nil
@@ -183,6 +188,168 @@ mrb_ary_slice_bang(mrb_state *mrb, mrb_value self)
return ary;
}
+/*
+ * call-seq:
+ * ary.compact -> new_ary
+ *
+ * Returns a copy of +self+ with all +nil+ elements removed.
+ *
+ * [ "a", nil, "b", nil, "c", nil ].compact
+ * #=> [ "a", "b", "c" ]
+ */
+
+static mrb_value
+mrb_ary_compact(mrb_state *mrb, mrb_value self)
+{
+ mrb_value ary = mrb_ary_new(mrb);
+ mrb_int len = RARRAY_LEN(self);
+ mrb_value *p = RARRAY_PTR(self);
+
+ for (mrb_int i = 0; i < len; ++i) {
+ if (!mrb_nil_p(p[i])) {
+ mrb_ary_push(mrb, ary, p[i]);
+ }
+ }
+ return ary;
+}
+
+/*
+ * call-seq:
+ * ary.compact! -> ary or nil
+ *
+ * Removes +nil+ elements from the array.
+ * Returns +nil+ if no changes were made, otherwise returns
+ * <i>ary</i>.
+ *
+ * [ "a", nil, "b", nil, "c" ].compact! #=> [ "a", "b", "c" ]
+ * [ "a", "b", "c" ].compact! #=> nil
+ */
+static mrb_value
+mrb_ary_compact_bang(mrb_state *mrb, mrb_value self)
+{
+ struct RArray *a = mrb_ary_ptr(self);
+ mrb_int i, j = 0;
+ mrb_int len = ARY_LEN(a);
+ mrb_value *p = ARY_PTR(a);
+
+ mrb_ary_modify(mrb, a);
+ for (i = 0; i < len; ++i) {
+ if (!mrb_nil_p(p[i])) {
+ if (i != j) p[j] = p[i];
+ j++;
+ }
+ }
+ if (i == j) return mrb_nil_value();
+ if (j < len) ARY_SET_LEN(RARRAY(self), j);
+ return self;
+}
+
+
+/*
+ * call-seq:
+ * ary.rotate(count=1) -> new_ary
+ *
+ * Returns a new array by rotating +self+ so that the element at +count+ is
+ * the first element of the new array.
+ *
+ * If +count+ is negative then it rotates in the opposite direction, starting
+ * from the end of +self+ where +-1+ is the last element.
+ *
+ * a = [ "a", "b", "c", "d" ]
+ * a.rotate #=> ["b", "c", "d", "a"]
+ * a #=> ["a", "b", "c", "d"]
+ * a.rotate(2) #=> ["c", "d", "a", "b"]
+ * a.rotate(-3) #=> ["b", "c", "d", "a"]
+ */
+static mrb_value
+mrb_ary_rotate(mrb_state *mrb, mrb_value self)
+{
+ mrb_value ary = mrb_ary_new(mrb);
+ mrb_int len = RARRAY_LEN(self);
+ mrb_value *p = RARRAY_PTR(self);
+ mrb_int count=1, idx;
+
+ mrb_get_args(mrb, "|i", &count);
+ if (len <= 0) return ary;
+ if (count < 0) {
+ idx = len - (~count % len) - 1;
+ }
+ else {
+ idx = count % len;
+ }
+ for (mrb_int i = 0; i<len; i++) {
+ mrb_ary_push(mrb, ary, p[idx++]);
+ if (idx == len) idx = 0;
+ }
+ return ary;
+}
+
+static void
+rev(mrb_value *p, mrb_int beg, mrb_int end)
+{
+ for (mrb_int i=beg,j=end-1; i<j; i++,j--) {
+ mrb_value v = p[i];
+ p[i] = p[j];
+ p[j] = v;
+ }
+}
+
+/*
+ * call-seq:
+ * ary.rotate!(count=1) -> ary
+ *
+ * Rotates +self+ in place so that the element at +count+ comes first, and
+ * returns +self+.
+ *
+ * If +count+ is negative then it rotates in the opposite direction, starting
+ * from the end of the array where +-1+ is the last element.
+ *
+ * a = [ "a", "b", "c", "d" ]
+ * a.rotate! #=> ["b", "c", "d", "a"]
+ * a #=> ["b", "c", "d", "a"]
+ * a.rotate!(2) #=> ["d", "a", "b", "c"]
+ * a.rotate!(-3) #=> ["a", "b", "c", "d"]
+ */
+static mrb_value
+mrb_ary_rotate_bang(mrb_state *mrb, mrb_value self)
+{
+ struct RArray *a = mrb_ary_ptr(self);
+ mrb_int len = ARY_LEN(a);
+ mrb_value *p = ARY_PTR(a);
+ mrb_int count=1, idx;
+
+ mrb_get_args(mrb, "|i", &count);
+ mrb_ary_modify(mrb, a);
+ if (len == 0 || count == 0) return self;
+ if (count == 1) {
+ mrb_value v = p[0];
+ for (mrb_int i=1; i<len; i++) {
+ p[i-1] = p[i];
+ }
+ p[len-1] = v;
+ return self;
+ }
+ if (count < 0) {
+ idx = len - (~count % len) - 1;
+ }
+ else {
+ idx = count % len;
+ }
+ /* e.g. [1,2,3,4,5].rotate!(2) -> [3,4,5,1,2] */
+ /* first, reverse the whole array */
+ /* [1,2,3,4,5] -> [5,4,3,2,1] */
+ rev(p, 0, len);
+ /* then, re-reverse part before idx */
+ /* [5,4,3,2,1] -> [3,4,5,2,1] */
+ /* ^idx ~~~~~ */
+ rev(p, 0, len-idx);
+ /* finally, re-reverse part after idx */
+ /* [3,4,5,2,1] -> [3,4,5,1,2] */
+ /* ^idx ~~~ */
+ rev(p, len-idx, len);
+ return self;
+}
+
void
mrb_mruby_array_ext_gem_init(mrb_state* mrb)
{
@@ -192,7 +359,11 @@ mrb_mruby_array_ext_gem_init(mrb_state* mrb)
mrb_define_method(mrb, a, "at", mrb_ary_at, MRB_ARGS_REQ(1));
mrb_define_method(mrb, a, "rassoc", mrb_ary_rassoc, MRB_ARGS_REQ(1));
mrb_define_method(mrb, a, "values_at", mrb_ary_values_at, MRB_ARGS_ANY());
- mrb_define_method(mrb, a, "slice!", mrb_ary_slice_bang, MRB_ARGS_ARG(1,1));
+ mrb_define_method(mrb, a, "slice!", mrb_ary_slice_bang, MRB_ARGS_ARG(1,1));
+ mrb_define_method(mrb, a, "compact", mrb_ary_compact, MRB_ARGS_NONE());
+ mrb_define_method(mrb, a, "compact!", mrb_ary_compact_bang, MRB_ARGS_NONE());
+ mrb_define_method(mrb, a, "rotate", mrb_ary_rotate, MRB_ARGS_OPT(1));
+ mrb_define_method(mrb, a, "rotate!", mrb_ary_rotate_bang, MRB_ARGS_OPT(1));
}
void
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c
index 12f7c3b3f..06696850f 100644
--- a/mrbgems/mruby-compiler/core/codegen.c
+++ b/mrbgems/mruby-compiler/core/codegen.c
@@ -1320,9 +1320,7 @@ gen_assignment(codegen_scope *s, node *tree, int sp, int val)
break;
default:
-#ifndef MRB_NO_STDIO
- fprintf(stderr, "unknown lhs %d\n", type);
-#endif
+ codegen_error(s, "unknown lhs");
break;
}
if (val) push();
@@ -1450,7 +1448,7 @@ raise_error(codegen_scope *s, const char *msg)
}
static mrb_int
-readint_mrb_int(codegen_scope *s, const char *p, int base, mrb_bool neg, mrb_bool *overflow)
+readint(codegen_scope *s, const char *p, int base, mrb_bool *overflow)
{
const char *e = p + strlen(p);
mrb_int result = 0;
@@ -1460,31 +1458,23 @@ readint_mrb_int(codegen_scope *s, const char *p, int base, mrb_bool neg, mrb_boo
if (*p == '+') p++;
while (p < e) {
char c = *p;
- c = tolower((unsigned char)c);
- for (n=0; n<base; n++) {
- if (mrb_digitmap[n] == c) {
- break;
- }
- }
- if (n == base) {
+ switch (c) {
+ case '0': case '1': case '2': case '3':
+ case '4': case '5': case '6': case '7':
+ n = c - '0'; break;
+ case '8': case '9':
+ n = c - '0'; break;
+ case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
+ n = c - 'a' + 10; break;
+ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
+ n = c - 'A' + 10; break;
+ default:
codegen_error(s, "malformed readint input");
}
-
- if (neg) {
- if ((MRB_INT_MIN + n)/base > result) {
- *overflow = TRUE;
- return 0;
- }
- result *= base;
- result -= n;
- }
- else {
- if ((MRB_INT_MAX - n)/base < result) {
- *overflow = TRUE;
- return 0;
- }
- result *= base;
- result += n;
+ if (mrb_int_mul_overflow(result, base, &result) ||
+ mrb_int_add_overflow(result, n, &result)) {
+ *overflow = TRUE;
+ return 0;
}
p++;
}
@@ -2538,7 +2528,7 @@ codegen(codegen_scope *s, node *tree, int val)
mrb_int i;
mrb_bool overflow;
- i = readint_mrb_int(s, p, base, FALSE, &overflow);
+ i = readint(s, p, base, &overflow);
if (overflow) {
int off = new_litbn(s, p, base, FALSE);
genop_bs(s, OP_LOADL, cursp(), off);
@@ -2603,12 +2593,13 @@ codegen(codegen_scope *s, node *tree, int val)
mrb_int i;
mrb_bool overflow;
- i = readint_mrb_int(s, p, base, TRUE, &overflow);
+ i = readint(s, p, base, &overflow);
if (overflow) {
int off = new_litbn(s, p, base, TRUE);
genop_bs(s, OP_LOADL, cursp(), off);
}
else {
+ i = -i;
if (i == -1) genop_1(s, OP_LOADI__1, cursp());
else if (i >= -0xff) {
genop_2(s, OP_LOADINEG, cursp(), (uint16_t)-i);
diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y
index 2c2bff714..8e68fa21a 100644
--- a/mrbgems/mruby-compiler/core/parse.y
+++ b/mrbgems/mruby-compiler/core/parse.y
@@ -1754,6 +1754,44 @@ command_asgn : lhs '=' command_rhs
{
$$ = new_op_asgn(p, new_call(p, $1, $3, 0, tCOLON2), $4, $5);
}
+ | defn_head f_opt_arglist_paren '=' command
+ {
+ $$ = $1;
+ endless_method_name(p, $1);
+ void_expr_error(p, $4);
+ defn_setup(p, $$, $2, $4);
+ nvars_unnest(p);
+ p->in_def--;
+ }
+ | defn_head f_opt_arglist_paren '=' command modifier_rescue arg
+ {
+ $$ = $1;
+ endless_method_name(p, $1);
+ void_expr_error(p, $4);
+ void_expr_error(p, $6);
+ defn_setup(p, $$, $2, new_mod_rescue(p, $4, $6));
+ nvars_unnest(p);
+ p->in_def--;
+ }
+ | defs_head f_opt_arglist_paren '=' command
+ {
+ $$ = $1;
+ void_expr_error(p, $4);
+ defs_setup(p, $$, $2, $4);
+ nvars_unnest(p);
+ p->in_def--;
+ p->in_single--;
+ }
+ | defs_head f_opt_arglist_paren '=' command modifier_rescue arg
+ {
+ $$ = $1;
+ void_expr_error(p, $4);
+ void_expr_error(p, $6);
+ defs_setup(p, $$, $2, new_mod_rescue(p, $4, $6));
+ nvars_unnest(p);
+ p->in_def--;
+ p->in_single--;
+ }
| backref tOP_ASGN command_rhs
{
backref_error(p, $1);
@@ -2370,7 +2408,7 @@ arg : lhs '=' arg_rhs
nvars_unnest(p);
p->in_def--;
}
- | defs_head f_arglist_paren '=' arg
+ | defs_head f_opt_arglist_paren '=' arg
{
$$ = $1;
void_expr_error(p, $4);
@@ -2379,7 +2417,7 @@ arg : lhs '=' arg_rhs
p->in_def--;
p->in_single--;
}
- | defs_head f_arglist_paren '=' arg modifier_rescue arg
+ | defs_head f_opt_arglist_paren '=' arg modifier_rescue arg
{
$$ = $1;
void_expr_error(p, $4);
diff --git a/mrbgems/mruby-compiler/core/y.tab.c b/mrbgems/mruby-compiler/core/y.tab.c
index 137e4d4cf..22752e050 100644
--- a/mrbgems/mruby-compiler/core/y.tab.c
+++ b/mrbgems/mruby-compiler/core/y.tab.c
@@ -1946,16 +1946,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 12611
+#define YYLAST 13314
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 149
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 177
/* YYNRULES -- Number of rules. */
-#define YYNRULES 607
+#define YYNRULES 611
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 1063
+#define YYNSTATES 1075
#define YYUNDEFTOK 2
#define YYMAXUTOK 377
@@ -2018,63 +2018,64 @@ static const yytype_int16 yyrline[] =
1603, 1602, 1616, 1643, 1649, 1653, 1658, 1662, 1668, 1668,
1672, 1676, 1680, 1684, 1688, 1692, 1696, 1701, 1702, 1706,
1710, 1714, 1718, 1725, 1728, 1732, 1736, 1740, 1744, 1748,
- 1753, 1757, 1764, 1765, 1769, 1773, 1774, 1778, 1782, 1786,
- 1790, 1794, 1804, 1803, 1818, 1827, 1828, 1831, 1832, 1839,
- 1838, 1853, 1857, 1862, 1866, 1871, 1875, 1880, 1884, 1888,
- 1892, 1896, 1902, 1906, 1912, 1913, 1919, 1923, 1927, 1931,
- 1935, 1939, 1943, 1947, 1951, 1955, 1961, 1962, 1968, 1972,
- 1978, 1982, 1988, 1992, 1996, 2000, 2004, 2008, 2014, 2020,
- 2027, 2031, 2035, 2039, 2043, 2047, 2053, 2059, 2064, 2070,
- 2074, 2077, 2081, 2085, 2092, 2093, 2094, 2095, 2100, 2107,
- 2108, 2111, 2115, 2115, 2121, 2122, 2123, 2124, 2125, 2126,
- 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136,
- 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146,
- 2147, 2148, 2149, 2150, 2153, 2153, 2153, 2154, 2154, 2155,
- 2155, 2155, 2156, 2156, 2156, 2156, 2157, 2157, 2157, 2158,
- 2158, 2158, 2159, 2159, 2159, 2159, 2160, 2160, 2160, 2160,
- 2161, 2161, 2161, 2161, 2162, 2162, 2162, 2162, 2163, 2163,
- 2163, 2163, 2164, 2164, 2167, 2171, 2175, 2179, 2183, 2187,
- 2191, 2196, 2201, 2206, 2210, 2214, 2218, 2222, 2226, 2230,
- 2234, 2238, 2242, 2246, 2250, 2254, 2258, 2262, 2266, 2270,
- 2274, 2278, 2282, 2286, 2290, 2294, 2298, 2302, 2306, 2310,
- 2314, 2318, 2322, 2326, 2330, 2334, 2338, 2342, 2346, 2350,
- 2354, 2363, 2373, 2382, 2392, 2398, 2399, 2404, 2408, 2415,
- 2419, 2427, 2431, 2447, 2473, 2474, 2477, 2478, 2479, 2484,
- 2489, 2496, 2502, 2507, 2512, 2517, 2524, 2524, 2535, 2541,
- 2545, 2551, 2552, 2555, 2561, 2567, 2572, 2579, 2584, 2589,
- 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2607, 2612,
- 2611, 2623, 2627, 2622, 2632, 2632, 2636, 2640, 2644, 2648,
- 2653, 2658, 2662, 2666, 2670, 2674, 2678, 2679, 2685, 2691,
- 2684, 2703, 2711, 2719, 2719, 2719, 2726, 2726, 2726, 2733,
- 2739, 2744, 2746, 2743, 2755, 2753, 2771, 2776, 2769, 2793,
- 2791, 2807, 2817, 2828, 2832, 2836, 2840, 2846, 2853, 2854,
- 2855, 2858, 2859, 2862, 2863, 2871, 2872, 2878, 2882, 2885,
- 2889, 2893, 2897, 2902, 2906, 2910, 2914, 2920, 2919, 2929,
- 2933, 2937, 2941, 2947, 2952, 2957, 2961, 2965, 2969, 2973,
- 2977, 2981, 2985, 2989, 2993, 2997, 3001, 3005, 3009, 3013,
- 3019, 3024, 3031, 3031, 3035, 3040, 3047, 3051, 3057, 3058,
- 3061, 3066, 3069, 3073, 3079, 3083, 3090, 3089, 3104, 3114,
- 3118, 3123, 3130, 3134, 3138, 3142, 3146, 3150, 3154, 3158,
- 3162, 3169, 3168, 3183, 3182, 3198, 3206, 3215, 3218, 3225,
- 3228, 3232, 3233, 3236, 3240, 3243, 3247, 3250, 3251, 3252,
- 3253, 3256, 3257, 3263, 3264, 3265, 3269, 3275, 3276, 3282,
- 3287, 3286, 3297, 3301, 3307, 3311, 3317, 3321, 3327, 3330,
- 3331, 3334, 3340, 3346, 3347, 3350, 3357, 3356, 3370, 3374,
- 3381, 3386, 3393, 3399, 3400, 3401, 3402, 3403, 3407, 3413,
- 3417, 3423, 3424, 3425, 3429, 3435, 3439, 3443, 3447, 3451,
- 3457, 3461, 3467, 3471, 3475, 3479, 3483, 3487, 3495, 3502,
- 3513, 3514, 3518, 3522, 3521, 3538, 3539, 3542, 3548, 3566,
- 3586, 3587, 3593, 3599, 3605, 3612, 3617, 3624, 3628, 3634,
- 3638, 3644, 3645, 3648, 3652, 3658, 3662, 3666, 3670, 3676,
- 3681, 3686, 3690, 3694, 3698, 3702, 3706, 3710, 3714, 3718,
- 3722, 3726, 3730, 3734, 3738, 3743, 3749, 3754, 3759, 3764,
- 3769, 3776, 3780, 3787, 3792, 3791, 3803, 3807, 3813, 3821,
- 3829, 3837, 3841, 3847, 3851, 3857, 3858, 3861, 3866, 3873,
- 3874, 3877, 3883, 3887, 3893, 3898, 3898, 3923, 3924, 3930,
- 3935, 3941, 3942, 3945, 3951, 3956, 3966, 3973, 3974, 3975,
- 3978, 3979, 3980, 3981, 3984, 3985, 3986, 3989, 3990, 3993,
- 3997, 4003, 4004, 4010, 4011, 4014, 4015, 4018, 4021, 4022,
- 4023, 4026, 4027, 4028, 4031, 4038, 4039, 4043
+ 1753, 1757, 1766, 1776, 1785, 1795, 1802, 1803, 1807, 1811,
+ 1812, 1816, 1820, 1824, 1828, 1832, 1842, 1841, 1856, 1865,
+ 1866, 1869, 1870, 1877, 1876, 1891, 1895, 1900, 1904, 1909,
+ 1913, 1918, 1922, 1926, 1930, 1934, 1940, 1944, 1950, 1951,
+ 1957, 1961, 1965, 1969, 1973, 1977, 1981, 1985, 1989, 1993,
+ 1999, 2000, 2006, 2010, 2016, 2020, 2026, 2030, 2034, 2038,
+ 2042, 2046, 2052, 2058, 2065, 2069, 2073, 2077, 2081, 2085,
+ 2091, 2097, 2102, 2108, 2112, 2115, 2119, 2123, 2130, 2131,
+ 2132, 2133, 2138, 2145, 2146, 2149, 2153, 2153, 2159, 2160,
+ 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170,
+ 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180,
+ 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2191, 2191,
+ 2191, 2192, 2192, 2193, 2193, 2193, 2194, 2194, 2194, 2194,
+ 2195, 2195, 2195, 2196, 2196, 2196, 2197, 2197, 2197, 2197,
+ 2198, 2198, 2198, 2198, 2199, 2199, 2199, 2199, 2200, 2200,
+ 2200, 2200, 2201, 2201, 2201, 2201, 2202, 2202, 2205, 2209,
+ 2213, 2217, 2221, 2225, 2229, 2234, 2239, 2244, 2248, 2252,
+ 2256, 2260, 2264, 2268, 2272, 2276, 2280, 2284, 2288, 2292,
+ 2296, 2300, 2304, 2308, 2312, 2316, 2320, 2324, 2328, 2332,
+ 2336, 2340, 2344, 2348, 2352, 2356, 2360, 2364, 2368, 2372,
+ 2376, 2380, 2384, 2388, 2392, 2401, 2411, 2420, 2430, 2436,
+ 2437, 2442, 2446, 2453, 2457, 2465, 2469, 2485, 2511, 2512,
+ 2515, 2516, 2517, 2522, 2527, 2534, 2540, 2545, 2550, 2555,
+ 2562, 2562, 2573, 2579, 2583, 2589, 2590, 2593, 2599, 2605,
+ 2610, 2617, 2622, 2627, 2634, 2635, 2636, 2637, 2638, 2639,
+ 2640, 2641, 2645, 2650, 2649, 2661, 2665, 2660, 2670, 2670,
+ 2674, 2678, 2682, 2686, 2691, 2696, 2700, 2704, 2708, 2712,
+ 2716, 2717, 2723, 2729, 2722, 2741, 2749, 2757, 2757, 2757,
+ 2764, 2764, 2764, 2771, 2777, 2782, 2784, 2781, 2793, 2791,
+ 2809, 2814, 2807, 2831, 2829, 2845, 2855, 2866, 2870, 2874,
+ 2878, 2884, 2891, 2892, 2893, 2896, 2897, 2900, 2901, 2909,
+ 2910, 2916, 2920, 2923, 2927, 2931, 2935, 2940, 2944, 2948,
+ 2952, 2958, 2957, 2967, 2971, 2975, 2979, 2985, 2990, 2995,
+ 2999, 3003, 3007, 3011, 3015, 3019, 3023, 3027, 3031, 3035,
+ 3039, 3043, 3047, 3051, 3057, 3062, 3069, 3069, 3073, 3078,
+ 3085, 3089, 3095, 3096, 3099, 3104, 3107, 3111, 3117, 3121,
+ 3128, 3127, 3142, 3152, 3156, 3161, 3168, 3172, 3176, 3180,
+ 3184, 3188, 3192, 3196, 3200, 3207, 3206, 3221, 3220, 3236,
+ 3244, 3253, 3256, 3263, 3266, 3270, 3271, 3274, 3278, 3281,
+ 3285, 3288, 3289, 3290, 3291, 3294, 3295, 3301, 3302, 3303,
+ 3307, 3313, 3314, 3320, 3325, 3324, 3335, 3339, 3345, 3349,
+ 3355, 3359, 3365, 3368, 3369, 3372, 3378, 3384, 3385, 3388,
+ 3395, 3394, 3408, 3412, 3419, 3424, 3431, 3437, 3438, 3439,
+ 3440, 3441, 3445, 3451, 3455, 3461, 3462, 3463, 3467, 3473,
+ 3477, 3481, 3485, 3489, 3495, 3499, 3505, 3509, 3513, 3517,
+ 3521, 3525, 3533, 3540, 3551, 3552, 3556, 3560, 3559, 3576,
+ 3577, 3580, 3586, 3604, 3624, 3625, 3631, 3637, 3643, 3650,
+ 3655, 3662, 3666, 3672, 3676, 3682, 3683, 3686, 3690, 3696,
+ 3700, 3704, 3708, 3714, 3719, 3724, 3728, 3732, 3736, 3740,
+ 3744, 3748, 3752, 3756, 3760, 3764, 3768, 3772, 3776, 3781,
+ 3787, 3792, 3797, 3802, 3807, 3814, 3818, 3825, 3830, 3829,
+ 3841, 3845, 3851, 3859, 3867, 3875, 3879, 3885, 3889, 3895,
+ 3896, 3899, 3904, 3911, 3912, 3915, 3921, 3925, 3931, 3936,
+ 3936, 3961, 3962, 3968, 3973, 3979, 3980, 3983, 3989, 3994,
+ 4004, 4011, 4012, 4013, 4016, 4017, 4018, 4019, 4022, 4023,
+ 4024, 4027, 4028, 4031, 4035, 4041, 4042, 4048, 4049, 4052,
+ 4053, 4056, 4059, 4060, 4061, 4064, 4065, 4066, 4069, 4076,
+ 4077, 4081
};
#endif
@@ -2170,12 +2171,12 @@ static const yytype_int16 yytoknum[] =
};
# endif
-#define YYPACT_NINF (-848)
+#define YYPACT_NINF (-850)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
-#define YYTABLE_NINF (-608)
+#define YYTABLE_NINF (-612)
#define yytable_value_is_error(Yyn) \
((Yyn) == YYTABLE_NINF)
@@ -2184,113 +2185,114 @@ static const yytype_int16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- -848, 137, 2991, -848, 7860, 9984, 10326, 6168, -848, 9630,
- 9630, -848, -848, 10098, 7350, 5903, 8096, 8096, -848, -848,
- 8096, 3648, 3240, -848, -848, -848, -848, 97, 7350, -848,
- 49, -848, -848, -848, 6310, 3104, -848, -848, 6452, -848,
- -848, -848, -848, -848, -848, -848, 51, 9748, 9748, 9748,
- 9748, 168, 5162, 891, 8568, 8922, 7632, -848, 7068, 1196,
- 473, 810, 1387, 1396, -848, 273, 9866, 9748, -848, 1021,
- -848, 1343, -848, 279, 1637, 1722, -848, -848, 130, 112,
- -848, 121, 10212, -848, 152, 12292, 671, 677, 36, 82,
- -848, 321, -848, -848, -848, -848, -848, -848, -848, -848,
- -848, 46, 187, -848, 200, 71, -848, -848, -848, -848,
- -848, 181, 181, 207, 689, 917, -848, 9630, 283, 5281,
- 352, 1722, 1722, -848, 174, -848, 806, -848, -848, 71,
- -848, -848, -848, -848, -848, -848, -848, -848, -848, -848,
- -848, -848, -848, -848, -848, -848, -848, -848, -848, -848,
- -848, -848, -848, -848, -848, -848, -848, -848, 24, 103,
- 146, 166, -848, -848, -848, -848, -848, -848, 179, 182,
- 197, 225, -848, 228, -848, -848, -848, -848, -848, -848,
- -848, -848, -848, -848, -848, -848, -848, -848, -848, -848,
- -848, -848, -848, -848, -848, -848, -848, -848, -848, -848,
- -848, -848, -848, -848, -848, -848, -848, -848, -848, 233,
- 4340, 341, 279, 680, 277, 12416, 843, 52, 309, 76,
- 680, 9630, 9630, 883, 348, -848, -848, 1109, 381, 98,
- 107, -848, -848, -848, -848, -848, -848, -848, -848, -848,
- 7209, -848, -848, 278, -848, -848, -848, -848, -848, -848,
- 1021, -848, 338, -848, 402, -848, -848, 1021, 3376, 9748,
- 9748, 9748, 9748, -848, 12354, -848, -848, 292, 379, 292,
- -848, -848, -848, 8214, -848, -848, -848, 8096, -848, -848,
- -848, 5903, 9630, -848, -848, 317, 5400, -848, 1118, 368,
- 12478, 12478, 203, 7978, 5162, 343, 1021, 1343, 1021, 380,
- -848, 7978, 1021, 359, 1352, 1352, -848, 12354, 364, 1352,
- -848, 461, 10440, 383, 1158, 1213, 1216, 1732, -848, -848,
- -848, -848, 1421, -848, -848, -848, -848, -848, -848, 518,
- 1507, -848, -848, 499, -848, 880, -848, 1513, -848, 1528,
- 430, 441, -848, -848, -848, -848, 5665, 9630, 9630, 9630,
- 9630, 7978, 9630, 9630, 155, -848, -848, -848, -848, -848,
- -848, -848, -848, -848, -848, -848, -848, 1378, 431, 444,
- 4340, 9748, -848, 409, 524, 446, -848, 1021, -848, -848,
- -848, 475, 9748, -848, 480, 556, 481, 576, -848, -848,
- 511, 4340, -848, -848, 9040, -848, 5162, 7746, 492, 9040,
- 9748, 9748, 9748, 9748, 9748, 9748, 9748, 9748, 9748, 9748,
- 9748, 9748, 9748, 9748, 588, 9748, 9748, 9748, 9748, 9748,
- 9748, 9748, 9748, 9748, 9748, 9748, 9748, 1200, -848, 8096,
- -848, 2511, -848, -848, 11750, -848, -848, -848, -848, 9866,
- 9866, -848, 542, -848, 279, -848, 1218, -848, -848, -848,
- -848, -848, -848, 2629, 8096, 10718, 4340, 9630, -848, -848,
- -848, 627, 630, 218, -848, 4486, 629, 9748, 10804, 8096,
- 10890, 9748, 9748, 4778, 106, 106, 122, 10976, 8096, 11062,
- -848, 583, -848, 5400, 402, -848, -848, 9158, 645, -848,
- 518, 9748, 12416, 12416, 12416, 9748, 374, -848, 8332, -848,
- 9748, -848, 8686, 6022, 520, 1021, 292, 292, -848, -848,
- 1016, 526, -848, -848, 7350, 4897, 534, 10804, 10890, 9748,
- 1343, 1021, -848, -848, 5784, 541, 1343, -848, -848, 8804,
- -848, 1021, 8922, -848, -848, -848, 1218, 121, 10440, -848,
- 10440, 11148, 8096, 11234, 2150, -848, -848, -848, 1539, 5400,
- 518, -848, -848, -848, -848, -848, -848, -848, 9748, 9748,
- -848, -848, -848, -848, -848, -848, -848, -848, -848, -848,
- 1672, 1021, 1021, 545, 9748, 661, 12416, 78, -848, -848,
- -848, 47, -848, -848, 2150, -848, 12416, 2150, -848, -848,
- 1545, -848, -848, 9748, 673, 38, 9748, -848, 12008, 292,
- -848, 1021, 10440, 549, -848, -848, -848, 648, 572, 1998,
- -848, -848, 1267, 219, 2194, 2194, 2194, 2194, 2128, 2128,
- 2694, 2786, 2194, 2194, 12478, 12478, 465, 465, -848, 368,
- 11946, 2128, 2128, 1923, 1923, 1531, 674, 674, 368, 368,
- 368, 3784, 6808, 4056, 6926, -848, 181, -848, 554, 292,
- 258, -848, 507, -848, -848, 3512, -848, -848, 2370, 38,
- 38, -848, 2848, -848, -848, -848, -848, -848, 1021, 9630,
- 4340, 1033, 515, -848, 181, 557, 181, 685, 1016, 7491,
- -848, 9276, 683, -848, 425, -848, 6570, 6689, 563, 295,
- 296, 683, -848, -848, -848, -848, 66, 115, 567, 126,
- 128, 9630, 7350, 571, 706, 12416, 80, -848, 518, 12416,
- 12416, 518, 9748, 12354, -848, 292, 12416, -848, -848, -848,
- -848, 8450, 8686, -848, -848, -848, 585, -848, -848, 170,
- 1343, 1021, 1352, 492, -848, 1033, 515, 586, 1058, 1092,
- 581, 89, -848, 591, -848, 368, 368, -848, 1286, 1021,
- 592, -848, -848, 1886, 11822, -848, 676, -848, 446, -848,
- -848, -848, 593, 595, 596, -848, 612, 676, 596, 11884,
- -848, -848, 2150, 4340, -848, -848, 12079, 9394, -848, -848,
- 10440, 7978, 9866, 9748, 11320, 8096, 11406, 55, 9866, 9866,
- -848, 542, 509, 8332, 9866, 9866, -848, 542, 82, 130,
- 4340, 5400, 38, -848, 1021, 740, -848, -848, -848, -848,
- 12008, -848, 665, -848, 5043, 745, -848, 9630, 750, -848,
- 9748, 9748, 298, 9748, 9748, 753, 5546, 5546, 140, 106,
- -848, -848, -848, 9512, 4632, 518, 12416, -848, 6022, 292,
- -848, -848, -848, 1095, 615, 625, 4340, 5400, -848, -848,
- -848, 631, -848, 1803, 1021, 9748, -848, 2150, -848, 1545,
- -848, 1545, -848, 1545, -848, -848, 9748, -848, 581, 581,
- 10554, -848, 635, 446, 638, 10554, -848, 643, 649, -848,
- 757, 9748, 12150, -848, -848, 12416, 3920, 4192, 651, 305,
- 449, 9748, 9748, -848, -848, -848, -848, -848, 9866, -848,
- -848, -848, -848, -848, -848, -848, 789, 684, 5400, 4340,
- -848, -848, 10668, 680, -848, -848, 5546, -848, -848, 680,
- -848, 9748, -848, 797, 825, -848, 12416, 365, -848, 8686,
- -848, 1320, 826, 710, 1836, 1836, 1295, -848, 12416, 596,
- 704, 596, 596, 12416, 724, 727, 801, 1322, 78, -848,
- -848, 1742, -848, 1322, 2150, -848, 1545, -848, -848, 12221,
- 464, 12416, 12416, -848, -848, -848, -848, 718, 844, 805,
- -848, 1335, 1213, 1216, 4340, -848, 4486, -848, -848, 5546,
- -848, -848, -848, -848, 12, -848, -848, -848, -848, 721,
- 721, 1836, 726, -848, 1545, -848, -848, -848, -848, -848,
- -848, 11492, -848, 446, 78, -848, -848, 731, 735, 739,
- -848, 742, 739, -848, -848, 1218, 11578, 8096, 11664, 630,
- 425, 851, 1320, -848, 1836, 721, 1836, 596, 741, 744,
- -848, 2150, -848, 1545, -848, 1545, -848, 1545, -848, -848,
- 1033, 515, 748, 746, 804, -848, -848, -848, -848, 721,
- -848, 739, 751, 739, 739, 1095, -848, 1545, -848, -848,
- -848, 739, -848
+ -850, 124, 3596, -850, 8329, 10453, 10795, 6637, -850, 10099,
+ 10099, -850, -850, 10567, 7819, 6372, 8565, 8565, -850, -850,
+ 8565, 4253, 3845, -850, -850, -850, -850, 200, 7819, -850,
+ 37, -850, -850, -850, 6779, 3709, -850, -850, 6921, -850,
+ -850, -850, -850, -850, -850, -850, 34, 10217, 10217, 10217,
+ 10217, 106, 5631, 633, 9037, 9391, 8101, -850, 7537, 1187,
+ 767, 989, 1214, 1237, -850, 86, 10335, 10217, -850, 751,
+ -850, 1505, -850, 115, 1288, 1288, -850, -850, 176, 70,
+ -850, 71, 10681, -850, 118, 12995, 477, 483, 60, 84,
+ -850, 365, -850, -850, -850, -850, -850, -850, -850, -850,
+ -850, 349, 165, -850, 501, 82, -850, -850, -850, -850,
+ -850, 131, 131, 137, 506, 1044, -850, 10099, 314, 5750,
+ 268, 1266, 1266, -850, 143, -850, 599, -850, -850, 82,
+ -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
+ -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
+ -850, -850, -850, -850, -850, -850, -850, -850, 49, 58,
+ 72, 83, -850, -850, -850, -850, -850, -850, 133, 162,
+ 187, 196, -850, 208, -850, -850, -850, -850, -850, -850,
+ -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
+ -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
+ -850, -850, -850, -850, -850, -850, -850, -850, -850, 241,
+ 4809, 233, 115, 1288, 1288, 69, 169, 13119, 628, 151,
+ 203, 155, 69, 10099, 10099, 659, 247, -850, -850, 732,
+ 329, 67, 87, -850, -850, -850, -850, -850, -850, -850,
+ -850, -850, 7678, -850, -850, 228, -850, -850, -850, -850,
+ -850, -850, 751, -850, 721, -850, 352, -850, -850, 751,
+ 3981, 10217, 10217, 10217, 10217, -850, 13057, -850, -850, 237,
+ 324, 237, -850, -850, -850, 8683, -850, -850, -850, 8565,
+ -850, -850, -850, 6372, 10099, -850, -850, 251, 5869, -850,
+ 851, 286, 13181, 13181, 544, 8447, 5631, 275, 751, 1505,
+ 751, 303, -850, 8447, 751, 292, 1351, 1351, -850, 13057,
+ 288, 1351, -850, 381, 10909, 296, 862, 905, 929, 1387,
+ -850, -850, -850, -850, 1282, -850, -850, -850, -850, -850,
+ -850, 814, 1287, -850, -850, 1021, -850, 1052, -850, 1320,
+ -850, 1337, 341, 350, -850, -850, -850, -850, 6134, 10099,
+ 10099, 10099, 10099, 8447, 10099, 10099, 61, -850, -850, -850,
+ -850, -850, -850, -850, -850, -850, -850, -850, -850, 1604,
+ 337, 340, 4809, 10217, -850, 321, 417, 354, -850, 751,
+ -850, -850, -850, 387, 10217, -850, 401, 472, 403, 511,
+ -850, -850, 449, 4809, -850, -850, 9509, -850, 5631, 8215,
+ 441, 9509, 10217, 10217, 10217, 10217, 10217, 10217, 10217, 10217,
+ 10217, 10217, 10217, 10217, 10217, 10217, 534, 10217, 10217, 10217,
+ 10217, 10217, 10217, 10217, 10217, 10217, 10217, 10217, 10217, 3391,
+ -850, 8565, -850, 11187, -850, -850, 12391, -850, -850, -850,
+ -850, 10335, 10335, -850, 491, -850, 115, -850, 952, -850,
+ -850, -850, -850, -850, -850, 11273, 8565, 11359, 4809, 10099,
+ -850, -850, -850, 577, 581, 158, 474, 479, -850, 4955,
+ 582, 10217, 11445, 8565, 11531, 10217, 10217, 5247, 639, 639,
+ 94, 11617, 8565, 11703, -850, 541, -850, 5869, 352, -850,
+ -850, 9627, 600, -850, 814, 10217, 13119, 13119, 13119, 10217,
+ 1057, -850, 8801, -850, 10217, -850, 9155, 6491, 471, 751,
+ 237, 237, -850, -850, 885, 473, -850, -850, 7819, 5366,
+ 498, 11445, 11531, 10217, 1505, 751, -850, -850, 6253, 484,
+ 1505, -850, -850, 9273, -850, 751, 9391, -850, -850, -850,
+ 952, 71, 10909, -850, 10909, 11789, 8565, 11875, 1458, -850,
+ -850, -850, 1348, 5869, 814, -850, -850, -850, -850, -850,
+ -850, -850, 10217, 10217, -850, -850, -850, -850, -850, -850,
+ -850, -850, -850, -850, 1165, 751, 751, 497, 10335, 632,
+ 13119, 345, -850, -850, -850, 12, -850, -850, 1458, -850,
+ 13119, 1458, -850, -850, 1769, -850, -850, 10335, 644, 63,
+ 10217, -850, 12711, 237, -850, 751, 10909, 512, -850, -850,
+ -850, 604, 542, 2903, -850, -850, 956, 284, 2755, 2755,
+ 2755, 2755, 1752, 1752, 3456, 2669, 2755, 2755, 13181, 13181,
+ 1232, 1232, -850, 286, 12649, 1752, 1752, 1467, 1467, 1477,
+ 355, 355, 286, 286, 286, 3275, 7277, 4525, 7395, -850,
+ 131, -850, 523, 237, 564, -850, 588, -850, -850, 4117,
+ -850, -850, 2330, 63, 63, -850, 12463, -850, -850, -850,
+ -850, -850, 751, 10099, 4809, 1109, 192, -850, 131, 529,
+ 131, 658, 885, 7960, -850, 9745, 657, -850, 10217, 10217,
+ 487, -850, 7039, 7158, 546, 311, 338, 657, -850, -850,
+ -850, -850, 91, 98, 556, 103, 104, 10099, 7819, 555,
+ 685, 13119, 249, -850, 814, 13119, 13119, 814, 10217, 13057,
+ -850, 237, 13119, -850, -850, -850, -850, 8919, 9155, -850,
+ -850, -850, 568, -850, -850, 38, 1505, 751, 1351, 441,
+ -850, 1109, 192, 562, 1167, 1168, 565, 77, -850, 573,
+ -850, 286, 286, -850, 147, 751, 572, -850, -850, 1708,
+ 673, 12525, -850, 665, -850, 354, -850, -850, -850, 587,
+ 590, 593, -850, 596, 665, 593, 679, 12587, -850, -850,
+ 1458, 4809, -850, -850, 12782, 9863, -850, -850, 10909, 8447,
+ 10335, 10217, 11961, 8565, 12047, 76, 10335, 10335, -850, 491,
+ 613, 8801, 10335, 10335, -850, 491, 84, 176, 4809, 5869,
+ 63, -850, 751, 726, -850, -850, -850, -850, 12711, -850,
+ 652, -850, 5512, 742, -850, 10099, 747, -850, 10217, 10217,
+ 386, 10217, 10217, 750, 6015, 6015, 107, 639, -850, -850,
+ -850, 9981, 5101, 814, 13119, -850, 6491, 237, -850, -850,
+ -850, 756, 624, 640, 4809, 5869, -850, -850, -850, 646,
+ -850, 1485, 751, 10217, 10217, -850, 1458, -850, 1769, -850,
+ 1769, -850, 1769, -850, -850, 10217, 10217, -850, 565, 565,
+ 11023, -850, 650, 354, 653, 11023, -850, 660, 661, -850,
+ 755, 10217, 12853, -850, -850, 13119, 4389, 4661, 666, 414,
+ 426, 10217, 10217, -850, -850, -850, -850, -850, 10335, -850,
+ -850, -850, -850, -850, -850, -850, 759, 670, 5869, 4809,
+ -850, -850, 11137, 69, -850, -850, 6015, -850, -850, 69,
+ -850, 10217, -850, 785, 797, -850, 13119, 148, -850, 9155,
+ -850, 1683, 799, 676, 1630, 1630, 894, -850, 13119, 13119,
+ 593, 681, 593, 593, 13119, 13119, 698, 712, 786, 957,
+ 345, -850, -850, 1422, -850, 957, 1458, -850, 1769, -850,
+ -850, 12924, 486, 13119, 13119, -850, -850, -850, -850, 705,
+ 832, 796, -850, 968, 905, 929, 4809, -850, 4955, -850,
+ -850, 6015, -850, -850, -850, -850, 116, -850, -850, -850,
+ -850, 713, 713, 1630, 714, -850, 1769, -850, -850, -850,
+ -850, -850, -850, 12133, -850, 354, 345, -850, -850, 716,
+ 718, 722, -850, 723, 722, -850, -850, 952, 12219, 8565,
+ 12305, 581, 487, 870, 1683, -850, 1630, 713, 1630, 593,
+ 733, 743, -850, 1458, -850, 1769, -850, 1769, -850, 1769,
+ -850, -850, 1109, 192, 745, 553, 866, -850, -850, -850,
+ -850, 713, -850, 722, 753, 722, 722, 756, -850, 1769,
+ -850, -850, -850, 722, -850
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -2298,159 +2300,160 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_int16 yydefact[] =
{
- 2, 0, 0, 1, 0, 0, 0, 0, 289, 0,
- 0, 313, 316, 0, 0, 593, 333, 334, 335, 336,
- 301, 266, 266, 484, 483, 485, 486, 595, 0, 10,
- 0, 488, 487, 489, 475, 579, 477, 476, 479, 478,
- 471, 472, 433, 434, 490, 491, 287, 0, 0, 0,
- 0, 0, 0, 291, 607, 607, 84, 308, 0, 0,
- 0, 0, 0, 0, 448, 0, 0, 0, 3, 593,
- 6, 9, 27, 33, 535, 535, 45, 56, 55, 0,
- 72, 0, 76, 86, 0, 50, 244, 0, 57, 306,
- 280, 281, 431, 282, 283, 284, 429, 428, 460, 430,
- 427, 482, 0, 285, 286, 266, 5, 8, 333, 334,
- 301, 607, 409, 0, 109, 110, 287, 0, 0, 0,
- 0, 535, 535, 112, 492, 337, 0, 482, 286, 0,
- 329, 164, 174, 165, 161, 190, 191, 192, 193, 172,
- 187, 180, 170, 169, 185, 168, 167, 163, 188, 162,
- 175, 179, 181, 173, 166, 182, 189, 184, 183, 176,
- 186, 171, 160, 178, 177, 159, 157, 158, 154, 155,
- 156, 114, 116, 115, 149, 150, 127, 128, 129, 136,
- 133, 135, 130, 131, 151, 152, 137, 138, 142, 145,
- 146, 132, 134, 124, 125, 126, 139, 140, 141, 143,
- 144, 147, 148, 153, 565, 51, 117, 118, 564, 0,
- 0, 0, 54, 0, 0, 50, 0, 482, 0, 286,
- 0, 0, 0, 108, 0, 348, 347, 0, 0, 482,
- 286, 183, 176, 186, 171, 154, 155, 156, 114, 115,
- 0, 119, 121, 20, 120, 451, 456, 455, 601, 604,
- 593, 603, 0, 453, 0, 605, 602, 594, 577, 0,
- 0, 0, 0, 261, 273, 70, 265, 607, 431, 607,
- 569, 71, 69, 607, 255, 302, 68, 0, 254, 408,
- 67, 593, 0, 596, 18, 0, 0, 217, 0, 218,
- 205, 208, 298, 0, 0, 0, 593, 15, 593, 74,
- 14, 0, 593, 0, 598, 598, 245, 0, 0, 598,
- 567, 0, 0, 82, 0, 92, 99, 535, 465, 464,
- 466, 467, 0, 463, 462, 435, 440, 439, 442, 0,
- 0, 437, 444, 0, 446, 0, 458, 0, 469, 0,
- 473, 474, 49, 232, 233, 4, 594, 0, 0, 0,
- 0, 0, 0, 0, 542, 538, 537, 536, 539, 540,
- 544, 556, 511, 512, 560, 559, 555, 535, 0, 500,
- 0, 504, 509, 607, 514, 607, 534, 0, 541, 543,
- 546, 520, 0, 553, 520, 558, 520, 0, 518, 496,
- 500, 0, 396, 398, 0, 88, 0, 80, 77, 0,
+ 2, 0, 0, 1, 0, 0, 0, 0, 293, 0,
+ 0, 317, 320, 0, 0, 597, 337, 338, 339, 340,
+ 305, 270, 270, 488, 487, 489, 490, 599, 0, 10,
+ 0, 492, 491, 493, 479, 583, 481, 480, 483, 482,
+ 475, 476, 437, 438, 494, 495, 291, 0, 0, 0,
+ 0, 0, 0, 295, 611, 611, 88, 312, 0, 0,
+ 0, 0, 0, 0, 452, 0, 0, 0, 3, 597,
+ 6, 9, 27, 33, 539, 539, 49, 60, 59, 0,
+ 76, 0, 80, 90, 0, 54, 248, 0, 61, 310,
+ 284, 285, 435, 286, 287, 288, 433, 432, 464, 434,
+ 431, 486, 0, 289, 290, 270, 5, 8, 337, 338,
+ 305, 611, 413, 0, 113, 114, 291, 0, 0, 0,
+ 0, 539, 539, 116, 496, 341, 0, 486, 290, 0,
+ 333, 168, 178, 169, 165, 194, 195, 196, 197, 176,
+ 191, 184, 174, 173, 189, 172, 171, 167, 192, 166,
+ 179, 183, 185, 177, 170, 186, 193, 188, 187, 180,
+ 190, 175, 164, 182, 181, 163, 161, 162, 158, 159,
+ 160, 118, 120, 119, 153, 154, 131, 132, 133, 140,
+ 137, 139, 134, 135, 155, 156, 141, 142, 146, 149,
+ 150, 136, 138, 128, 129, 130, 143, 144, 145, 147,
+ 148, 151, 152, 157, 569, 55, 121, 122, 568, 0,
+ 0, 0, 58, 539, 539, 0, 0, 54, 0, 486,
+ 0, 290, 0, 0, 0, 112, 0, 352, 351, 0,
+ 0, 486, 290, 187, 180, 190, 175, 158, 159, 160,
+ 118, 119, 0, 123, 125, 20, 124, 455, 460, 459,
+ 605, 608, 597, 607, 0, 457, 0, 609, 606, 598,
+ 581, 0, 0, 0, 0, 265, 277, 74, 269, 611,
+ 435, 611, 573, 75, 73, 611, 259, 306, 72, 0,
+ 258, 412, 71, 597, 0, 600, 18, 0, 0, 221,
+ 0, 222, 209, 212, 302, 0, 0, 0, 597, 15,
+ 597, 78, 14, 0, 597, 0, 602, 602, 249, 0,
+ 0, 602, 571, 0, 0, 86, 0, 96, 103, 539,
+ 469, 468, 470, 471, 0, 467, 466, 439, 444, 443,
+ 446, 0, 0, 441, 448, 0, 450, 0, 462, 0,
+ 473, 0, 477, 478, 53, 236, 237, 4, 598, 0,
+ 0, 0, 0, 0, 0, 0, 546, 542, 541, 540,
+ 543, 544, 548, 560, 515, 516, 564, 563, 559, 539,
+ 0, 504, 0, 508, 513, 611, 518, 611, 538, 0,
+ 545, 547, 550, 524, 0, 557, 524, 562, 524, 0,
+ 522, 500, 0, 0, 400, 402, 0, 92, 0, 84,
+ 81, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 208, 211, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 204, 207, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 590, 607,
- 589, 0, 592, 591, 0, 413, 411, 307, 432, 0,
- 0, 402, 61, 305, 326, 109, 110, 111, 473, 474,
- 500, 493, 324, 0, 607, 0, 0, 0, 588, 587,
- 52, 0, 607, 298, 339, 0, 338, 0, 0, 607,
- 0, 0, 0, 0, 0, 0, 298, 0, 607, 0,
- 321, 0, 122, 0, 0, 452, 454, 0, 0, 606,
- 571, 0, 274, 576, 268, 0, 271, 262, 0, 270,
- 0, 263, 0, 593, 0, 593, 607, 607, 256, 267,
- 593, 0, 304, 48, 0, 0, 0, 0, 0, 0,
- 17, 593, 296, 13, 594, 73, 292, 295, 299, 600,
- 246, 599, 600, 248, 300, 568, 98, 90, 0, 85,
- 0, 0, 607, 0, 535, 309, 393, 468, 0, 0,
- 443, 449, 436, 438, 445, 447, 459, 470, 0, 0,
- 7, 21, 22, 23, 24, 25, 46, 47, 502, 548,
- 0, 593, 593, 520, 0, 0, 503, 0, 516, 563,
- 513, 0, 517, 501, 0, 527, 549, 0, 530, 557,
- 0, 532, 561, 0, 0, 607, 0, 28, 30, 0,
- 31, 593, 0, 78, 89, 44, 34, 42, 0, 249,
- 194, 29, 0, 286, 222, 227, 228, 229, 224, 226,
- 236, 237, 230, 231, 203, 206, 234, 235, 32, 214,
- 595, 223, 225, 219, 220, 221, 209, 210, 211, 212,
- 213, 580, 585, 581, 586, 407, 266, 405, 0, 607,
- 580, 582, 581, 583, 406, 266, 580, 581, 266, 607,
- 607, 35, 249, 195, 41, 202, 59, 62, 0, 0,
- 0, 109, 110, 113, 0, 0, 607, 0, 593, 0,
- 290, 607, 607, 419, 607, 340, 584, 297, 0, 580,
- 581, 607, 342, 314, 341, 317, 584, 297, 0, 580,
- 581, 0, 0, 0, 0, 273, 0, 320, 572, 574,
- 573, 0, 0, 275, 269, 607, 575, 570, 253, 251,
- 257, 258, 260, 303, 597, 19, 0, 26, 201, 75,
- 16, 593, 598, 91, 83, 95, 97, 0, 94, 96,
- 595, 0, 461, 0, 450, 215, 216, 542, 356, 593,
- 349, 499, 497, 0, 240, 331, 0, 510, 607, 562,
- 519, 547, 520, 520, 520, 554, 520, 542, 520, 242,
- 332, 384, 382, 0, 381, 380, 279, 0, 87, 81,
- 0, 0, 0, 0, 0, 607, 0, 0, 0, 0,
- 404, 65, 410, 258, 0, 0, 403, 63, 399, 58,
- 0, 0, 607, 327, 0, 0, 410, 330, 566, 53,
- 420, 421, 607, 422, 0, 607, 345, 0, 0, 343,
- 0, 0, 410, 0, 0, 0, 0, 0, 410, 0,
- 123, 457, 319, 0, 0, 272, 276, 264, 593, 607,
- 11, 293, 247, 93, 0, 386, 0, 0, 310, 441,
- 357, 354, 545, 0, 593, 0, 515, 0, 523, 0,
- 525, 0, 531, 0, 528, 533, 0, 379, 595, 595,
- 506, 507, 607, 607, 364, 0, 551, 364, 364, 362,
- 0, 0, 277, 79, 43, 250, 580, 581, 0, 580,
- 581, 0, 0, 40, 199, 39, 200, 66, 0, 37,
- 197, 38, 198, 64, 400, 401, 0, 0, 0, 0,
- 494, 325, 0, 0, 424, 346, 0, 12, 426, 0,
- 311, 0, 312, 0, 0, 322, 275, 607, 252, 259,
- 392, 0, 0, 0, 0, 0, 352, 498, 241, 520,
- 520, 520, 520, 243, 0, 0, 0, 505, 0, 360,
- 361, 364, 372, 550, 0, 375, 0, 377, 397, 278,
- 410, 239, 238, 36, 196, 414, 412, 0, 0, 0,
- 423, 0, 100, 107, 0, 425, 0, 315, 318, 0,
- 416, 417, 415, 390, 595, 388, 391, 395, 394, 358,
- 355, 0, 350, 524, 0, 521, 526, 529, 385, 383,
- 298, 0, 508, 607, 0, 363, 370, 364, 364, 364,
- 552, 364, 364, 60, 328, 106, 0, 607, 0, 607,
- 607, 0, 0, 387, 0, 353, 0, 520, 584, 297,
- 359, 0, 367, 0, 369, 0, 376, 0, 373, 378,
- 103, 105, 0, 580, 581, 418, 344, 323, 389, 351,
- 522, 364, 364, 364, 364, 101, 368, 0, 365, 371,
- 374, 364, 366
+ 594, 611, 593, 0, 596, 595, 0, 417, 415, 311,
+ 436, 0, 0, 406, 65, 309, 330, 113, 114, 115,
+ 477, 478, 504, 497, 328, 0, 611, 0, 0, 0,
+ 592, 591, 56, 0, 611, 302, 0, 0, 343, 0,
+ 342, 0, 0, 611, 0, 0, 0, 0, 0, 0,
+ 302, 0, 611, 0, 325, 0, 126, 0, 0, 456,
+ 458, 0, 0, 610, 575, 0, 278, 580, 272, 0,
+ 275, 266, 0, 274, 0, 267, 0, 597, 0, 597,
+ 611, 611, 260, 271, 597, 0, 308, 52, 0, 0,
+ 0, 0, 0, 0, 17, 597, 300, 13, 598, 77,
+ 296, 299, 303, 604, 250, 603, 604, 252, 304, 572,
+ 102, 94, 0, 89, 0, 0, 611, 0, 539, 313,
+ 397, 472, 0, 0, 447, 453, 440, 442, 449, 451,
+ 463, 474, 0, 0, 7, 21, 22, 23, 24, 25,
+ 50, 51, 506, 552, 0, 597, 597, 524, 0, 0,
+ 507, 0, 520, 567, 517, 0, 521, 505, 0, 531,
+ 553, 0, 534, 561, 0, 536, 565, 0, 0, 611,
+ 0, 28, 30, 0, 31, 597, 0, 82, 93, 48,
+ 34, 46, 0, 253, 198, 29, 0, 290, 226, 231,
+ 232, 233, 228, 230, 240, 241, 234, 235, 207, 210,
+ 238, 239, 32, 218, 599, 227, 229, 223, 224, 225,
+ 213, 214, 215, 216, 217, 584, 589, 585, 590, 411,
+ 270, 409, 0, 611, 584, 586, 585, 587, 410, 270,
+ 584, 585, 270, 611, 611, 35, 253, 199, 45, 206,
+ 63, 66, 0, 0, 0, 113, 114, 117, 0, 0,
+ 611, 0, 597, 0, 294, 611, 611, 423, 0, 0,
+ 611, 344, 588, 301, 0, 584, 585, 611, 346, 318,
+ 345, 321, 588, 301, 0, 584, 585, 0, 0, 0,
+ 0, 277, 0, 324, 576, 578, 577, 0, 0, 279,
+ 273, 611, 579, 574, 257, 255, 261, 262, 264, 307,
+ 601, 19, 0, 26, 205, 79, 16, 597, 602, 95,
+ 87, 99, 101, 0, 98, 100, 599, 0, 465, 0,
+ 454, 219, 220, 546, 360, 597, 353, 503, 501, 0,
+ 41, 244, 335, 0, 514, 611, 566, 523, 551, 524,
+ 524, 524, 558, 524, 546, 524, 43, 246, 336, 388,
+ 386, 0, 385, 384, 283, 0, 91, 85, 0, 0,
+ 0, 0, 0, 611, 0, 0, 0, 0, 408, 69,
+ 414, 262, 0, 0, 407, 67, 403, 62, 0, 0,
+ 611, 331, 0, 0, 414, 334, 570, 57, 424, 425,
+ 611, 426, 0, 611, 349, 0, 0, 347, 0, 0,
+ 414, 0, 0, 0, 0, 0, 414, 0, 127, 461,
+ 323, 0, 0, 276, 280, 268, 597, 611, 11, 297,
+ 251, 97, 0, 390, 0, 0, 314, 445, 361, 358,
+ 549, 0, 597, 0, 0, 519, 0, 527, 0, 529,
+ 0, 535, 0, 532, 537, 0, 0, 383, 599, 599,
+ 510, 511, 611, 611, 368, 0, 555, 368, 368, 366,
+ 0, 0, 281, 83, 47, 254, 584, 585, 0, 584,
+ 585, 0, 0, 40, 203, 39, 204, 70, 0, 37,
+ 201, 38, 202, 68, 404, 405, 0, 0, 0, 0,
+ 498, 329, 0, 0, 428, 350, 0, 12, 430, 0,
+ 315, 0, 316, 0, 0, 326, 279, 611, 256, 263,
+ 396, 0, 0, 0, 0, 0, 356, 502, 42, 245,
+ 524, 524, 524, 524, 44, 247, 0, 0, 0, 509,
+ 0, 364, 365, 368, 376, 554, 0, 379, 0, 381,
+ 401, 282, 414, 243, 242, 36, 200, 418, 416, 0,
+ 0, 0, 427, 0, 104, 111, 0, 429, 0, 319,
+ 322, 0, 420, 421, 419, 394, 599, 392, 395, 399,
+ 398, 362, 359, 0, 354, 528, 0, 525, 530, 533,
+ 389, 387, 302, 0, 512, 611, 0, 367, 374, 368,
+ 368, 368, 556, 368, 368, 64, 332, 110, 0, 611,
+ 0, 611, 611, 0, 0, 391, 0, 357, 0, 524,
+ 588, 301, 363, 0, 371, 0, 373, 0, 380, 0,
+ 377, 382, 107, 109, 0, 584, 585, 422, 348, 327,
+ 393, 355, 526, 368, 368, 368, 368, 105, 372, 0,
+ 369, 375, 378, 368, 370
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -848, -848, -848, 382, -848, 28, -848, -255, 267, -848,
- 120, -848, -31, -208, 229, 64, 100, -848, 83, -46,
- -848, -605, -848, 30, 886, -183, -19, -66, -274, -472,
- -45, 1894, -87, 898, 20, 14, -848, -848, 15, -848,
- 1140, -848, 707, 65, -55, -403, 72, 26, -848, -298,
- -233, 280, 375, -340, 129, -848, -848, -848, -848, -848,
- -848, -848, -848, -848, -848, -848, -848, -848, -848, -848,
- -848, 8, -216, -467, -115, -563, -848, -848, -848, 136,
- 91, -848, -565, -848, -848, -424, -848, -110, -848, -848,
- 114, -848, -848, -848, -86, -848, -848, -469, -848, -104,
- -848, -848, -848, -848, -848, -15, 21, -178, -848, -848,
- -848, -848, -405, -273, -848, 669, -848, -848, -848, 16,
- -848, -848, -848, 1698, 2055, 921, 1364, -848, -848, -848,
- 405, 74, -668, 354, -16, -848, -848, -848, 73, -20,
- -195, -246, -815, -685, -526, -848, 135, -735, -520, -847,
- -11, -505, -848, -439, -848, 262, -318, -848, -848, -848,
- 45, 667, -422, 609, -265, -848, -848, -53, -848, 34,
- -18, 366, -264, 601, -21, -62, -2
+ -850, -850, -850, 379, -850, 44, -850, -221, 102, -850,
+ 30, -850, -19, -171, 161, 1373, 1745, -850, 1, -30,
+ -850, -656, -850, -13, 889, -220, 23, -60, -285, -450,
+ 15, 2261, -78, 901, 43, 3, -850, -850, 19, -850,
+ 1221, -850, 464, 81, -495, -377, 114, 17, -850, -415,
+ -256, -111, 39, -338, 32, -850, -850, -850, -850, -850,
+ -850, -850, -850, -850, -850, -850, -850, -850, -850, -850,
+ -850, 8, -213, -435, -122, -602, -850, -850, -850, 134,
+ 101, -850, -566, -850, -850, -359, -850, -116, -850, -850,
+ 135, -850, -850, -850, -81, -850, -850, -458, -850, -112,
+ -850, -850, -850, -850, -850, 66, 6, -158, -850, -850,
+ -850, -850, -394, -280, -850, 671, -850, -850, -850, 13,
+ -850, -850, -850, 2384, 2648, 924, 1983, -850, -850, 14,
+ 459, 24, 163, 357, -14, -850, -850, -850, 112, -453,
+ 189, -206, -837, -693, -553, -850, 280, -715, -542, -849,
+ -12, -518, -850, -90, -850, 111, -357, -850, -850, -850,
+ 26, 691, -399, 625, -173, -850, -850, -82, -850, 42,
+ -25, 525, -249, 78, -26, 9, -2
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 1, 2, 68, 69, 70, 285, 461, 462, 296,
- 297, 514, 72, 606, 73, 74, 75, 679, 213, 76,
- 77, 667, 802, 78, 79, 298, 80, 81, 82, 539,
- 83, 214, 123, 124, 241, 242, 243, 702, 644, 207,
- 85, 303, 610, 645, 275, 504, 505, 276, 277, 266,
- 497, 532, 649, 600, 86, 210, 301, 731, 302, 317,
- 741, 221, 826, 222, 827, 701, 979, 670, 668, 909,
- 456, 288, 465, 693, 818, 819, 228, 749, 934, 1005,
- 952, 868, 773, 774, 869, 844, 984, 985, 545, 848,
- 393, 595, 88, 89, 443, 660, 659, 488, 982, 682,
- 812, 913, 917, 90, 91, 92, 330, 331, 549, 93,
- 94, 95, 550, 251, 252, 253, 483, 96, 97, 98,
- 324, 99, 100, 217, 218, 103, 219, 452, 669, 368,
- 450, 370, 371, 372, 871, 872, 373, 374, 375, 760,
- 585, 377, 378, 379, 380, 570, 381, 382, 383, 876,
- 877, 384, 385, 386, 387, 388, 578, 209, 457, 308,
- 507, 491, 270, 129, 674, 647, 460, 455, 434, 511,
- 845, 512, 530, 255, 256, 257, 300
+ -1, 1, 2, 68, 69, 70, 287, 463, 464, 298,
+ 299, 518, 72, 610, 73, 213, 214, 683, 215, 76,
+ 77, 671, 810, 78, 79, 300, 80, 81, 82, 543,
+ 83, 216, 123, 124, 243, 244, 245, 708, 648, 207,
+ 85, 305, 614, 649, 277, 508, 509, 278, 279, 268,
+ 501, 536, 653, 604, 86, 210, 303, 737, 304, 319,
+ 747, 223, 834, 224, 835, 707, 991, 674, 672, 919,
+ 458, 290, 469, 699, 826, 827, 230, 755, 944, 1017,
+ 964, 878, 781, 782, 879, 852, 996, 997, 549, 856,
+ 395, 599, 88, 89, 445, 664, 663, 492, 994, 686,
+ 820, 923, 927, 90, 91, 92, 332, 333, 553, 93,
+ 94, 95, 554, 253, 254, 255, 487, 96, 97, 98,
+ 326, 99, 100, 219, 220, 103, 221, 454, 673, 370,
+ 371, 372, 373, 374, 881, 882, 375, 376, 377, 378,
+ 589, 379, 380, 381, 382, 574, 383, 384, 385, 886,
+ 887, 386, 387, 388, 389, 390, 582, 209, 459, 310,
+ 511, 495, 272, 129, 678, 651, 462, 457, 436, 515,
+ 853, 516, 534, 257, 258, 259, 302
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -2458,472 +2461,560 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 106, 268, 268, 437, 473, 268, 283, 346, 695, 282,
- 87, 313, 87, 126, 126, 704, 398, 216, 216, 278,
- 342, 227, 206, 216, 216, 216, 648, 205, 216, 206,
- 244, 447, 107, 299, 431, 433, 501, 875, 538, 268,
- 268, 533, 284, 206, 244, 535, 263, 263, 280, 254,
- 263, 675, 306, 310, 376, 376, 551, 582, 761, 611,
- 87, 269, 269, 851, 314, 269, 688, 765, 734, 121,
- 121, 546, 389, 206, 216, 698, 438, 121, 323, 762,
- 717, 333, 335, 337, 339, 708, 274, 279, 265, 271,
- 314, -103, 272, 220, 800, 801, 464, 435, 250, 305,
- 309, 376, 376, 345, 870, 122, 122, 1010, 435, 278,
- 717, 521, 891, 122, -484, 575, 986, 771, 846, 815,
- 121, 572, 71, -100, 71, 216, 432, 87, 825, 756,
- 779, 442, -107, 692, 125, 125, 594, 3, -480, 737,
- -105, 428, 125, -481, -480, 763, 121, -106, 766, 391,
- 364, -102, 553, -104, 1022, 553, 122, 553, 392, 553,
- 249, 553, 646, 470, 772, -101, 655, -100, 472, 658,
- 441, -484, -108, -100, 479, 365, 274, 279, 892, 362,
- 363, 364, 122, 430, 1010, 125, 897, 286, -92, 588,
- 676, 591, 903, -483, 441, 245, 391, -107, 246, 247,
- 714, 677, 847, 646, 714, 655, 365, 986, -95, 436,
- -580, 125, 568, 601, 676, 273, 875, 551, 87, 875,
- 436, 245, 496, 292, 246, 247, 248, 761, 249, 216,
- 216, 661, 664, 394, 524, 518, -485, 908, 212, 212,
- -92, 281, 531, 531, 212, 249, 537, 531, 762, -99,
- -483, 992, 248, 676, 249, 206, -486, -97, 268, -581,
- 323, 543, 268, 395, -98, 499, 538, 499, -94, -488,
- -96, 508, -487, 399, 501, 299, 569, 744, 676, 439,
- 870, 216, -93, 870, 484, 216, 870, -489, 870, 216,
- 216, -73, 440, -485, 87, 519, 875, 376, 740, 451,
- 717, 87, 87, 263, 474, 475, 835, 263, 883, 87,
- 519, 440, -87, -486, 763, -475, 352, 353, -479, 295,
- 314, -107, 269, 458, -106, 273, -488, 761, 538, -487,
- 523, 340, 341, 878, 445, 761, 870, 765, 446, -106,
- -107, 811, -99, 548, -489, -98, 444, 376, 597, 509,
- 794, 281, 603, 607, 87, 216, 216, 216, 216, 87,
- 216, 216, 925, 870, 980, 870, 673, 870, 605, 870,
- 553, 579, -475, 579, 560, -479, 121, 299, 87, -102,
- 459, 42, 888, 814, 43, 487, 295, 823, 824, 870,
- 921, 267, 267, 607, 607, 267, 463, 794, 467, 87,
- -94, 471, 216, 476, 87, 314, 480, 612, 605, 605,
- 448, 449, 122, 520, 268, 805, -102, -104, 940, -101,
- 482, 526, 487, 714, 714, 761, -102, 508, 59, 304,
- 561, 562, 563, 564, 496, 744, 490, 216, 551, 268,
- 856, 125, 817, 814, 944, 945, 653, 612, 612, 653,
- 212, 212, 508, 485, 268, 515, 246, 247, 981, 263,
- 683, 121, 216, 268, 87, 216, 71, 508, 842, 415,
- 653, 565, 733, 87, 537, 283, 508, 216, 711, 369,
- 390, 87, 837, 268, 263, 653, 216, 268, 522, -595,
- 834, 87, -595, -595, 653, 714, 654, 122, 761, 263,
- 528, -72, 573, 534, 499, 499, 538, 717, 263, 761,
- 510, 513, 1008, 106, 268, 1011, 536, 268, 880, 646,
- 654, 655, 249, 87, 376, 540, 125, 268, 725, 206,
- 244, 558, 87, 653, 332, 654, 537, 326, 327, 720,
- 508, 795, 559, 715, 654, 906, 314, 498, 314, 502,
- 216, 577, 574, 516, 949, 950, 898, 87, 653, 786,
- 554, 295, 744, 326, 327, -495, 415, 858, 860, 862,
- -104, 864, 263, 865, 732, 580, 212, 212, 212, 212,
- 893, 566, 567, 654, 529, -101, 899, 901, 581, 328,
- 329, 932, 1052, 775, 422, 423, 424, 425, 426, 795,
- 796, 898, 121, 798, 121, -297, 837, 589, 654, 283,
- 314, 105, 787, 105, 1042, 328, 329, 584, 105, 105,
- -297, 796, 587, 590, 105, 105, 105, 592, -104, 105,
- -101, 714, 593, 245, 604, 71, 246, 247, 122, 628,
- 122, 666, 680, 681, 730, 685, 547, 499, 506, -96,
- 758, -93, 267, 278, 968, -297, 278, 775, 775, -581,
- 707, 105, -297, 295, 525, 719, 121, 125, 527, 125,
- 531, 724, 791, 727, 278, 105, 755, 216, 87, 813,
- 816, 797, 816, -87, 799, 1030, 678, 753, 770, 816,
- 963, 780, 781, 782, 206, 792, 464, 974, 806, 809,
- 807, 814, 122, 976, 822, 750, 268, 268, 828, 216,
- 831, 790, 904, 499, 537, -577, 830, 206, 244, 283,
- 274, 832, 764, 274, 840, 768, 105, 843, 105, 249,
- 849, 125, 684, 568, 853, 857, 607, 859, 861, 790,
- 691, 274, 607, 895, 993, 995, 996, 997, 607, 607,
- 703, 605, 804, 676, 863, 911, 579, 605, 912, 916,
- 930, -337, -102, 605, 605, 920, 839, 427, 922, 599,
- 268, 931, 958, 935, 599, 415, -337, 948, 268, -475,
- 951, 87, 428, 508, 829, 954, 721, 722, 314, 87,
- 612, 956, 960, 216, -475, 245, 612, 216, 246, 247,
- 775, 653, 612, 612, 965, 424, 425, 426, 87, 87,
- 914, -337, 977, 918, 466, 263, 743, 429, -337, 105,
- -104, 466, 87, 966, 430, 216, 248, -577, 249, -475,
- 105, 105, 1050, -577, 87, 87, -475, 499, 839, 759,
- 978, 987, 87, 759, 121, 873, 994, 283, 283, 988,
- 998, 654, 607, 999, 87, 87, 1000, 1013, 489, 1014,
- 1015, -102, 706, 1024, -102, -102, 1047, 605, 1026, 718,
- 579, 579, 334, 1031, 326, 327, 723, 1033, 947, 777,
- 122, 1035, 105, 953, 1037, -580, 105, 729, -581, 1055,
- 105, 105, -102, 1057, -102, 105, 453, 726, 212, 225,
- 919, 884, 105, 105, 130, 1046, 612, 874, 867, 125,
- 105, 428, 1048, 905, 268, 1045, 87, 87, 1018, -104,
- 971, 486, -104, -104, 87, 816, 328, 329, 208, 793,
- 212, 757, 1002, 468, 121, 500, 0, 751, 752, 121,
- 1007, 0, 555, -578, 326, 327, 454, 489, 428, 0,
- -104, 0, -104, 430, 0, 105, 105, 105, 105, 105,
- 105, 105, 105, 283, 0, 0, 1023, 778, 955, 957,
- 122, 0, 0, -287, 0, 122, 121, 0, 583, 105,
- 0, 0, 87, 469, 87, 0, 833, 87, -287, 0,
- 430, 0, 939, 0, 941, 502, 328, 329, 942, 125,
- 105, 579, 268, 105, 125, 105, -294, -479, 105, -294,
- -294, 0, 122, 0, 0, 508, 0, 683, 816, 0,
- 0, 1003, -479, -287, 873, 216, 0, 873, 0, 873,
- -287, 0, 0, 653, 879, 0, -294, -294, 105, -294,
- 0, 125, 1006, 0, 808, 0, 212, 263, 105, 105,
- 0, 0, 0, 352, 353, -578, 599, -479, 0, -584,
- 0, -578, 0, 105, -479, 105, 105, 0, 907, 989,
- 990, 0, 0, 0, 105, 694, 694, 873, 105, 0,
- 0, 915, 105, 654, -580, 0, 0, 105, 0, 1009,
- 0, 1012, 105, 923, 924, 0, 0, 841, 1032, 1034,
- 1036, 927, 1038, 1039, 873, 0, 873, 0, 873, 0,
- 873, 0, 0, 0, 933, 852, 0, 0, -581, 929,
- 0, -410, 0, -584, 105, 489, 1025, 0, 0, 1027,
- 873, 245, 489, 105, 246, 247, 245, 0, -584, 246,
- 247, 0, 1056, 1058, 1059, 1060, 663, 665, -580, 215,
- 215, 105, 1062, 0, 0, 215, 264, 264, 105, 0,
- 264, 1049, 248, -580, 249, 0, 1051, 248, 1053, 249,
- 0, -584, 1054, -584, 0, 967, 0, -580, 663, 665,
- -584, 0, -581, 975, 0, -410, 0, 287, 289, 290,
- 291, 0, 1061, 0, 264, 307, -580, -581, -580, 477,
- -410, 0, -580, 0, 928, -580, 343, 344, 517, 0,
- 759, 0, 0, 879, 428, 0, 879, 0, 879, 0,
- 937, 0, 0, 428, 0, 0, 728, 0, 0, 0,
- -581, 0, -581, -410, 0, -410, -581, 0, 0, -581,
- 0, 1019, -410, 1020, 0, 0, 1021, 0, 541, 478,
- 0, 641, 642, 0, 0, 643, 430, 215, 469, 325,
- 326, 327, 0, 428, 0, 430, 879, 0, 0, 803,
- 174, 175, 176, 177, 178, 179, 180, 181, 105, 105,
- 182, 183, 0, 0, 0, 0, 184, 185, 186, 187,
- 0, 0, 0, 879, 0, 879, 0, 879, 542, 879,
- 188, 189, 190, -482, 0, 430, -286, 466, -298, 0,
- 105, 0, 328, 329, 0, 0, 0, 0, -482, 879,
- 0, -286, 0, -298, 191, 192, 193, 194, 195, 196,
- 197, 198, 199, 200, 0, 201, 202, 747, 0, 355,
- 356, 357, 358, 203, 273, 0, 747, 0, 355, 356,
- 357, 358, 0, -482, 0, 359, -286, 784, -298, 0,
- -482, 215, 215, -286, 359, -298, 104, 0, 104, 128,
- 128, 983, 428, 355, 356, 357, 358, 230, 0, 0,
- 0, 0, 105, 347, 348, 349, 350, 351, 0, 359,
- 105, 105, 0, 0, 105, 0, 0, 105, 105, 492,
- 493, 494, 343, 105, 105, 910, 0, 785, 0, 105,
- 105, 0, 1001, 264, 430, 0, 104, 264, 0, 0,
- 316, 215, 215, 105, 0, 1016, 105, 428, 850, 354,
- 694, 355, 356, 357, 358, 105, 105, 991, 0, 0,
- 428, 0, 0, 105, 0, 0, 316, 359, 0, 0,
- 336, 326, 327, 0, 0, 105, 105, 0, 0, 338,
- 326, 327, 454, 571, 0, 0, 0, 245, 0, 430,
- 246, 247, 360, 0, 0, 1017, 0, 0, 361, 362,
- 363, 364, 430, 104, 547, 326, 327, 215, 215, 215,
- 215, 0, 215, 215, 496, 894, 896, 0, 248, 0,
- 249, 900, 902, 328, 329, 0, 365, 105, 0, 366,
- 0, 576, 328, 329, 466, 0, 0, 105, 105, 0,
- 466, 0, 586, 0, 0, 105, 0, 894, 896, 0,
- 900, 902, 0, 0, 598, 0, 0, 328, 329, 609,
- 614, 615, 616, 617, 618, 619, 620, 621, 622, 623,
- 624, 625, 626, 627, 0, 629, 630, 631, 632, 633,
- 634, 635, 636, 637, 638, 639, 640, 0, 0, 264,
- 552, 326, 327, 0, 104, 0, 556, 326, 327, 662,
- 662, 0, 0, 105, 0, 105, 0, 0, 105, 0,
- 0, 557, 326, 327, 264, 0, 767, 215, 355, 356,
- 357, 358, 742, 326, 327, 964, 0, 662, 0, 264,
- 0, 662, 662, 0, 359, 0, 0, 0, 264, 412,
- 413, 0, 0, 328, 329, 0, 105, 705, 964, 328,
- 329, 709, 415, 0, 0, 710, 0, 0, 713, 360,
- 716, 0, 307, 291, 328, 329, 362, 363, 364, 0,
- 104, 0, 0, 0, 0, 328, 329, 104, 104, 662,
- 422, 423, 424, 425, 426, 104, 0, 0, 0, 713,
- 0, 0, 307, 365, 0, 0, 316, 0, 0, 0,
- 0, 0, 264, 0, 0, 0, 0, 0, 354, 0,
- 355, 356, 357, 358, 0, 0, 0, 0, 745, 746,
- 101, 0, 101, 127, 127, 127, 359, 0, 0, 0,
- 104, 229, 0, 0, 754, 104, 0, 0, 0, 0,
- 0, 0, 0, 747, 0, 355, 356, 357, 358, 0,
- 0, 360, 0, 769, 104, 0, 776, 361, 362, 363,
- 364, 359, 0, 0, 0, 0, 0, 0, 0, 0,
- 101, 0, 0, 0, 315, 104, 0, 0, -607, 0,
- 104, 316, 0, 613, 0, 365, 360, 0, 366, 0,
- 0, 0, 748, 354, 0, 355, 356, 357, 358, 0,
- 315, 367, 0, 354, 0, 355, 356, 357, 358, 0,
- 0, 359, 0, 354, 0, 355, 356, 357, 358, 0,
- 0, 359, 0, 613, 613, 0, 0, 0, 0, 215,
- 0, 359, 0, 0, 0, 0, 360, 101, 0, 0,
- 104, 810, 361, 362, 363, 364, 360, 0, 0, 104,
- 0, 0, 361, 362, 363, 364, 360, 104, 0, 0,
- 0, 215, 361, 362, 363, 364, 0, 104, 0, 0,
- 365, 0, 836, 366, 747, 0, 355, 356, 357, 358,
- 365, 713, 307, 366, 0, 0, 367, 0, 0, 0,
- 365, 0, 359, 366, 0, 0, 544, 0, 0, 104,
- 0, 0, 0, 0, 1004, 0, 0, 747, 104, 355,
- 356, 357, 358, 0, 0, 0, 84, 360, 84, 0,
- 0, 0, 316, 936, 316, 359, 0, 226, 101, 0,
- 0, 0, 0, 104, 0, 0, 0, 882, 0, 0,
- 0, 0, 662, 885, 0, 264, 0, 0, 662, 662,
- 360, 0, 0, 713, 662, 662, 0, 354, 0, 355,
- 356, 357, 358, 0, 0, 0, 84, 0, 0, 0,
- 0, 0, 0, 0, 0, 359, 0, 215, 0, 0,
- 662, 662, 0, 662, 662, 0, 316, 0, 0, 0,
- 0, 854, 0, 926, 0, 0, 0, 0, 291, 0,
- 360, 0, 0, 0, 101, 0, 361, 362, 363, 364,
- 0, 101, 101, 0, 0, 938, 0, 0, 0, 101,
- 0, 0, 0, 0, 0, 0, 943, 0, 0, 0,
- 315, 412, 413, 84, 365, 0, 0, 366, 0, 0,
- 0, 959, 0, 0, 415, 0, 0, 0, 0, 0,
- 0, 961, 962, 0, 104, 0, 0, 0, 662, 0,
- 0, 0, 783, 0, 101, 0, 0, 0, 0, 101,
- 0, 421, 422, 423, 424, 425, 426, 102, 0, 102,
- 0, 662, 0, 0, 0, 0, 0, 0, 101, 307,
- 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
- 410, 411, 0, 0, 0, 0, 412, 413, 0, 101,
- 0, 0, 0, 0, 101, 315, 0, 0, 0, 415,
- 0, 0, 0, 0, 84, 0, 0, 102, 0, 0,
+ 106, 285, 284, 265, 265, 433, 435, 265, 439, 477,
+ 87, 222, 87, 126, 126, 505, 252, 218, 218, 280,
+ 586, 229, 400, 218, 218, 218, 206, 246, 218, 542,
+ 710, 286, 71, 206, 71, 768, 344, 125, 125, 282,
+ 449, 246, 271, 271, 701, 125, 271, 206, 107, 772,
+ 205, 555, 308, 312, 652, 269, 269, 256, 537, 269,
+ 87, 859, 539, 615, 316, 885, 335, 337, 339, 341,
+ 769, 315, 391, 391, 218, 301, 525, 206, 348, 679,
+ 307, 311, 270, 270, 823, 468, 270, 720, 125, 392,
+ 316, 720, -104, 306, 740, 833, 694, 808, 809, 393,
+ 714, 325, 276, 281, 998, 704, 854, 723, 437, 280,
+ 437, 347, -111, 550, 125, 366, -107, 1022, 572, -110,
+ 270, 270, 444, -109, 3, 218, -485, 87, -106, -108,
+ 267, 273, -105, 901, 274, 767, 474, 723, 767, -488,
+ 367, 767, 779, 907, 342, 343, 393, 483, -487, 913,
+ 434, 579, 354, 355, 297, -112, 787, 440, 502, -77,
+ 506, 294, -489, 576, 804, 430, 822, 806, 491, 743,
+ 212, 212, 598, -490, 557, 288, 212, 557, 605, 557,
+ -91, 557, 573, 557, 247, 804, 443, 248, 249, 780,
+ 855, 396, 276, 281, 1022, 533, -488, 998, 753, 902,
+ 357, 358, 359, 360, 394, -487, 768, 432, 522, -96,
+ 443, 391, 391, 397, 555, 250, 361, 251, 87, -489,
+ 438, 297, 438, -492, 478, 479, 275, 466, 467, -103,
+ -490, 218, 218, -99, 547, -584, -102, 681, 393, 401,
+ -101, 769, -585, -484, 918, -98, -100, 476, 885, -97,
+ 523, 885, -491, 1004, 541, 505, 650, 441, 1034, 542,
+ 659, 206, 265, 662, 251, 468, 265, 503, 453, 503,
+ 665, 668, -104, 512, 750, 275, -111, -493, 446, -110,
+ -492, 283, -301, 218, 680, 325, -479, 218, 465, 858,
+ 471, 218, 218, 470, 488, 475, 87, -301, -483, 650,
+ 470, 659, 480, 87, 87, 271, 767, 528, 768, -491,
+ 680, 87, 720, 720, 510, 535, 535, 768, 269, 301,
+ 535, 542, 316, 843, 772, 524, 450, 451, 885, 723,
+ 552, 460, -301, 530, -493, 992, -585, 493, 893, -301,
+ 527, 270, 746, -479, 283, 270, 125, 819, 251, 680,
+ 565, 566, 567, 568, 484, -483, 87, 218, 218, 218,
+ 218, 87, 218, 218, 247, 447, 601, 248, 249, 448,
+ 486, 611, 491, 583, 680, 583, 442, 677, 71, 500,
+ 87, 494, 609, 569, 212, 212, 720, 417, 461, 519,
+ 520, 500, 564, 513, 557, 250, 763, 251, 297, 727,
+ 728, 87, 935, 831, 218, -111, 87, 316, 865, 616,
+ 768, 611, 611, 767, 607, 767, 898, 767, 265, 767,
+ 526, 301, 609, 609, -76, 42, 493, 538, 43, 512,
+ 832, 125, -106, 532, 750, 603, 540, 555, 544, 218,
+ 603, -484, 562, 265, 514, 517, 364, 365, 366, 616,
+ 616, 563, 657, 813, 512, 657, 417, 587, 578, -108,
+ 265, -499, 687, 581, 218, 845, 87, 218, 584, 265,
+ -104, 512, 59, 367, 285, 717, 657, 87, 931, 993,
+ 512, 218, 739, 768, 541, 87, 426, 427, 428, 850,
+ 218, -96, 785, 657, 768, 87, 585, 270, 770, 842,
+ 297, 773, 657, 542, 825, 822, 802, -105, 503, 503,
+ 212, 212, 212, 212, 658, 570, 571, 106, 803, 956,
+ 957, 731, 270, 593, 720, 961, 962, 87, 721, 588,
+ 712, 246, -581, 265, 794, -106, 87, 206, 658, 270,
+ 723, 657, 801, 591, 512, 594, 541, -108, 270, 71,
+ 316, 726, 316, 767, 218, 658, 700, 700, 736, 738,
+ 890, 87, 596, 750, 658, 760, 657, -341, 270, -106,
+ 597, 690, 270, 429, 125, 592, 125, 595, 908, 697,
+ 452, 452, -341, 608, 776, 632, 218, 916, 430, 709,
+ 670, 845, 684, 442, 685, 688, -479, 783, 691, 270,
+ 689, 841, 270, 658, 551, 218, 493, -105, 285, 795,
+ 506, -479, 270, 493, 316, 713, 725, -341, 730, 650,
+ 682, 659, -111, 431, -341, 903, -91, 105, 658, 105,
+ 432, 909, 911, 942, 105, 105, 523, 733, 125, 759,
+ 105, 105, 105, -103, -581, 105, -479, 762, 789, 577,
+ -581, 503, 1054, -479, 788, 749, 802, 280, 1042, 778,
+ 280, 783, 783, 790, 800, -110, 698, 799, -106, 770,
+ 814, -106, -106, 815, 812, 822, 805, 105, 280, 807,
+ 803, 218, 87, 821, 824, -106, -102, 830, 824, 455,
+ 888, 105, 766, 765, 839, 824, 766, 836, 980, -106,
+ 840, -106, 206, 851, 430, 908, -98, 848, 837, -108,
+ 986, 838, 857, 251, 861, 218, 988, 863, 472, 503,
+ 285, 246, 572, 875, 603, 914, 817, 206, 541, 866,
+ -100, 798, 868, 430, -105, 870, 939, 975, 872, 456,
+ 276, 921, 105, 276, 105, 922, 432, 535, -298, -291,
+ 811, -298, -298, 847, 247, -97, 926, 248, 249, 798,
+ 611, 276, 930, 583, -291, 932, 611, 905, 473, 940,
+ 970, 609, 611, 611, 977, 432, 951, 609, -298, -298,
+ 265, -298, -414, 609, 609, 250, 941, 251, 945, 87,
+ 470, 512, 960, 270, 270, 963, 316, 87, 616, -291,
+ 989, 218, 966, 968, 616, 218, -291, 972, 783, 978,
+ 616, 616, 990, 657, 999, 1000, 87, 87, 924, 894,
+ 125, 928, 481, 1006, 1010, 529, 929, 847, 334, 531,
+ 87, 328, 329, 218, 212, 105, 489, 430, 1011, 248,
+ 249, 1012, 87, 87, 1025, 503, -414, 1026, 105, 105,
+ 87, 1027, 285, 285, 756, 1036, 1038, 680, 1043, 270,
+ 1045, -414, 87, 87, 1047, 1049, 247, 270, 212, 248,
+ 249, 771, 482, 1020, 775, 658, 1023, -584, 611, 432,
+ 583, 583, -108, 330, 331, 1059, 1067, -585, 959, 609,
+ 920, 889, 883, 965, -414, 1069, -414, 250, 732, 251,
+ 105, 1030, 227, -414, 105, 667, 669, 130, 105, 105,
+ 1058, 917, 125, 105, 877, 700, 616, 125, 1060, 1057,
+ 105, 105, 354, 355, 925, 490, 87, 87, 105, 247,
+ 983, 208, 248, 249, 87, 824, 933, 934, 764, 667,
+ 669, 521, 915, 880, 937, 753, 1014, 357, 358, 359,
+ 360, 1019, 545, 1064, 125, 0, 430, 943, 867, 869,
+ 871, 504, 873, 361, 874, 0, 0, 430, 0, 0,
+ 285, 1035, 0, 105, 105, 105, 105, 105, 105, 105,
+ 105, -108, 0, 0, -108, -108, 212, 734, 967, 969,
+ 0, 473, 0, 0, 87, -486, 87, 105, 432, 87,
+ 247, 470, 546, 248, 249, 270, 0, 470, 0, 432,
+ -486, 0, -108, 583, -108, 0, 265, 0, 105, -290,
+ 979, 105, 0, 105, 0, 0, 105, 512, 987, 687,
+ 824, 250, 724, 251, -290, 0, 1003, 218, 0, 729,
+ 0, 0, -302, 0, 0, -486, 792, 1013, 0, 657,
+ 735, 336, -486, 328, 329, 0, 105, -302, 1028, 0,
+ 884, 430, 430, 0, 1018, 0, 105, 105, 0, -290,
+ -582, 766, 1015, 430, 889, 883, -290, 889, 883, 889,
+ 883, 105, 558, 105, 105, 328, 329, 0, 1031, 0,
+ 1032, 0, -302, 1033, 105, 270, 793, 456, 105, -302,
+ 757, 758, 105, 432, 432, 330, 331, 105, 1029, 0,
+ 0, 658, 105, 0, 559, 432, 328, 329, 0, 0,
+ 1044, 1046, 1048, 880, 1050, 1051, 880, 889, 883, 880,
+ 786, 880, 0, 0, -483, -588, 0, 330, 331, 1005,
+ 1007, 1008, 1009, 0, 105, 0, 950, 0, 952, -483,
+ 0, 0, 953, 105, 889, 883, 889, 883, 889, 883,
+ 889, 883, 0, 0, 1068, 1070, 1071, 1072, 330, 331,
+ 0, 105, -599, 0, 1074, -599, -599, 0, 105, 880,
+ 889, 883, -582, 0, -483, 0, 0, 0, -582, 0,
+ 0, -483, 0, -584, -585, 0, 0, 0, 0, -588,
+ 0, 0, 0, 105, 0, 251, 880, 816, 880, 0,
+ 880, 0, 880, 0, -588, 0, 753, 0, 357, 358,
+ 359, 360, 105, 0, 1001, 1002, 0, 0, 1062, 0,
+ 217, 217, 880, 0, 361, 0, 217, 266, 266, 0,
+ 0, 266, 0, 0, 0, 0, 1021, -588, 1024, -588,
+ 327, 328, 329, -584, 0, 0, -588, -584, -585, 362,
+ 904, 906, 849, 0, 0, 754, 910, 912, 289, 291,
+ 292, 293, -584, -585, 0, 266, 309, 338, 328, 329,
+ 860, 0, 0, 1037, 0, 0, 1039, 345, 346, 0,
+ 0, 0, 904, 906, 0, 910, 912, 0, 105, 105,
+ 340, 328, 329, 330, 331, -584, -585, -584, -585, 0,
+ 0, -584, -585, 0, -584, -585, 0, 356, 1061, 357,
+ 358, 359, 360, 1063, 0, 1065, 0, 0, 0, 1066,
+ 330, 331, 105, 417, 0, 361, 0, 0, 217, 356,
+ 0, 357, 358, 359, 360, 551, 328, 329, 0, 1073,
+ 556, 328, 329, 330, 331, 0, 0, 361, 0, 0,
+ 362, 424, 425, 426, 427, 428, 363, 364, 365, 366,
+ 0, 938, 976, 0, 0, 74, 0, 74, 121, 121,
+ 0, 0, 362, 560, 328, 329, 121, 947, 363, 364,
+ 365, 366, 0, 0, 367, 976, 0, 368, 330, 331,
+ 561, 328, 329, 330, 331, 0, 105, 0, 0, -611,
+ 369, 748, 328, 329, 105, 105, 367, 0, 105, 368,
+ 0, 105, 105, 0, 0, 74, 0, 105, 105, 121,
+ 0, 0, 369, 105, 105, 0, 330, 331, 356, 0,
+ 357, 358, 359, 360, 217, 217, 0, 105, 0, 0,
+ 105, 0, 0, 330, 331, 121, 361, 0, 0, 105,
+ 105, 0, 0, 0, 330, 331, 247, 105, 0, 248,
+ 249, 0, 0, 356, 0, 357, 358, 359, 360, 105,
+ 105, 362, 496, 497, 498, 345, 0, 363, 364, 365,
+ 366, 361, 74, 500, 0, 0, 266, 250, 0, 251,
+ 266, 0, 0, 0, 217, 217, 0, 0, 0, 356,
+ 0, 357, 358, 359, 360, 367, 362, 0, 368, 0,
+ 0, 0, 363, 364, 365, 366, 0, 361, 0, 0,
+ 0, 548, 0, 105, 0, 0, 753, 0, 357, 358,
+ 359, 360, 0, 105, 105, 349, 350, 351, 352, 353,
+ 367, 105, 362, 368, 361, 414, 415, 0, 363, 364,
+ 365, 366, 0, 0, 1016, 414, 415, 0, 417, 0,
+ 217, 217, 217, 217, 0, 217, 217, 0, 417, 362,
+ 0, 0, 0, 74, 0, 946, 367, 0, 0, 368,
+ 0, 0, 0, 0, 580, 423, 424, 425, 426, 427,
+ 428, 0, 0, 0, 0, 590, 424, 425, 426, 427,
+ 428, 105, 0, 105, 0, 0, 105, 602, 0, 0,
+ 0, 0, 613, 618, 619, 620, 621, 622, 623, 624,
+ 625, 626, 627, 628, 629, 630, 631, 0, 633, 634,
+ 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
+ 0, 0, 266, 0, 105, 356, 0, 357, 358, 359,
+ 360, 74, 666, 666, 0, 0, 0, 0, 74, 74,
+ 0, 0, 0, 361, 0, 0, 74, 266, 0, 0,
+ 217, 753, 0, 357, 358, 359, 360, 121, 0, 575,
+ 0, 0, 666, 0, 266, 0, 666, 666, 362, 361,
+ 0, 0, 0, 266, 363, 364, 365, 366, 0, 0,
+ 0, 0, 711, 0, 0, 0, 715, 0, 0, 0,
+ 716, 74, 0, 719, 362, 722, 74, 309, 293, 0,
+ 0, 0, 367, 0, 995, 368, 357, 358, 359, 360,
+ 0, 0, 0, 0, 666, 74, 0, 75, 0, 75,
+ 122, 122, 361, 0, 719, 0, 0, 309, 122, 356,
+ 0, 357, 358, 359, 360, 0, 74, 266, 0, 0,
+ 0, 74, 121, 0, 74, 0, 0, 361, 0, 0,
+ 0, 0, 0, 751, 752, 0, 0, 0, 0, 0,
+ 0, 0, 0, 862, 0, 0, 0, 75, 0, 761,
+ 0, 122, 362, 0, 0, 0, 0, 0, 363, 364,
+ 365, 366, 0, 0, 74, 74, 0, 0, 777, 0,
+ 774, 784, 357, 358, 359, 360, 0, 122, 0, 0,
+ 0, 74, 0, 0, 0, 0, 367, 0, 361, 368,
+ 414, 415, 74, 0, 0, 0, 0, 0, 0, 0,
+ 74, 0, 0, 417, 0, 0, 0, 0, 0, 0,
+ 74, 0, 0, 362, 75, 0, 0, 0, 0, 0,
+ 364, 365, 366, 0, 0, 0, 0, 0, 421, 422,
+ 423, 424, 425, 426, 427, 428, 0, 0, 0, 0,
+ 0, 0, 74, 0, 217, 0, 0, 367, 0, 0,
+ 0, 74, 0, 0, 0, 0, 818, 0, 0, 761,
+ 777, 0, 0, 0, 0, 121, 0, 121, 0, 0,
+ 0, 0, 0, 0, 0, 0, 74, 0, 217, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 844,
+ 0, 0, 0, 0, 0, 0, 0, 0, 719, 309,
+ 0, 0, 0, 0, 0, 75, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 121,
+ 0, 0, 0, 0, 0, 104, 0, 104, 128, 128,
+ 0, 0, 0, 0, 0, 0, 232, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 892, 0, 0, 0,
+ 0, 666, 895, 0, 266, 0, 0, 666, 666, 0,
+ 0, 0, 719, 666, 666, 0, 0, 0, 0, 0,
+ 0, 0, 0, 75, 0, 104, 0, 0, 0, 318,
+ 75, 75, 0, 0, 0, 0, 217, 74, 75, 666,
+ 666, 0, 666, 666, 0, 0, 0, 0, 0, 122,
+ 0, 0, 936, 0, 0, 318, 0, 293, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 948, 949, 0, 0, 0, 0,
+ 0, 0, 0, 75, 0, 0, 954, 955, 75, 0,
+ 0, 0, 104, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 971, 0, 0, 0, 0, 75, 0, 0,
+ 0, 0, 973, 974, 0, 0, 0, 0, 0, 666,
+ 0, 0, 0, 0, 0, 0, 0, 0, 75, 0,
+ 0, 0, 0, 75, 122, 0, 75, 0, 0, 0,
+ 0, 0, 666, 0, 74, 0, 0, 0, 0, 0,
+ 309, 121, 74, 74, 0, 0, 0, 0, 0, 74,
+ 0, 0, 0, 0, 0, 74, 74, 0, 0, 0,
+ 0, 74, 74, 0, 0, 0, 75, 75, 0, 0,
+ 0, 0, 0, 104, 0, 74, 0, 0, 0, 0,
+ 0, 0, 0, 75, 0, 0, 0, 74, 74, 0,
+ 0, 0, 0, 0, 75, 74, 0, 0, 0, 0,
+ 0, 0, 75, 0, 0, 0, 0, 74, 74, 0,
+ 0, 0, 75, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 266, 0, 0, 121, 0, 0, 0, 0, 121, 0,
+ 0, 0, 0, 84, 75, 84, 0, 0, 0, 0,
+ 0, 104, 0, 75, 228, 0, 0, 0, 104, 104,
+ 0, 74, 0, 0, 0, 0, 104, 122, 0, 122,
+ 0, 74, 74, 0, 0, 121, 0, 318, 75, 74,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 84, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -611, 104, 0, 0, 0, 0, 104, 0, 0, 0,
+ 0, 0, 0, -611, -611, -611, -611, -611, -611, 0,
+ -611, 122, 0, 0, 0, 104, -611, -611, 0, 74,
+ 0, 74, 0, 0, 74, 0, 0, -611, -611, 0,
+ -611, -611, -611, -611, -611, 0, 104, 0, 0, 0,
+ 84, 104, 318, 0, 617, 0, 101, 0, 101, 127,
+ 127, 127, 0, 0, 0, 0, 0, 231, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
+ -611, 0, 0, 0, 617, 617, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -611, 101, 0, 0, 0,
+ 317, 104, 0, 0, 0, -611, 0, 0, -611, -611,
+ 0, 0, 104, 0, 0, 0, 0, 0, 0, 0,
+ 104, 0, 0, 0, 0, 0, 317, 0, -611, -611,
+ 104, 84, 0, 0, 275, -611, -611, -611, -611, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 416, 0, 417, 418, 419, 420, 421, 422, 423, 424,
- 425, 426, 0, 0, 0, 0, 0, 104, 0, 0,
- -273, 0, 0, 0, 316, 104, 613, 0, 0, 0,
- 0, 0, 613, 0, 101, 0, 0, 264, 613, 613,
- 0, 0, 0, 101, 104, 104, 0, 0, 0, 0,
- 0, 101, 0, 0, 102, 0, 0, 0, 104, 0,
- 84, 101, 0, 0, 0, 0, 0, 84, 84, 0,
- 104, 104, 0, 0, 0, 84, 0, 0, 104, 0,
- 0, 354, 0, 355, 356, 357, 358, 0, 0, 0,
- 104, 104, 0, 101, 0, 0, 412, 413, 0, 359,
- 0, 0, 101, 0, 0, 0, 0, 0, 0, 415,
- 0, 0, 0, 0, 128, 0, 315, 0, 315, 128,
- 84, 0, 0, 0, 360, 84, 0, 101, 0, 0,
- 361, 362, 363, 364, 419, 420, 421, 422, 423, 424,
- 425, 426, 613, 0, 84, 102, -608, -608, -608, -608,
- 404, 405, 104, 104, -608, -608, 973, 0, 365, 0,
- 104, 366, 412, 413, 0, 84, 0, 0, 0, 0,
- 84, 0, 0, 608, 0, 415, 0, 0, 0, 0,
- 315, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 417, 418,
- 419, 420, 421, 422, 423, 424, 425, 426, 0, 0,
- 0, 0, 0, 608, 608, 0, 0, 0, 104, 0,
- 104, 102, 0, 104, 0, 0, 0, 0, 102, 102,
- 84, 0, 0, 0, 0, 0, 102, 0, 0, 84,
- 0, 0, 0, 0, 0, 0, 0, 84, 101, 0,
- -607, 0, 0, 0, 0, 0, 0, 84, 0, 0,
- 0, 0, 0, -607, -607, -607, -607, -607, -607, 0,
- -607, 0, 0, 0, 0, 0, -607, -607, 0, 0,
- 0, 102, 0, 0, 0, 0, 102, -607, -607, 84,
- -607, -607, -607, -607, -607, 0, 0, 0, 84, 0,
- 0, 0, 0, 0, 0, 102, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 104, 101, 0, 0, 0, 0, 0, 0,
+ 0, 104, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 318, 75, 318, 0, 0,
+ 0, 0, 0, 122, 75, 75, 104, 0, 0, 0,
+ 0, 75, 0, 0, 0, 0, 0, 75, 75, 84,
+ 0, 0, 0, 75, 75, 0, 84, 84, 0, 0,
+ 0, 0, 0, 0, 84, 0, 0, 75, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
+ 75, 0, 0, 0, 0, 0, 0, 75, 0, 318,
+ 0, 0, 0, 0, 101, 0, 0, 0, 0, 75,
+ 75, 0, 0, 0, 0, 0, 0, 0, 0, 84,
+ 0, 0, 0, 0, 84, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 122, 0, 0, 0, 0,
+ 122, 0, 0, 84, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 102, 0, 102, 75, 84, 0, 0, 104, 0, 84,
+ 0, 0, 612, 75, 75, 0, 0, 122, 0, 0,
+ 0, 75, 101, 0, 0, 0, 0, 0, 0, 101,
+ 101, 0, 0, 0, 0, 0, 0, 101, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 317, 0,
+ 102, 0, 612, 612, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 84, 75, 101, 75, 0, 0, 75, 101, 84, 0,
+ 0, 402, 403, 404, 405, 406, 407, 408, 84, 410,
+ 411, 0, 0, 0, 0, 0, 101, 414, 415, 0,
+ 0, 0, 0, 0, 104, 0, 0, 102, 0, 0,
+ 417, 318, 104, 617, 0, 0, 0, 101, 0, 617,
+ 84, 0, 101, 317, 0, 617, 617, 0, 0, 84,
+ 0, 104, 104, 419, 420, 421, 422, 423, 424, 425,
+ 426, 427, 428, 0, 0, 104, 0, 0, 0, 0,
+ 0, 0, 0, 0, 84, 0, 0, 104, 104, 0,
+ 0, 0, 0, 0, 0, 104, 0, -612, -612, -612,
+ -612, 406, 407, 0, 0, -612, -612, 104, 104, 0,
+ 0, 0, 101, 414, 415, 0, 0, 0, 0, 0,
+ 0, 0, 0, 101, 0, 0, 417, 0, 102, 0,
+ 0, 101, 0, 128, 0, 0, 0, 0, 128, 0,
+ 0, 101, 0, 0, 0, 0, 0, 0, 0, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 0,
+ 0, 617, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 104, 104, 101, 0, 985, 0, 0, 0, 104,
+ 0, 0, 101, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 317, 0, 317, 0,
+ 0, 0, 0, 0, 0, 84, 102, 101, 0, 0,
+ 0, 0, 0, 102, 102, 0, 0, 791, 0, 0,
+ 0, 102, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 104,
+ 0, 104, 0, 0, 104, 402, 403, 404, 405, 406,
+ 407, 408, 409, 410, 411, 412, 413, 0, 0, 0,
+ 317, 414, 415, 0, 0, 0, 102, 0, 0, 0,
+ 0, 102, 0, 0, 417, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 102, 0, 0, 0, 0, 418, 0, 419, 420, 421,
+ 422, 423, 424, 425, 426, 427, 428, 0, 0, 0,
+ 0, 102, 84, 0, 0, -277, 102, 0, 0, 102,
+ 84, 612, 0, 0, 0, 0, 0, 612, 101, 0,
+ 0, 0, 0, 612, 612, 0, 0, 0, 0, 84,
+ 84, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 84, 0, 0, 0, 0, 0, 102,
+ 102, 0, 0, 0, 0, 84, 84, 0, 0, 0,
0, 0, 0, 84, 0, 0, 102, 0, 0, 0,
- 0, 102, 0, 0, 102, 0, 0, 0, 0, 0,
- -607, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 101, 0, 0, 0, -607, 0, 0, 315, 101,
- 0, 0, 0, 0, 0, -607, 0, 0, -607, -607,
- 0, 0, 0, 0, 102, 102, 0, 0, 101, 101,
- 0, 0, 0, 0, 0, 0, 0, 0, -607, -607,
- 0, 102, 101, 0, 273, -607, -607, -607, -607, 0,
- 102, 0, 0, 0, 101, 101, 0, 0, 102, 0,
- 0, 0, 101, 0, 0, 0, 0, 0, 102, 0,
- 0, 0, 0, 0, 101, 101, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 84, 84, 102, 0, 0,
+ 0, 0, 0, 0, 0, 102, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 102, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 650, 651, 84, 0, 652, 0, 127, 0,
- 102, 0, 0, 127, 0, 0, 0, 0, 0, 102,
- 0, 174, 175, 176, 177, 178, 179, 180, 181, 0,
- 0, 182, 183, 0, 0, 0, 0, 184, 185, 186,
- 187, 0, 0, 0, 102, 0, 101, 101, 0, 0,
- 972, 188, 189, 190, 101, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 101, 0, 102, 0, 612,
+ 0, 0, 317, 101, 0, 0, 102, 0, 0, 84,
+ 84, 0, 0, 982, 0, 0, 0, 84, 0, 0,
+ 0, 0, 101, 101, 0, 0, 0, 0, 0, 0,
+ 0, 102, 0, 0, 0, 0, 101, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 101, 101,
+ 0, 0, 0, 0, 0, 0, 101, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 101, 101,
+ 0, 0, 0, 0, 0, 0, 0, 84, 0, 84,
+ 0, 0, 84, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 127, 0, 0, 0, 0, 127,
+ 0, 0, 0, 0, 0, -588, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -588, -588,
+ -588, 0, -588, -588, 0, -588, 0, 0, 0, 0,
+ 0, -588, 101, 101, 0, 0, 984, 0, 0, 0,
+ 101, 0, -588, -588, 0, -588, -588, -588, -588, -588,
+ 0, 0, 102, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -588, -588, -588,
+ -588, -588, -588, -588, -588, -588, -588, -588, -588, 0,
+ 0, 0, 0, -588, -588, -588, 0, 796, -588, 0,
+ 101, 0, 101, 0, 0, 101, -588, 0, 0, 0,
+ -588, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -588, 0, 0, -588, -588, 0, -107, -588, 0, -588,
+ -588, -588, -588, -588, -588, -588, -588, -588, -588, 0,
+ 0, 0, 0, -588, -588, -588, 0, -99, 0, 0,
+ -588, -588, -588, -588, 0, 0, 0, 0, 0, 102,
+ 0, 0, 0, 0, 0, 0, 0, 102, 102, 0,
+ 0, 0, 645, 646, 102, 0, 647, 0, 0, 0,
+ 102, 102, 0, 0, 0, 0, 102, 102, 0, 0,
+ 0, 174, 175, 176, 177, 178, 179, 180, 181, 0,
+ 102, 182, 183, 0, 0, 0, 0, 184, 185, 186,
+ 187, 0, 102, 102, 0, 0, 0, 0, 0, 0,
+ 102, 188, 189, 190, 0, 0, 0, 0, 0, 0,
+ 0, 0, 102, 102, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 191, 192, 193, 194, 195,
- 196, 197, 198, 199, 200, 0, 201, 202, 0, 0,
- 0, 0, 0, 0, 203, 273, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 84, 0, 0,
- 0, 0, 101, 0, 101, 84, 608, 101, 0, 0,
- 671, 642, 608, 0, 672, 0, 0, 0, 608, 608,
- 0, 0, 0, 0, 84, 84, 0, 0, 0, 174,
- 175, 176, 177, 178, 179, 180, 181, 0, 84, 182,
- 183, 0, 0, 0, 0, 184, 185, 186, 187, 0,
- 84, 84, 0, 0, 0, 102, 0, 0, 84, 188,
- 189, 190, 0, 0, 0, 0, 0, 0, 0, 0,
- 84, 84, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 191, 192, 193, 194, 195, 196, 197,
- 198, 199, 200, 0, 201, 202, 400, 401, 402, 403,
- 404, 405, 203, 273, 408, 409, 0, 0, 0, 0,
- 0, 0, 412, 413, 0, 0, 0, 0, 0, 0,
- 0, 0, 608, 0, 0, 415, 0, 0, 0, 0,
- 0, 0, 84, 84, 0, 0, 970, 0, 0, 0,
- 84, 0, 0, 0, 0, 0, 0, 0, 417, 418,
- 419, 420, 421, 422, 423, 424, 425, 426, 102, 0,
+ 196, 197, 198, 199, 200, 0, 201, 202, 402, 403,
+ 404, 405, 406, 407, 203, 275, 410, 411, 0, 0,
+ 0, 0, 0, 0, 414, 415, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 102, 417, 0, 0,
0, 0, 0, 0, 0, 0, 102, 102, 0, 0,
- 0, 0, 0, 102, 0, 0, 0, 0, 0, 102,
- 102, 0, 0, 0, 0, 102, 102, 0, 400, 401,
- 402, 403, 404, 405, 406, 0, 408, 409, 84, 102,
- 84, 0, 0, 84, 412, 413, 0, 0, 0, 0,
- 0, 102, 102, 0, 0, 0, 0, 415, 0, 102,
- 0, 0, 783, 0, 0, 0, 0, 0, 0, 0,
- 0, 102, 102, 0, 0, 0, 0, 0, 0, 0,
- 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
- 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
- 410, 411, 0, 0, 0, 0, 412, 413, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 415,
- 0, 0, 0, 102, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 102, 102, 0, 0, 0, 0, 0,
- 416, 102, 417, 418, 419, 420, 421, 422, 423, 424,
- 425, 426, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -607, 4, 0, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 0, 0, 0, 0, 0, 0,
- 15, 0, 16, 17, 18, 19, 0, 0, 0, 0,
- 0, 20, 21, 22, 23, 24, 25, 26, 0, 102,
- 27, 102, 0, 0, 102, 0, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
- 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
- 46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
- 0, 0, 51, 0, 0, 52, 53, 0, 54, 55,
- 0, 56, 0, 0, 0, 57, 0, 58, 59, 60,
- 0, 61, 62, 63, -288, 64, -607, 0, 0, -607,
- -607, 0, 0, 0, 0, 0, 0, -288, -288, -288,
- -288, -288, -288, 0, -288, 65, 66, 67, 0, 0,
- 0, -288, -288, -288, 0, 0, 0, -607, 0, -607,
- 0, -288, -288, 0, -288, -288, -288, -288, -288, 0,
+ 0, 0, 0, 0, 102, 0, 0, 0, 0, 0,
+ 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
+ 0, 0, 0, 0, 0, 0, -611, 4, 0, 5,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 0,
+ 0, 0, 0, 0, 0, 15, 0, 16, 17, 18,
+ 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
+ 24, 25, 26, 0, 102, 27, 102, 0, 0, 102,
+ 0, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 0, 40, 41, 42, 0, 0, 43,
+ 0, 0, 44, 45, 0, 46, 47, 48, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -288, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -288, -288, -288, -288,
- -288, -288, -288, -288, -288, -288, -288, -288, 0, 0,
- 0, 0, -288, -288, -288, 0, 0, -288, 0, 0,
- 0, 0, 0, -288, 0, -288, 0, 0, 0, -288,
- 0, 0, 0, 0, 0, 0, 0, -288, 0, -288,
- 0, 0, -288, -288, 0, 0, -288, -288, -288, -288,
- -288, -288, -288, -288, -288, -288, -288, -288, 0, 0,
- -409, 0, 0, -288, -288, -288, -288, 0, 0, -288,
- -288, -288, -288, -409, -409, -409, -409, -409, -409, 0,
- -409, 0, 0, 0, 0, 0, -409, -409, -409, 0,
- 0, 0, 0, 0, 0, 0, 0, -409, -409, 0,
- -409, -409, -409, -409, -409, 0, 0, 0, 0, 0,
+ 49, 50, 0, 0, 0, 0, 0, 51, 0, 0,
+ 52, 53, 0, 54, 55, 0, 56, 0, 0, 0,
+ 57, 0, 58, 59, 60, 0, 61, 62, 63, -292,
+ 64, -611, 0, 0, -611, -611, 0, 0, 0, 0,
+ 0, 0, -292, -292, -292, -292, -292, -292, 0, -292,
+ 65, 66, 67, 0, 0, 0, -292, -292, -292, 0,
+ 0, 0, -611, 0, -611, 0, -292, -292, 0, -292,
+ -292, -292, -292, -292, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -292, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -292, -292, -292, -292, -292, -292, -292, -292, -292,
+ -292, -292, -292, 0, 0, 0, 0, -292, -292, -292,
+ 0, 0, -292, 0, 0, 0, 0, 0, -292, 0,
+ -292, 0, 0, 0, -292, 0, 0, 0, 0, 0,
+ 0, 0, -292, 0, -292, 0, 0, -292, -292, 0,
+ 0, -292, -292, -292, -292, -292, -292, -292, -292, -292,
+ -292, -292, -292, 0, 0, -413, 0, 0, -292, -292,
+ -292, -292, 0, 0, -292, -292, -292, -292, -413, -413,
+ -413, -413, -413, -413, 0, -413, 0, 0, 0, 0,
+ 0, -413, -413, -413, 0, 0, 0, 0, 0, 0,
+ 0, 0, -413, -413, 0, -413, -413, -413, -413, -413,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -409, -409, -409, -409, -409, -409, -409, -409,
- -409, -409, -409, -409, 0, 0, 0, 0, -409, -409,
- -409, 0, 0, -409, 0, 0, 0, 0, 0, -409,
- 0, -409, 0, 0, 0, -409, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -409, 0, 0, -409, -409,
- 0, 0, -409, 0, -409, -409, -409, -409, -409, -409,
- -409, -409, -409, -409, 0, 0, -475, 0, -409, -409,
- -409, -409, -409, 0, 273, -409, -409, -409, -409, -475,
- -475, -475, -475, -475, -475, 0, -475, 0, 0, 0,
- 0, 0, 0, -475, -475, 0, 0, 0, 0, 0,
- 0, 0, 0, -475, -475, 0, -475, -475, -475, -475,
- -475, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 490, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, -475, -475,
- -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
- 0, 0, 0, 0, -475, -475, -475, 0, -475, -475,
- 0, 0, 0, 0, 0, -475, 0, -475, 0, 0,
- 0, -475, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -475, 0, 0, -475, -475, 0, -475, -475, 0,
- -475, -475, -475, -475, -475, -475, -475, -475, -475, -475,
- 0, 0, -607, 0, 0, -475, -475, -475, -475, 0,
- 0, -475, -475, -475, -475, -607, -607, -607, -607, -607,
- -607, 0, -607, 0, 0, 0, 0, 0, -607, -607,
- -607, 0, 0, 0, 0, 0, 0, 0, 0, -607,
- -607, 0, -607, -607, -607, -607, -607, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -413, -413, -413,
+ -413, -413, -413, -413, -413, -413, -413, -413, -413, 0,
+ 0, 0, 0, -413, -413, -413, 0, 0, -413, 0,
+ 0, 0, 0, 0, -413, 0, -413, 0, 0, 0,
+ -413, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -413, 0, 0, -413, -413, 0, 0, -413, 0, -413,
+ -413, -413, -413, -413, -413, -413, -413, -413, -413, 0,
+ 0, -479, 0, -413, -413, -413, -413, -413, 0, 275,
+ -413, -413, -413, -413, -479, -479, -479, -479, -479, -479,
+ 0, -479, 0, 0, 0, 0, 0, 0, -479, -479,
+ 0, 0, 0, 0, 0, 0, 0, 0, -479, -479,
+ 0, -479, -479, -479, -479, -479, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 494, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, -607, -607, -607, -607, -607, -607,
- -607, -607, -607, -607, -607, -607, 0, 0, 0, 0,
- -607, -607, -607, 0, 0, -607, 0, 0, 0, 0,
- 0, -607, 0, -607, 0, 0, 0, -607, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -607, 0, 0,
- -607, -607, 0, 0, -607, 0, -607, -607, -607, -607,
- -607, -607, -607, -607, -607, -607, 0, 0, -607, 0,
- -607, -607, -607, -607, -607, 0, 273, -607, -607, -607,
- -607, -607, -607, -607, -607, -607, -607, 0, -607, 0,
- 0, 0, 0, 0, 0, -607, -607, 0, 0, 0,
- 0, 0, 0, 0, 0, -607, -607, 0, -607, -607,
- -607, -607, -607, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -479, -479, -479, -479, -479, -479, -479,
+ -479, -479, -479, -479, -479, 0, 0, 0, 0, -479,
+ -479, -479, 0, -479, -479, 0, 0, 0, 0, 0,
+ -479, 0, -479, 0, 0, 0, -479, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -479, 0, 0, -479,
+ -479, 0, -479, -479, 0, -479, -479, -479, -479, -479,
+ -479, -479, -479, -479, -479, 0, 0, -611, 0, 0,
+ -479, -479, -479, -479, 0, 0, -479, -479, -479, -479,
+ -611, -611, -611, -611, -611, -611, 0, -611, 0, 0,
+ 0, 0, 0, -611, -611, -611, 0, 0, 0, 0,
+ 0, 0, 0, 0, -611, -611, 0, -611, -611, -611,
+ -611, -611, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -611,
+ -611, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+ -611, 0, 0, 0, 0, -611, -611, -611, 0, 0,
+ -611, 0, 0, 0, 0, 0, -611, 0, -611, 0,
+ 0, 0, -611, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -611, 0, 0, -611, -611, 0, 0, -611,
+ 0, -611, -611, -611, -611, -611, -611, -611, -611, -611,
+ -611, 0, 0, -611, 0, -611, -611, -611, -611, -611,
+ 0, 275, -611, -611, -611, -611, -611, -611, -611, -611,
+ -611, -611, 0, -611, 0, 0, 0, 0, 0, 0,
+ -611, -611, 0, 0, 0, 0, 0, 0, 0, 0,
+ -611, -611, 0, -611, -611, -611, -611, -611, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -607, -607, -607, -607, -607, -607, -607, -607, -607, -607,
- -607, -607, 0, 0, 0, 0, -607, -607, -607, 0,
- 0, -607, 0, 0, 0, 0, 0, -607, 0, -607,
- 0, 0, 0, -607, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -607, 0, 0, -607, -607, 0, 0,
- -607, 0, -607, -607, -607, -607, -607, -607, -607, -607,
- -607, -607, 0, 0, -584, 0, 0, -607, -607, -607,
- -607, 0, 273, -607, -607, -607, -607, -584, -584, -584,
- 0, -584, -584, 0, -584, 0, 0, 0, 0, 0,
- -584, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -584, -584, 0, -584, -584, -584, -584, -584, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -611, -611, -611, -611, -611,
+ -611, -611, -611, -611, -611, -611, -611, 0, 0, 0,
+ 0, -611, -611, -611, 0, 0, -611, 0, 0, 0,
+ 0, 0, -611, 0, -611, 0, 0, 0, -611, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -611, 0,
+ 0, -611, -611, 0, 0, -611, 0, -611, -611, -611,
+ -611, -611, -611, -611, -611, -611, -611, 0, 0, -588,
+ 0, 0, -611, -611, -611, -611, 0, 275, -611, -611,
+ -611, -611, -588, -588, -588, 0, -588, -588, 0, -588,
+ 0, 0, 0, 0, 0, -588, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -588, -588, 0, -588,
+ -588, -588, -588, -588, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -584, -584, -584, -584,
- -584, -584, -584, -584, -584, -584, -584, -584, 0, 0,
- 0, 0, -584, -584, -584, 0, 788, -584, 0, 0,
- 0, 0, 0, 0, 0, -584, 0, 0, 0, -584,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -584,
- 0, 0, -584, -584, 0, -103, -584, 0, -584, -584,
- -584, -584, -584, -584, -584, -584, -584, -584, 0, 0,
- -584, 0, -584, -584, -584, 0, -95, 0, 0, -584,
- -584, -584, -584, -584, -584, -584, 0, -584, -584, 0,
- -584, 0, 0, 0, 0, 0, -584, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -584, -584, 0,
- -584, -584, -584, -584, -584, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -588, -588, -588, -588, -588, -588, -588, -588, -588,
+ -588, -588, -588, 0, 0, 0, 0, -588, -588, -588,
+ 0, 796, -588, 0, 0, 0, 0, 0, 0, 0,
+ -588, 0, 0, 0, -588, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -588, 0, 0, -588, -588, 0,
+ -107, -588, 0, -588, -588, -588, -588, -588, -588, -588,
+ -588, -588, -588, 0, 0, -301, 0, -588, -588, -588,
+ 0, -588, 0, 0, -588, -588, -588, -588, -301, -301,
+ -301, 0, -301, -301, 0, -301, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -584, -584, -584, -584, -584, -584, -584, -584,
- -584, -584, -584, -584, 0, 0, 0, 0, -584, -584,
- -584, 0, 788, -584, 0, 0, 0, 0, 0, 0,
- 0, -584, 0, 0, 0, -584, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -584, 0, 0, -584, -584,
- 0, -103, -584, 0, -584, -584, -584, -584, -584, -584,
- -584, -584, -584, -584, 0, 0, -297, 0, -584, -584,
- -584, 0, -584, 0, 0, -584, -584, -584, -584, -297,
- -297, -297, 0, -297, -297, 0, -297, 0, 0, 0,
+ 0, 0, -301, -301, 0, -301, -301, -301, -301, -301,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -297, -297, 0, -297, -297, -297, -297,
- -297, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, -297, -297,
- -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
- 0, 0, 0, 0, -297, -297, -297, 0, 789, -297,
- 0, 0, 0, 0, 0, 0, 0, -297, 0, 0,
- 0, -297, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -297, 0, 0, -297, -297, 0, -105, -297, 0,
- -297, -297, -297, -297, -297, -297, -297, -297, -297, -297,
- 0, 0, -297, 0, 0, -297, -297, 0, -97, 0,
- 0, -297, -297, -297, -297, -297, -297, -297, 0, -297,
- -297, 0, -297, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, -297,
- -297, 0, -297, -297, -297, -297, -297, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -301, -301, -301,
+ -301, -301, -301, -301, -301, -301, -301, -301, -301, 0,
+ 0, 0, 0, -301, -301, -301, 0, 797, -301, 0,
+ 0, 0, 0, 0, 0, 0, -301, 0, 0, 0,
+ -301, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -301, 0, 0, -301, -301, 0, -109, -301, 0, -301,
+ -301, -301, -301, -301, -301, -301, -301, -301, -301, 0,
+ 0, -301, 0, 0, -301, -301, 0, -101, 0, 0,
+ -301, -301, -301, -301, -301, -301, -301, 0, -301, -301,
+ 0, -301, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, -301, -301,
+ 0, -301, -301, -301, -301, -301, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, -297, -297, -297, -297, -297, -297,
- -297, -297, -297, -297, -297, -297, 0, 0, 0, 0,
- -297, -297, -297, 0, 789, -297, 0, 0, 0, 0,
- 0, 0, 0, -297, 0, 0, 0, -297, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -297, 0, 0,
- -297, -297, 0, -105, -297, 0, -297, -297, -297, -297,
- -297, -297, -297, -297, -297, -297, 0, 0, 0, 0,
- 0, -297, -297, 0, -297, 0, 0, -297, -297, -297,
- -297, 293, 0, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, -607, -607, -607, 0, 0, -607, 15,
- 0, 16, 17, 18, 19, 0, 0, 0, 0, 0,
- 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
- 0, 0, 0, 0, 0, 28, 0, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 0, 40, 41,
- 42, 0, 0, 43, 0, 0, 44, 45, 0, 46,
- 47, 48, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 49, 50, 0, 0, 0, 0,
- 0, 51, 0, 0, 52, 53, 0, 54, 55, 0,
- 56, 0, 0, 0, 57, 0, 58, 59, 60, 0,
- 61, 62, 63, 0, 64, -607, 0, 0, -607, -607,
+ 0, 0, 0, -301, -301, -301, -301, -301, -301, -301,
+ -301, -301, -301, -301, -301, 0, 0, 0, 0, -301,
+ -301, -301, 0, 797, -301, 0, 0, 0, 0, 0,
+ 0, 0, -301, 0, 0, 0, -301, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -301, 0, 0, -301,
+ -301, 0, -109, -301, 0, -301, -301, -301, -301, -301,
+ -301, -301, -301, -301, -301, 0, 0, 0, 0, 0,
+ -301, -301, 0, -301, 0, 0, -301, -301, -301, -301,
+ 295, 0, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, -611, -611, -611, 0, 0, -611, 15, 0,
+ 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
+ 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
+ 0, 0, 0, 0, 28, 0, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
+ 0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
+ 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 49, 50, 0, 0, 0, 0, 0,
+ 51, 0, 0, 52, 53, 0, 54, 55, 0, 56,
+ 0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
+ 62, 63, 0, 64, -611, 0, 0, -611, -611, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 65, 66, 67, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -607, 293, -607, 5,
+ 0, 0, 0, 65, 66, 67, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -611, 295, -611, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 0, 0,
+ -611, 0, -611, -611, 15, 0, 16, 17, 18, 19,
+ 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
+ 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
+ 28, 0, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
+ 0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
+ 50, 0, 0, 0, 0, 0, 51, 0, 0, 52,
+ 53, 0, 54, 55, 0, 56, 0, 0, 0, 57,
+ 0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
+ -611, 0, 0, -611, -611, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,
+ 66, 67, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -611, 295, -611, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, 0, 0, -611, 0, 0, -611,
+ 15, -611, 16, 17, 18, 19, 0, 0, 0, 0,
+ 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
+ 27, 0, 0, 0, 0, 0, 28, 0, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
+ 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
+ 46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
+ 0, 0, 51, 0, 0, 52, 53, 0, 54, 55,
+ 0, 56, 0, 0, 0, 57, 0, 58, 59, 60,
+ 0, 61, 62, 63, 0, 64, -611, 0, 0, -611,
+ -611, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 65, 66, 67, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -611, 295, -611,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 0, 0, -611, 0, 0, -611, 15, 0, 16, 17,
+ 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
+ 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
+ 0, 0, 28, 0, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
+ 43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 49, 50, 0, 0, 0, 0, 0, 51, 0,
+ 0, 52, 53, 0, 54, 55, 0, 56, 0, 0,
+ 0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
+ 0, 64, -611, 0, 0, -611, -611, 4, 0, 5,
6, 7, 8, 9, 10, 11, 12, 13, 14, 0,
- 0, -607, 0, -607, -607, 15, 0, 16, 17, 18,
- 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
+ 0, 65, 66, 67, 0, 15, 0, 16, 17, 18,
+ 19, 0, 0, -611, 0, -611, 20, 21, 22, 23,
24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
- 0, 28, 0, 30, 31, 32, 33, 34, 35, 36,
+ 0, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 0, 40, 41, 42, 0, 0, 43,
0, 0, 44, 45, 0, 46, 47, 48, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
49, 50, 0, 0, 0, 0, 0, 51, 0, 0,
52, 53, 0, 54, 55, 0, 56, 0, 0, 0,
57, 0, 58, 59, 60, 0, 61, 62, 63, 0,
- 64, -607, 0, 0, -607, -607, 0, 0, 0, 0,
+ 64, -611, 0, 0, -611, -611, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 65, 66, 67, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -607, 293, -607, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 0, 0, -607, 0, 0,
- -607, 15, -607, 16, 17, 18, 19, 0, 0, 0,
+ 65, 66, 67, 0, 0, -611, 0, 0, 0, 0,
+ 0, 0, -611, 295, -611, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 14, 0, -611, -611, 0, 0,
+ 0, 15, 0, 16, 17, 18, 19, 0, 0, 0,
0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
0, 27, 0, 0, 0, 0, 0, 28, 0, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 0,
@@ -2932,75 +3023,22 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 0, 0, 49, 50, 0, 0,
0, 0, 0, 51, 0, 0, 52, 53, 0, 54,
55, 0, 56, 0, 0, 0, 57, 0, 58, 59,
- 60, 0, 61, 62, 63, 0, 64, -607, 0, 0,
- -607, -607, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 65, 66, 67, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, -607, 293,
- -607, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 0, 0, -607, 0, 0, -607, 15, 0, 16,
- 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
- 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
- 0, 0, 0, 28, 0, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 0, 40, 41, 42, 0,
- 0, 43, 0, 0, 44, 45, 0, 46, 47, 48,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 49, 50, 0, 0, 0, 0, 0, 51,
- 0, 0, 52, 53, 0, 54, 55, 0, 56, 0,
- 0, 0, 57, 0, 58, 59, 60, 0, 61, 62,
- 63, 0, 64, -607, 0, 0, -607, -607, 4, 0,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 0, 0, 65, 66, 67, 0, 15, 0, 16, 17,
- 18, 19, 0, 0, -607, 0, -607, 20, 21, 22,
- 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
- 0, 0, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
- 43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 49, 50, 0, 0, 0, 0, 0, 51, 0,
- 0, 52, 53, 0, 54, 55, 0, 56, 0, 0,
- 0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
- 0, 64, -607, 0, 0, -607, -607, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 65, 66, 67, 0, 0, -607, 0, 0, 0,
- 0, 0, 0, -607, 293, -607, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 0, -607, -607, 0,
- 0, 0, 15, 0, 16, 17, 18, 19, 0, 0,
- 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
- 0, 0, 27, 0, 0, 0, 0, 0, 28, 0,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
- 45, 0, 46, 47, 48, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 49, 50, 0,
- 0, 0, 0, 0, 51, 0, 0, 52, 53, 0,
- 54, 55, 0, 56, 0, 0, 0, 57, 0, 58,
- 59, 60, 0, 61, 62, 63, 0, 64, -607, 0,
- 0, -607, -607, 293, 0, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 0, 0, 65, 66, 67,
- 0, 15, 0, 16, 17, 18, 19, 0, 0, -607,
- 0, -607, 20, 21, 22, 23, 24, 25, 26, 0,
- 0, 27, 0, 0, 0, 0, 0, 28, 0, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 0,
- 40, 41, 42, 0, 0, 43, 0, 0, 44, 45,
- 0, 46, 47, 48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 49, 50, 0, 0,
- 0, 0, 0, 51, 0, 0, 294, 53, 0, 54,
- 55, 0, 56, 0, 0, 0, 57, 0, 58, 59,
- 60, 0, 61, 62, 63, 0, 64, -607, 0, 0,
- -607, -607, 293, 0, 5, 6, 7, 8, 9, 10,
+ 60, 0, 61, 62, 63, 0, 64, -611, 0, 0,
+ -611, -611, 295, 0, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 0, 0, 65, 66, 67, 0,
- 15, 0, 16, 17, 18, 19, 0, -607, -607, 0,
- -607, 20, 21, 22, 23, 24, 25, 26, 0, 0,
+ 15, 0, 16, 17, 18, 19, 0, 0, -611, 0,
+ -611, 20, 21, 22, 23, 24, 25, 26, 0, 0,
27, 0, 0, 0, 0, 0, 28, 0, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
- 0, 0, 51, 0, 0, 52, 53, 0, 54, 55,
+ 0, 0, 51, 0, 0, 296, 53, 0, 54, 55,
0, 56, 0, 0, 0, 57, 0, 58, 59, 60,
- 0, 61, 62, 63, 0, 64, -607, 0, 0, -607,
- -607, 293, 0, 5, 6, 7, 8, 9, 10, 11,
+ 0, 61, 62, 63, 0, 64, -611, 0, 0, -611,
+ -611, 295, 0, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 0, 0, 65, 66, 67, 0, 15,
- 0, 16, 17, 18, 19, 0, -607, -607, 0, -607,
+ 0, 16, 17, 18, 19, 0, -611, -611, 0, -611,
20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
0, 0, 0, 0, 0, 28, 0, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 0, 40, 41,
@@ -3009,1175 +3047,1298 @@ static const yytype_int16 yytable[] =
0, 0, 0, 0, 49, 50, 0, 0, 0, 0,
0, 51, 0, 0, 52, 53, 0, 54, 55, 0,
56, 0, 0, 0, 57, 0, 58, 59, 60, 0,
- 61, 62, 63, 0, 64, -607, 0, 0, -607, -607,
+ 61, 62, 63, 0, 64, -611, 0, 0, -611, -611,
+ 295, 0, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 0, 0, 65, 66, 67, 0, 15, 0,
+ 16, 17, 18, 19, 0, -611, -611, 0, -611, 20,
+ 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
+ 0, 0, 0, 0, 28, 0, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
+ 0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
+ 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 49, 50, 0, 0, 0, 0, 0,
+ 51, 0, 0, 52, 53, 0, 54, 55, 0, 56,
+ 0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
+ 62, 63, 0, 64, -611, 0, 0, -611, -611, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 65, 66, 67, 0, 0, -607,
- 0, 0, 0, 0, 0, 0, -607, 293, -607, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 14, 0,
- 0, -607, 0, 0, 0, 15, 0, 16, 17, 18,
- 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
- 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
- 0, 28, 0, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 0, 40, 41, 42, 0, 0, 43,
- 0, 0, 44, 45, 0, 46, 47, 48, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 49, 50, 0, 0, 0, 0, 0, 51, 0, 0,
- 52, 53, 0, 54, 55, 0, 56, 0, 0, 0,
- 57, 0, 58, 59, 60, 0, 61, 62, 63, 0,
- 64, -607, 0, 0, -607, -607, 0, 0, 5, 6,
+ 0, 0, 0, 65, 66, 67, 0, 0, -611, 0,
+ 0, 0, 0, 0, 0, -611, 295, -611, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 0, 0,
- 65, 66, 67, 0, 15, 0, 16, 17, 18, 19,
- 0, 0, -607, 0, -607, 20, 21, 22, 23, 24,
+ -611, 0, 0, 0, 15, 0, 16, 17, 18, 19,
+ 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 28, 0, 30, 31, 32, 33, 34, 35, 36, 37,
38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
50, 0, 0, 0, 0, 0, 51, 0, 0, 52,
53, 0, 54, 55, 0, 56, 0, 0, 0, 57,
0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
- 245, 0, 0, 246, 247, 0, 0, 5, 6, 7,
+ -611, 0, 0, -611, -611, 0, 0, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 0, 0, 65,
66, 67, 0, 15, 0, 16, 17, 18, 19, 0,
- 0, 248, 0, 249, 20, 21, 22, 23, 24, 25,
+ 0, -611, 0, -611, 20, 21, 22, 23, 24, 25,
26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
- 0, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+ 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 0, 40, 41, 42, 0, 0, 43, 0, 0,
44, 45, 0, 46, 47, 48, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 49, 50,
0, 0, 0, 0, 0, 51, 0, 0, 52, 53,
0, 54, 55, 0, 56, 0, 0, 0, 57, 0,
- 58, 59, 60, 0, 61, 62, 63, 0, 64, 245,
- 0, 0, 246, 247, 0, 0, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 0, 0, 0, 65, 66,
+ 58, 59, 60, 0, 61, 62, 63, 0, 64, 247,
+ 0, 0, 248, 249, 0, 0, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, 0, 0, 65, 66,
67, 0, 15, 0, 16, 17, 18, 19, 0, 0,
- 248, 0, 249, 20, 21, 22, 23, 24, 25, 26,
- 0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
- 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 250, 0, 251, 20, 21, 22, 23, 24, 25, 26,
+ 0, 0, 27, 0, 0, 0, 0, 0, 28, 0,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
45, 0, 46, 47, 48, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 49, 50, 0,
- 0, 0, 0, 0, 211, 0, 0, 119, 53, 0,
- 54, 55, 0, 0, 0, 0, 0, 57, 0, 58,
- 59, 60, 0, 61, 62, 63, 0, 64, 245, 0,
- 0, 246, 247, 0, 0, 5, 6, 7, 8, 9,
+ 0, 0, 0, 0, 51, 0, 0, 52, 53, 0,
+ 54, 55, 0, 56, 0, 0, 0, 57, 0, 58,
+ 59, 60, 0, 61, 62, 63, 0, 64, 247, 0,
+ 0, 248, 249, 0, 0, 5, 6, 7, 8, 9,
10, 11, 12, 13, 0, 0, 0, 65, 66, 67,
- 0, 15, 0, 108, 109, 18, 19, 0, 0, 248,
- 0, 249, 110, 111, 112, 23, 24, 25, 26, 0,
- 0, 113, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 15, 0, 16, 17, 18, 19, 0, 0, 250,
+ 0, 251, 20, 21, 22, 23, 24, 25, 26, 0,
+ 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
31, 32, 33, 34, 35, 36, 37, 38, 39, 0,
40, 41, 42, 0, 0, 43, 0, 0, 44, 45,
0, 46, 47, 48, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 49, 50, 0, 0,
0, 0, 0, 211, 0, 0, 119, 53, 0, 54,
55, 0, 0, 0, 0, 0, 57, 0, 58, 59,
- 60, 0, 61, 62, 63, 0, 64, 245, 0, 0,
- 246, 247, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 65, 262, 67, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 248, 0,
- 249, 131, 132, 133, 134, 135, 136, 137, 138, 139,
- 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 153, 154, 0, 0, 0, 155, 156,
- 157, 158, 159, 160, 161, 162, 163, 164, 0, 0,
- 0, 0, 0, 165, 166, 167, 168, 169, 170, 171,
- 172, 36, 37, 173, 39, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 174, 175,
- 176, 177, 178, 179, 180, 181, 0, 0, 182, 183,
- 0, 0, 0, 0, 184, 185, 186, 187, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 188, 189,
- 190, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 60, 0, 61, 62, 63, 0, 64, 247, 0, 0,
+ 248, 249, 0, 0, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 0, 0, 0, 65, 66, 67, 0,
+ 15, 0, 108, 109, 18, 19, 0, 0, 250, 0,
+ 251, 110, 111, 112, 23, 24, 25, 26, 0, 0,
+ 113, 0, 0, 0, 0, 0, 0, 0, 0, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
+ 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
+ 46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
+ 0, 0, 211, 0, 0, 119, 53, 0, 54, 55,
+ 0, 0, 0, 0, 0, 57, 0, 58, 59, 60,
+ 0, 61, 62, 63, 0, 64, 247, 0, 0, 248,
+ 249, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 65, 264, 67, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 250, 0, 251,
+ 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
+ 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 154, 0, 0, 0, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 164, 0, 0, 0,
+ 0, 0, 165, 166, 167, 168, 169, 170, 171, 172,
+ 36, 37, 173, 39, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 174, 175, 176,
+ 177, 178, 179, 180, 181, 0, 0, 182, 183, 0,
+ 0, 0, 0, 184, 185, 186, 187, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 188, 189, 190,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 0, 201, 202, 0, 0, 0, 0, 0,
- 0, 203, 204, -577, -577, -577, -577, -577, -577, -577,
- -577, -577, 0, 0, 0, 0, 0, 0, 0, -577,
- 0, -577, -577, -577, -577, 0, -577, 0, 0, 0,
- -577, -577, -577, -577, -577, -577, -577, 0, 0, -577,
- 0, 0, 0, 0, 0, 0, 0, 0, -577, -577,
- -577, -577, -577, -577, -577, -577, -577, 0, -577, -577,
- -577, 0, 0, -577, 0, 0, -577, -577, 0, -577,
- -577, -577, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, -577, -577, 0, 0, 0, 0,
- 0, -577, 0, 0, -577, -577, 0, -577, -577, 0,
- -577, 0, -577, -577, -577, 0, -577, -577, -577, 0,
- -577, -577, -577, 0, -577, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, -577, -577, -577, 0, -577, 0,
- 0, 0, 0, 0, -577, -578, -578, -578, -578, -578,
- -578, -578, -578, -578, 0, 0, 0, 0, 0, 0,
- 0, -578, 0, -578, -578, -578, -578, 0, -578, 0,
- 0, 0, -578, -578, -578, -578, -578, -578, -578, 0,
- 0, -578, 0, 0, 0, 0, 0, 0, 0, 0,
- -578, -578, -578, -578, -578, -578, -578, -578, -578, 0,
- -578, -578, -578, 0, 0, -578, 0, 0, -578, -578,
- 0, -578, -578, -578, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -578, -578, 0, 0,
- 0, 0, 0, -578, 0, 0, -578, -578, 0, -578,
- -578, 0, -578, 0, -578, -578, -578, 0, -578, -578,
- -578, 0, -578, -578, -578, 0, -578, 0, 0, 0,
- 0, 0, 0, -580, -580, -580, -580, -580, -580, -580,
- -580, -580, 0, 0, 0, 0, -578, -578, -578, -580,
- -578, -580, -580, -580, -580, 0, -578, 0, 0, 0,
- -580, -580, -580, -580, -580, -580, -580, 0, 0, -580,
- 0, 0, 0, 0, 0, 0, 0, 0, -580, -580,
- -580, -580, -580, -580, -580, -580, -580, 0, -580, -580,
- -580, 0, 0, -580, 0, 0, -580, -580, 0, -580,
- -580, -580, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, -580, -580, 0, 0, 0, 0,
- 0, -580, 820, 0, -580, -580, 0, -580, -580, 0,
- -580, 0, -580, -580, -580, 0, -580, -580, -580, 0,
- -580, -580, -580, 0, -580, 0, 0, 0, 0, 0,
- 0, -103, -581, -581, -581, -581, -581, -581, -581, -581,
- -581, 0, 0, 0, -580, -580, -580, 0, -581, 0,
- -581, -581, -581, -581, -580, 0, 0, 0, 0, -581,
+ 0, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 0, 201, 202, 0, 0, 0, 0, 0, 0,
+ 203, 204, -581, -581, -581, -581, -581, -581, -581, -581,
+ -581, 0, 0, 0, 0, 0, 0, 0, -581, 0,
+ -581, -581, -581, -581, 0, -581, 0, 0, 0, -581,
-581, -581, -581, -581, -581, -581, 0, 0, -581, 0,
0, 0, 0, 0, 0, 0, 0, -581, -581, -581,
-581, -581, -581, -581, -581, -581, 0, -581, -581, -581,
0, 0, -581, 0, 0, -581, -581, 0, -581, -581,
-581, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, -581, -581, 0, 0, 0, 0, 0,
- -581, 821, 0, -581, -581, 0, -581, -581, 0, -581,
+ -581, 0, 0, -581, -581, 0, -581, -581, 0, -581,
0, -581, -581, -581, 0, -581, -581, -581, 0, -581,
-581, -581, 0, -581, 0, 0, 0, 0, 0, 0,
- -105, -582, -582, -582, -582, -582, -582, -582, -582, -582,
- 0, 0, 0, -581, -581, -581, 0, -582, 0, -582,
- -582, -582, -582, -581, 0, 0, 0, 0, -582, -582,
- -582, -582, -582, -582, -582, 0, 0, -582, 0, 0,
- 0, 0, 0, 0, 0, 0, -582, -582, -582, -582,
- -582, -582, -582, -582, -582, 0, -582, -582, -582, 0,
- 0, -582, 0, 0, -582, -582, 0, -582, -582, -582,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, -582, -582, 0, 0, 0, 0, 0, -582,
- 0, 0, -582, -582, 0, -582, -582, 0, -582, 0,
- -582, -582, -582, 0, -582, -582, -582, 0, -582, -582,
- -582, 0, -582, 0, 0, 0, 0, 0, 0, -583,
- -583, -583, -583, -583, -583, -583, -583, -583, 0, 0,
- 0, 0, -582, -582, -582, -583, 0, -583, -583, -583,
- -583, 0, -582, 0, 0, 0, -583, -583, -583, -583,
- -583, -583, -583, 0, 0, -583, 0, 0, 0, 0,
- 0, 0, 0, 0, -583, -583, -583, -583, -583, -583,
- -583, -583, -583, 0, -583, -583, -583, 0, 0, -583,
- 0, 0, -583, -583, 0, -583, -583, -583, 0, 0,
+ 0, 0, 0, -581, -581, -581, 0, -581, 0, 0,
+ 0, 0, 0, -581, -582, -582, -582, -582, -582, -582,
+ -582, -582, -582, 0, 0, 0, 0, 0, 0, 0,
+ -582, 0, -582, -582, -582, -582, 0, -582, 0, 0,
+ 0, -582, -582, -582, -582, -582, -582, -582, 0, 0,
+ -582, 0, 0, 0, 0, 0, 0, 0, 0, -582,
+ -582, -582, -582, -582, -582, -582, -582, -582, 0, -582,
+ -582, -582, 0, 0, -582, 0, 0, -582, -582, 0,
+ -582, -582, -582, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -582, -582, 0, 0, 0,
+ 0, 0, -582, 0, 0, -582, -582, 0, -582, -582,
+ 0, -582, 0, -582, -582, -582, 0, -582, -582, -582,
+ 0, -582, -582, -582, 0, -582, 0, 0, 0, 0,
+ 0, 0, -584, -584, -584, -584, -584, -584, -584, -584,
+ -584, 0, 0, 0, 0, -582, -582, -582, -584, -582,
+ -584, -584, -584, -584, 0, -582, 0, 0, 0, -584,
+ -584, -584, -584, -584, -584, -584, 0, 0, -584, 0,
+ 0, 0, 0, 0, 0, 0, 0, -584, -584, -584,
+ -584, -584, -584, -584, -584, -584, 0, -584, -584, -584,
+ 0, 0, -584, 0, 0, -584, -584, 0, -584, -584,
+ -584, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -584, -584, 0, 0, 0, 0, 0,
+ -584, 828, 0, -584, -584, 0, -584, -584, 0, -584,
+ 0, -584, -584, -584, 0, -584, -584, -584, 0, -584,
+ -584, -584, 0, -584, 0, 0, 0, 0, 0, 0,
+ -107, -585, -585, -585, -585, -585, -585, -585, -585, -585,
+ 0, 0, 0, -584, -584, -584, 0, -585, 0, -585,
+ -585, -585, -585, -584, 0, 0, 0, 0, -585, -585,
+ -585, -585, -585, -585, -585, 0, 0, -585, 0, 0,
+ 0, 0, 0, 0, 0, 0, -585, -585, -585, -585,
+ -585, -585, -585, -585, -585, 0, -585, -585, -585, 0,
+ 0, -585, 0, 0, -585, -585, 0, -585, -585, -585,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -585, -585, 0, 0, 0, 0, 0, -585,
+ 829, 0, -585, -585, 0, -585, -585, 0, -585, 0,
+ -585, -585, -585, 0, -585, -585, -585, 0, -585, -585,
+ -585, 0, -585, 0, 0, 0, 0, 0, 0, -109,
+ -586, -586, -586, -586, -586, -586, -586, -586, -586, 0,
+ 0, 0, -585, -585, -585, 0, -586, 0, -586, -586,
+ -586, -586, -585, 0, 0, 0, 0, -586, -586, -586,
+ -586, -586, -586, -586, 0, 0, -586, 0, 0, 0,
+ 0, 0, 0, 0, 0, -586, -586, -586, -586, -586,
+ -586, -586, -586, -586, 0, -586, -586, -586, 0, 0,
+ -586, 0, 0, -586, -586, 0, -586, -586, -586, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -586, -586, 0, 0, 0, 0, 0, -586, 0,
+ 0, -586, -586, 0, -586, -586, 0, -586, 0, -586,
+ -586, -586, 0, -586, -586, -586, 0, -586, -586, -586,
+ 0, -586, 0, 0, 0, 0, 0, 0, -587, -587,
+ -587, -587, -587, -587, -587, -587, -587, 0, 0, 0,
+ 0, -586, -586, -586, -587, 0, -587, -587, -587, -587,
+ 0, -586, 0, 0, 0, -587, -587, -587, -587, -587,
+ -587, -587, 0, 0, -587, 0, 0, 0, 0, 0,
+ 0, 0, 0, -587, -587, -587, -587, -587, -587, -587,
+ -587, -587, 0, -587, -587, -587, 0, 0, -587, 0,
+ 0, -587, -587, 0, -587, -587, -587, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -587,
+ -587, 0, 0, 0, 0, 0, -587, 0, 0, -587,
+ -587, 0, -587, -587, 0, -587, 0, -587, -587, -587,
+ 0, -587, -587, -587, 0, -587, -587, -587, 0, -587,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -583, -583, 0, 0, 0, 0, 0, -583, 0, 0,
- -583, -583, 0, -583, -583, 0, -583, 0, -583, -583,
- -583, 0, -583, -583, -583, 0, -583, -583, -583, 0,
- -583, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, -587,
+ -587, -587, 0, 0, 0, 0, 0, 0, 0, -587,
+ 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
+ 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
+ 151, 152, 153, 154, 0, 0, 0, 155, 156, 157,
+ 233, 234, 235, 236, 162, 163, 164, 0, 0, 0,
+ 0, 0, 165, 166, 167, 237, 238, 239, 240, 172,
+ 320, 321, 241, 322, 0, 0, 0, 0, 0, 0,
+ 323, 0, 0, 0, 0, 0, 0, 174, 175, 176,
+ 177, 178, 179, 180, 181, 0, 0, 182, 183, 0,
+ 0, 0, 0, 184, 185, 186, 187, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 188, 189, 190,
+ 0, 0, 0, 0, 324, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -583, -583, -583, 0, 0, 0, 0, 0, 0, 0,
- -583, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 0, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 0, 201, 202, 0, 0, 0, 0, 0, 0,
+ 203, 131, 132, 133, 134, 135, 136, 137, 138, 139,
140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
150, 151, 152, 153, 154, 0, 0, 0, 155, 156,
- 157, 231, 232, 233, 234, 162, 163, 164, 0, 0,
- 0, 0, 0, 165, 166, 167, 235, 236, 237, 238,
- 172, 318, 319, 239, 320, 0, 0, 0, 0, 0,
- 0, 321, 0, 0, 0, 0, 0, 0, 174, 175,
+ 157, 233, 234, 235, 236, 162, 163, 164, 0, 0,
+ 0, 0, 0, 165, 166, 167, 237, 238, 239, 240,
+ 172, 320, 321, 241, 322, 0, 0, 0, 0, 0,
+ 0, 323, 0, 0, 0, 0, 0, 0, 174, 175,
176, 177, 178, 179, 180, 181, 0, 0, 182, 183,
0, 0, 0, 0, 184, 185, 186, 187, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 188, 189,
- 190, 0, 0, 0, 0, 322, 0, 0, 0, 0,
+ 190, 0, 0, 0, 0, 485, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 191, 192, 193, 194, 195, 196, 197, 198,
199, 200, 0, 201, 202, 0, 0, 0, 0, 0,
0, 203, 131, 132, 133, 134, 135, 136, 137, 138,
139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
149, 150, 151, 152, 153, 154, 0, 0, 0, 155,
- 156, 157, 231, 232, 233, 234, 162, 163, 164, 0,
- 0, 0, 0, 0, 165, 166, 167, 235, 236, 237,
- 238, 172, 318, 319, 239, 320, 0, 0, 0, 0,
- 0, 0, 321, 0, 0, 0, 0, 0, 0, 174,
+ 156, 157, 233, 234, 235, 236, 162, 163, 164, 0,
+ 0, 0, 0, 0, 165, 166, 167, 237, 238, 239,
+ 240, 172, 0, 0, 241, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
175, 176, 177, 178, 179, 180, 181, 0, 0, 182,
183, 0, 0, 0, 0, 184, 185, 186, 187, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 188,
- 189, 190, 0, 0, 0, 0, 481, 0, 0, 0,
+ 189, 190, 0, 0, 0, 242, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 191, 192, 193, 194, 195, 196, 197,
198, 199, 200, 0, 201, 202, 0, 0, 0, 0,
0, 0, 203, 131, 132, 133, 134, 135, 136, 137,
138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
148, 149, 150, 151, 152, 153, 154, 0, 0, 0,
- 155, 156, 157, 231, 232, 233, 234, 162, 163, 164,
- 0, 0, 0, 0, 0, 165, 166, 167, 235, 236,
- 237, 238, 172, 0, 0, 239, 0, 0, 0, 0,
+ 155, 156, 157, 233, 234, 235, 236, 162, 163, 164,
+ 0, 0, 0, 0, 0, 165, 166, 167, 237, 238,
+ 239, 240, 172, 0, 0, 241, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
174, 175, 176, 177, 178, 179, 180, 181, 0, 0,
182, 183, 0, 0, 0, 0, 184, 185, 186, 187,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 188, 189, 190, 0, 0, 0, 240, 0, 0, 0,
+ 188, 189, 190, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 191, 192, 193, 194, 195, 196,
197, 198, 199, 200, 0, 201, 202, 0, 0, 0,
- 0, 0, 0, 203, 131, 132, 133, 134, 135, 136,
- 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
- 147, 148, 149, 150, 151, 152, 153, 154, 0, 0,
- 0, 155, 156, 157, 231, 232, 233, 234, 162, 163,
- 164, 0, 0, 0, 0, 0, 165, 166, 167, 235,
- 236, 237, 238, 172, 0, 0, 239, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 174, 175, 176, 177, 178, 179, 180, 181, 0,
- 0, 182, 183, 0, 0, 0, 0, 184, 185, 186,
- 187, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 188, 189, 190, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 191, 192, 193, 194, 195,
- 196, 197, 198, 199, 200, 0, 201, 202, 0, 0,
- 0, 0, 0, 0, 203, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 0, 0, 0, 0, 0, 0,
- 0, 15, 0, 108, 109, 18, 19, 0, 0, 0,
- 0, 0, 110, 111, 112, 23, 24, 25, 26, 0,
- 0, 113, 0, 0, 0, 0, 0, 0, 0, 0,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 0,
- 40, 41, 42, 0, 0, 43, 0, 0, 44, 45,
- 0, 116, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 311, 0, 0, 119, 53, 0, 54,
- 55, 0, 0, 0, 0, 0, 57, 0, 58, 59,
- 60, 0, 61, 62, 63, 0, 64, 0, 0, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 0, 0,
- 0, 0, 0, 0, 0, 15, 120, 108, 109, 18,
- 19, 0, 0, 0, 312, 0, 110, 111, 112, 23,
- 24, 25, 26, 0, 0, 113, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 0, 40, 41, 42, 0, 0, 43,
- 0, 0, 44, 45, 0, 116, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 311, 0, 0,
- 119, 53, 0, 54, 55, 0, 0, 0, 0, 0,
- 57, 0, 58, 59, 60, 0, 61, 62, 63, 0,
- 64, 0, 0, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 0, 0, 0, 0, 0, 0, 15,
- 120, 16, 17, 18, 19, 0, 0, 0, 602, 0,
- 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
- 0, 0, 0, 0, 0, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 0, 40, 41,
- 42, 0, 0, 43, 0, 0, 44, 45, 0, 46,
- 47, 48, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 49, 50, 0, 0, 0, 0,
- 0, 51, 0, 0, 52, 53, 0, 54, 55, 0,
- 56, 0, 0, 0, 57, 0, 58, 59, 60, 0,
- 61, 62, 63, 0, 64, 0, 0, 0, 0, 0,
- 0, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 0, 0, 0, 65, 66, 67, 15, 0, 16,
- 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
- 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
- 0, 0, 0, 28, 0, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 0, 40, 41, 42, 0,
- 0, 43, 0, 0, 44, 45, 0, 46, 47, 48,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 49, 50, 0, 0, 0, 0, 0, 51,
- 0, 0, 52, 53, 0, 54, 55, 0, 56, 0,
- 0, 0, 57, 0, 58, 59, 60, 0, 61, 62,
- 63, 0, 64, 0, 0, 0, 0, 0, 0, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 0, 0,
- 0, 0, 65, 66, 67, 15, 0, 16, 17, 18,
- 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
- 24, 25, 26, 0, 0, 113, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 32, 33, 258, 35, 36,
- 37, 38, 39, 0, 40, 41, 42, 0, 0, 43,
- 0, 0, 44, 45, 0, 46, 47, 48, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 49, 50, 0, 0, 0, 0, 0, 211, 0, 0,
- 119, 53, 0, 54, 55, 0, 259, 0, 260, 261,
- 57, 0, 58, 59, 60, 0, 61, 62, 63, 0,
- 64, 0, 0, 0, 0, 0, 0, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 0, 0, 0, 0,
- 65, 262, 67, 15, 0, 16, 17, 18, 19, 0,
- 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
- 26, 0, 0, 113, 0, 0, 0, 0, 0, 0,
- 0, 0, 31, 32, 33, 258, 35, 36, 37, 38,
- 39, 0, 40, 41, 42, 0, 0, 43, 0, 0,
- 44, 45, 0, 46, 47, 48, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 49, 503,
- 0, 0, 0, 0, 0, 211, 0, 0, 119, 53,
- 0, 54, 55, 0, 259, 0, 260, 261, 57, 0,
- 58, 59, 60, 0, 61, 62, 63, 0, 64, 0,
- 0, 0, 0, 0, 0, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 0, 0, 0, 0, 65, 262,
- 67, 15, 0, 108, 109, 18, 19, 0, 0, 0,
- 0, 0, 110, 111, 112, 23, 24, 25, 26, 0,
- 0, 113, 0, 0, 0, 0, 0, 0, 0, 0,
- 31, 32, 33, 258, 35, 36, 37, 38, 39, 0,
- 40, 41, 42, 0, 0, 43, 0, 0, 44, 45,
- 0, 46, 47, 48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 49, 50, 0, 0,
- 0, 0, 0, 211, 0, 0, 119, 53, 0, 54,
- 55, 0, 712, 0, 260, 261, 57, 0, 58, 59,
- 60, 0, 61, 62, 63, 0, 64, 0, 0, 0,
- 0, 0, 0, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 0, 0, 0, 0, 65, 262, 67, 15,
- 0, 108, 109, 18, 19, 0, 0, 0, 0, 0,
- 110, 111, 112, 23, 24, 25, 26, 0, 0, 113,
- 0, 0, 0, 0, 0, 0, 0, 0, 31, 32,
- 33, 258, 35, 36, 37, 38, 39, 0, 40, 41,
- 42, 0, 0, 43, 0, 0, 44, 45, 0, 46,
- 47, 48, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 49, 838, 0, 0, 0, 0,
- 0, 211, 0, 0, 119, 53, 0, 54, 55, 0,
- 712, 0, 260, 261, 57, 0, 58, 59, 60, 0,
- 61, 62, 63, 0, 64, 0, 0, 0, 0, 0,
- 0, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 0, 0, 0, 0, 65, 262, 67, 15, 0, 108,
- 109, 18, 19, 0, 0, 0, 0, 0, 110, 111,
- 112, 23, 24, 25, 26, 0, 0, 113, 0, 0,
- 0, 0, 0, 0, 0, 0, 31, 32, 33, 258,
- 35, 36, 37, 38, 39, 0, 40, 41, 42, 0,
- 0, 43, 0, 0, 44, 45, 0, 46, 47, 48,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 49, 50, 0, 0, 0, 0, 0, 211,
- 0, 0, 119, 53, 0, 54, 55, 0, 259, 0,
- 260, 0, 57, 0, 58, 59, 60, 0, 61, 62,
- 63, 0, 64, 0, 0, 0, 0, 0, 0, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 0, 0,
- 0, 0, 65, 262, 67, 15, 0, 108, 109, 18,
- 19, 0, 0, 0, 0, 0, 110, 111, 112, 23,
- 24, 25, 26, 0, 0, 113, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 32, 33, 258, 35, 36,
- 37, 38, 39, 0, 40, 41, 42, 0, 0, 43,
- 0, 0, 44, 45, 0, 46, 47, 48, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 49, 50, 0, 0, 0, 0, 0, 211, 0, 0,
- 119, 53, 0, 54, 55, 0, 0, 0, 260, 261,
- 57, 0, 58, 59, 60, 0, 61, 62, 63, 0,
- 64, 0, 0, 0, 0, 0, 0, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 0, 0, 0, 0,
- 65, 262, 67, 15, 0, 108, 109, 18, 19, 0,
- 0, 0, 0, 0, 110, 111, 112, 23, 24, 25,
- 26, 0, 0, 113, 0, 0, 0, 0, 0, 0,
- 0, 0, 31, 32, 33, 258, 35, 36, 37, 38,
- 39, 0, 40, 41, 42, 0, 0, 43, 0, 0,
- 44, 45, 0, 46, 47, 48, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 49, 50,
- 0, 0, 0, 0, 0, 211, 0, 0, 119, 53,
- 0, 54, 55, 0, 712, 0, 260, 0, 57, 0,
- 58, 59, 60, 0, 61, 62, 63, 0, 64, 0,
- 0, 0, 0, 0, 0, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 0, 0, 0, 0, 65, 262,
- 67, 15, 0, 108, 109, 18, 19, 0, 0, 0,
- 0, 0, 110, 111, 112, 23, 24, 25, 26, 0,
- 0, 113, 0, 0, 0, 0, 0, 0, 0, 0,
- 31, 32, 33, 258, 35, 36, 37, 38, 39, 0,
- 40, 41, 42, 0, 0, 43, 0, 0, 44, 45,
- 0, 46, 47, 48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 49, 50, 0, 0,
- 0, 0, 0, 211, 0, 0, 119, 53, 0, 54,
- 55, 0, 0, 0, 260, 0, 57, 0, 58, 59,
- 60, 0, 61, 62, 63, 0, 64, 0, 0, 0,
- 0, 0, 0, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 0, 0, 0, 0, 65, 262, 67, 15,
- 0, 16, 17, 18, 19, 0, 0, 0, 0, 0,
- 20, 21, 22, 23, 24, 25, 26, 0, 0, 113,
- 0, 0, 0, 0, 0, 0, 0, 0, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 0, 40, 41,
- 42, 0, 0, 43, 0, 0, 44, 45, 0, 46,
- 47, 48, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 49, 50, 0, 0, 0, 0,
- 0, 211, 0, 0, 119, 53, 0, 54, 55, 0,
- 596, 0, 0, 0, 57, 0, 58, 59, 60, 0,
- 61, 62, 63, 0, 64, 0, 0, 0, 0, 0,
- 0, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 0, 0, 0, 0, 65, 262, 67, 15, 0, 108,
- 109, 18, 19, 0, 0, 0, 0, 0, 110, 111,
- 112, 23, 24, 25, 26, 0, 0, 113, 0, 0,
- 0, 0, 0, 0, 0, 0, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 0, 40, 41, 42, 0,
- 0, 43, 0, 0, 44, 45, 0, 46, 47, 48,
+ 0, 0, 0, 203, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 0, 0, 0, 0, 0, 0, 0,
+ 15, 0, 108, 109, 18, 19, 0, 0, 0, 0,
+ 0, 110, 111, 112, 23, 24, 25, 26, 0, 0,
+ 113, 0, 0, 0, 0, 0, 0, 0, 0, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
+ 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
+ 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 49, 50, 0, 0, 0, 0, 0, 211,
- 0, 0, 119, 53, 0, 54, 55, 0, 259, 0,
- 0, 0, 57, 0, 58, 59, 60, 0, 61, 62,
- 63, 0, 64, 0, 0, 0, 0, 0, 0, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 0, 0,
- 0, 0, 65, 262, 67, 15, 0, 108, 109, 18,
- 19, 0, 0, 0, 0, 0, 110, 111, 112, 23,
- 24, 25, 26, 0, 0, 113, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 0, 40, 41, 42, 0, 0, 43,
- 0, 0, 44, 45, 0, 46, 47, 48, 0, 0,
+ 0, 0, 313, 0, 0, 119, 53, 0, 54, 55,
+ 0, 0, 0, 0, 0, 57, 0, 58, 59, 60,
+ 0, 61, 62, 63, 0, 64, 0, 0, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
+ 0, 0, 0, 0, 15, 120, 108, 109, 18, 19,
+ 0, 0, 0, 314, 0, 110, 111, 112, 23, 24,
+ 25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
+ 0, 0, 0, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
+ 0, 44, 45, 0, 116, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 49, 50, 0, 0, 0, 0, 0, 211, 0, 0,
- 119, 53, 0, 54, 55, 0, 596, 0, 0, 0,
- 57, 0, 58, 59, 60, 0, 61, 62, 63, 0,
- 64, 0, 0, 0, 0, 0, 0, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 0, 0, 0, 0,
- 65, 262, 67, 15, 0, 108, 109, 18, 19, 0,
- 0, 0, 0, 0, 110, 111, 112, 23, 24, 25,
- 26, 0, 0, 113, 0, 0, 0, 0, 0, 0,
- 0, 0, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 0, 40, 41, 42, 0, 0, 43, 0, 0,
- 44, 45, 0, 46, 47, 48, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 49, 50,
- 0, 0, 0, 0, 0, 211, 0, 0, 119, 53,
- 0, 54, 55, 0, 881, 0, 0, 0, 57, 0,
- 58, 59, 60, 0, 61, 62, 63, 0, 64, 0,
- 0, 0, 0, 0, 0, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 0, 0, 0, 0, 65, 262,
- 67, 15, 0, 108, 109, 18, 19, 0, 0, 0,
- 0, 0, 110, 111, 112, 23, 24, 25, 26, 0,
- 0, 113, 0, 0, 0, 0, 0, 0, 0, 0,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 0,
- 40, 41, 42, 0, 0, 43, 0, 0, 44, 45,
- 0, 46, 47, 48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 49, 50, 0, 0,
- 0, 0, 0, 211, 0, 0, 119, 53, 0, 54,
- 55, 0, 712, 0, 0, 0, 57, 0, 58, 59,
- 60, 0, 61, 62, 63, 0, 64, 0, 0, 0,
- 0, 0, 0, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 0, 0, 0, 0, 65, 262, 67, 15,
- 0, 16, 17, 18, 19, 0, 0, 0, 0, 0,
- 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
- 0, 0, 0, 0, 0, 0, 0, 0, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 0, 40, 41,
- 42, 0, 0, 43, 0, 0, 44, 45, 0, 46,
- 47, 48, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 49, 50, 0, 0, 0, 0,
- 0, 211, 0, 0, 119, 53, 0, 54, 55, 0,
- 0, 0, 0, 0, 57, 0, 58, 59, 60, 0,
- 61, 62, 63, 0, 64, 0, 0, 0, 0, 0,
- 0, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 0, 0, 0, 0, 65, 66, 67, 15, 0, 108,
- 109, 18, 19, 0, 0, 0, 0, 0, 110, 111,
- 112, 23, 24, 25, 26, 0, 0, 113, 0, 0,
- 0, 0, 0, 0, 0, 0, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 0, 40, 41, 42, 0,
- 0, 43, 0, 0, 44, 45, 0, 46, 47, 48,
+ 0, 0, 0, 0, 0, 0, 313, 0, 0, 119,
+ 53, 0, 54, 55, 0, 0, 0, 0, 0, 57,
+ 0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
+ 0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 0, 0, 0, 0, 0, 0, 15, 120,
+ 16, 17, 18, 19, 0, 0, 0, 606, 0, 20,
+ 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
+ 0, 0, 0, 0, 28, 29, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
+ 0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
+ 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 49, 50, 0, 0, 0, 0, 0,
+ 51, 0, 0, 52, 53, 0, 54, 55, 0, 56,
+ 0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
+ 62, 63, 0, 64, 0, 0, 0, 0, 0, 0,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 0, 0, 0, 65, 66, 67, 15, 0, 16, 17,
+ 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
+ 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
+ 0, 0, 28, 0, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
+ 43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 49, 50, 0, 0, 0, 0, 0, 211,
- 0, 0, 119, 53, 0, 54, 55, 0, 0, 0,
- 0, 0, 57, 0, 58, 59, 60, 0, 61, 62,
- 63, 0, 64, 0, 0, 0, 0, 0, 0, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 0, 0,
- 0, 0, 65, 262, 67, 15, 0, 16, 17, 18,
- 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
- 24, 25, 26, 0, 0, 113, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 0, 40, 41, 42, 0, 0, 43,
- 0, 0, 44, 45, 0, 46, 47, 48, 0, 0,
+ 0, 49, 50, 0, 0, 0, 0, 0, 51, 0,
+ 0, 52, 53, 0, 54, 55, 0, 56, 0, 0,
+ 0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
+ 0, 64, 0, 0, 0, 0, 0, 0, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
+ 0, 65, 66, 67, 15, 0, 16, 17, 18, 19,
+ 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
+ 25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
+ 0, 0, 0, 31, 32, 33, 260, 35, 36, 37,
+ 38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
+ 0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
+ 50, 0, 0, 0, 0, 0, 211, 0, 0, 119,
+ 53, 0, 54, 55, 0, 261, 0, 262, 263, 57,
+ 0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
+ 0, 0, 0, 0, 0, 0, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 0, 0, 0, 0, 65,
+ 264, 67, 15, 0, 16, 17, 18, 19, 0, 0,
+ 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
+ 0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
+ 0, 31, 32, 33, 260, 35, 36, 37, 38, 39,
+ 0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
+ 45, 0, 46, 47, 48, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 49, 507, 0,
+ 0, 0, 0, 0, 211, 0, 0, 119, 53, 0,
+ 54, 55, 0, 261, 0, 262, 263, 57, 0, 58,
+ 59, 60, 0, 61, 62, 63, 0, 64, 0, 0,
+ 0, 0, 0, 0, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 0, 0, 0, 0, 65, 264, 67,
+ 15, 0, 108, 109, 18, 19, 0, 0, 0, 0,
+ 0, 110, 111, 112, 23, 24, 25, 26, 0, 0,
+ 113, 0, 0, 0, 0, 0, 0, 0, 0, 31,
+ 32, 33, 260, 35, 36, 37, 38, 39, 0, 40,
+ 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
+ 46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
+ 0, 0, 211, 0, 0, 119, 53, 0, 54, 55,
+ 0, 718, 0, 262, 263, 57, 0, 58, 59, 60,
+ 0, 61, 62, 63, 0, 64, 0, 0, 0, 0,
+ 0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 0, 0, 0, 0, 65, 264, 67, 15, 0,
+ 108, 109, 18, 19, 0, 0, 0, 0, 0, 110,
+ 111, 112, 23, 24, 25, 26, 0, 0, 113, 0,
+ 0, 0, 0, 0, 0, 0, 0, 31, 32, 33,
+ 260, 35, 36, 37, 38, 39, 0, 40, 41, 42,
+ 0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
+ 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 49, 846, 0, 0, 0, 0, 0,
+ 211, 0, 0, 119, 53, 0, 54, 55, 0, 718,
+ 0, 262, 263, 57, 0, 58, 59, 60, 0, 61,
+ 62, 63, 0, 64, 0, 0, 0, 0, 0, 0,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
+ 0, 0, 0, 65, 264, 67, 15, 0, 108, 109,
+ 18, 19, 0, 0, 0, 0, 0, 110, 111, 112,
+ 23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
+ 0, 0, 0, 0, 0, 31, 32, 33, 260, 35,
+ 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
+ 43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 49, 50, 0, 0, 0, 0, 0, 211, 0, 0,
- 119, 53, 0, 54, 55, 0, 0, 0, 0, 0,
- 57, 0, 58, 59, 60, 0, 61, 62, 63, 0,
- 64, 0, 0, 0, 0, 0, 0, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 0, 0, 0, 0,
- 65, 262, 67, 15, 0, 108, 109, 18, 19, 0,
- 0, 0, 0, 0, 110, 111, 112, 23, 24, 25,
- 26, 0, 0, 113, 0, 0, 0, 0, 0, 0,
- 0, 0, 31, 32, 33, 114, 35, 36, 37, 115,
- 39, 0, 40, 41, 42, 0, 0, 43, 0, 0,
- 44, 45, 0, 116, 0, 0, 0, 0, 0, 0,
+ 0, 49, 50, 0, 0, 0, 0, 0, 211, 0,
+ 0, 119, 53, 0, 54, 55, 0, 261, 0, 262,
+ 0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
+ 0, 64, 0, 0, 0, 0, 0, 0, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
+ 0, 65, 264, 67, 15, 0, 108, 109, 18, 19,
+ 0, 0, 0, 0, 0, 110, 111, 112, 23, 24,
+ 25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
+ 0, 0, 0, 31, 32, 33, 260, 35, 36, 37,
+ 38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
+ 0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
+ 50, 0, 0, 0, 0, 0, 211, 0, 0, 119,
+ 53, 0, 54, 55, 0, 0, 0, 262, 263, 57,
+ 0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
+ 0, 0, 0, 0, 0, 0, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 0, 0, 0, 0, 65,
+ 264, 67, 15, 0, 108, 109, 18, 19, 0, 0,
+ 0, 0, 0, 110, 111, 112, 23, 24, 25, 26,
+ 0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
+ 0, 31, 32, 33, 260, 35, 36, 37, 38, 39,
+ 0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
+ 45, 0, 46, 47, 48, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 49, 50, 0,
+ 0, 0, 0, 0, 211, 0, 0, 119, 53, 0,
+ 54, 55, 0, 718, 0, 262, 0, 57, 0, 58,
+ 59, 60, 0, 61, 62, 63, 0, 64, 0, 0,
+ 0, 0, 0, 0, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 0, 0, 0, 0, 65, 264, 67,
+ 15, 0, 108, 109, 18, 19, 0, 0, 0, 0,
+ 0, 110, 111, 112, 23, 24, 25, 26, 0, 0,
+ 113, 0, 0, 0, 0, 0, 0, 0, 0, 31,
+ 32, 33, 260, 35, 36, 37, 38, 39, 0, 40,
+ 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
+ 46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
+ 0, 0, 211, 0, 0, 119, 53, 0, 54, 55,
+ 0, 0, 0, 262, 0, 57, 0, 58, 59, 60,
+ 0, 61, 62, 63, 0, 64, 0, 0, 0, 0,
+ 0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 0, 0, 0, 0, 65, 264, 67, 15, 0,
+ 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
+ 21, 22, 23, 24, 25, 26, 0, 0, 113, 0,
+ 0, 0, 0, 0, 0, 0, 0, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
+ 0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
+ 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 49, 50, 0, 0, 0, 0, 0,
+ 211, 0, 0, 119, 53, 0, 54, 55, 0, 600,
+ 0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
+ 62, 63, 0, 64, 0, 0, 0, 0, 0, 0,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
+ 0, 0, 0, 65, 264, 67, 15, 0, 108, 109,
+ 18, 19, 0, 0, 0, 0, 0, 110, 111, 112,
+ 23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
+ 0, 0, 0, 0, 0, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
+ 43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 117, 0, 0, 118, 0, 0, 119, 53,
- 0, 54, 55, 0, 0, 0, 0, 0, 57, 0,
- 58, 59, 60, 0, 61, 62, 63, 0, 64, 0,
- 0, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 0, 0, 0, 0, 0, 0, 0, 15, 120, 108,
- 109, 18, 19, 0, 0, 0, 0, 0, 110, 111,
- 112, 23, 24, 25, 26, 0, 0, 113, 0, 0,
- 0, 0, 0, 0, 0, 0, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 0, 40, 41, 42, 0,
- 0, 43, 0, 0, 44, 45, 0, 223, 0, 0,
+ 0, 49, 50, 0, 0, 0, 0, 0, 211, 0,
+ 0, 119, 53, 0, 54, 55, 0, 261, 0, 0,
+ 0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
+ 0, 64, 0, 0, 0, 0, 0, 0, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
+ 0, 65, 264, 67, 15, 0, 108, 109, 18, 19,
+ 0, 0, 0, 0, 0, 110, 111, 112, 23, 24,
+ 25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
+ 0, 0, 0, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
+ 0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
+ 50, 0, 0, 0, 0, 0, 211, 0, 0, 119,
+ 53, 0, 54, 55, 0, 600, 0, 0, 0, 57,
+ 0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
+ 0, 0, 0, 0, 0, 0, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 0, 0, 0, 0, 65,
+ 264, 67, 15, 0, 108, 109, 18, 19, 0, 0,
+ 0, 0, 0, 110, 111, 112, 23, 24, 25, 26,
+ 0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
+ 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
+ 45, 0, 46, 47, 48, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 49, 50, 0,
+ 0, 0, 0, 0, 211, 0, 0, 119, 53, 0,
+ 54, 55, 0, 891, 0, 0, 0, 57, 0, 58,
+ 59, 60, 0, 61, 62, 63, 0, 64, 0, 0,
+ 0, 0, 0, 0, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 0, 0, 0, 0, 65, 264, 67,
+ 15, 0, 108, 109, 18, 19, 0, 0, 0, 0,
+ 0, 110, 111, 112, 23, 24, 25, 26, 0, 0,
+ 113, 0, 0, 0, 0, 0, 0, 0, 0, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
+ 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
+ 46, 47, 48, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 49, 50, 0, 0, 0,
+ 0, 0, 211, 0, 0, 119, 53, 0, 54, 55,
+ 0, 718, 0, 0, 0, 57, 0, 58, 59, 60,
+ 0, 61, 62, 63, 0, 64, 0, 0, 0, 0,
+ 0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 0, 0, 0, 0, 65, 264, 67, 15, 0,
+ 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
+ 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
+ 0, 0, 0, 0, 0, 0, 0, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
+ 0, 0, 43, 0, 0, 44, 45, 0, 46, 47,
+ 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 49, 50, 0, 0, 0, 0, 0,
+ 211, 0, 0, 119, 53, 0, 54, 55, 0, 0,
+ 0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
+ 62, 63, 0, 64, 0, 0, 0, 0, 0, 0,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
+ 0, 0, 0, 65, 66, 67, 15, 0, 108, 109,
+ 18, 19, 0, 0, 0, 0, 0, 110, 111, 112,
+ 23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
+ 0, 0, 0, 0, 0, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
+ 43, 0, 0, 44, 45, 0, 46, 47, 48, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 224,
- 0, 0, 52, 53, 0, 54, 55, 0, 56, 0,
- 0, 0, 57, 0, 58, 59, 60, 0, 61, 62,
- 63, 0, 64, 0, 0, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 0, 0, 0, 0, 0, 0,
- 0, 15, 120, 108, 109, 18, 19, 0, 0, 0,
- 0, 0, 110, 111, 112, 23, 24, 25, 26, 0,
- 0, 113, 0, 0, 0, 0, 0, 0, 0, 0,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 0,
- 40, 41, 42, 0, 0, 43, 0, 0, 44, 45,
- 0, 116, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 49, 50, 0, 0, 0, 0, 0, 211, 0,
+ 0, 119, 53, 0, 54, 55, 0, 0, 0, 0,
+ 0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
+ 0, 64, 0, 0, 0, 0, 0, 0, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
+ 0, 65, 264, 67, 15, 0, 16, 17, 18, 19,
+ 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
+ 25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
+ 0, 0, 0, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 0, 40, 41, 42, 0, 0, 43, 0,
+ 0, 44, 45, 0, 46, 47, 48, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
+ 50, 0, 0, 0, 0, 0, 211, 0, 0, 119,
+ 53, 0, 54, 55, 0, 0, 0, 0, 0, 57,
+ 0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
+ 0, 0, 0, 0, 0, 0, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 0, 0, 0, 0, 65,
+ 264, 67, 15, 0, 108, 109, 18, 19, 0, 0,
+ 0, 0, 0, 110, 111, 112, 23, 24, 25, 26,
+ 0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
+ 0, 31, 32, 33, 114, 35, 36, 37, 115, 39,
+ 0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
+ 45, 0, 116, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 311, 0, 0, 396, 53, 0, 54,
- 55, 0, 397, 0, 0, 0, 57, 0, 58, 59,
- 60, 0, 61, 62, 63, 0, 64, 0, 0, 5,
- 6, 7, 8, 9, 10, 11, 12, 13, 0, 0,
- 0, 0, 0, 0, 0, 15, 120, 108, 109, 18,
- 19, 0, 0, 0, 0, 0, 110, 111, 112, 23,
- 24, 25, 26, 0, 0, 113, 0, 0, 0, 0,
- 0, 0, 0, 0, 31, 32, 33, 114, 35, 36,
- 37, 115, 39, 0, 40, 41, 42, 0, 0, 43,
- 0, 0, 44, 45, 0, 116, 0, 0, 0, 0,
+ 0, 117, 0, 0, 118, 0, 0, 119, 53, 0,
+ 54, 55, 0, 0, 0, 0, 0, 57, 0, 58,
+ 59, 60, 0, 61, 62, 63, 0, 64, 0, 0,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
+ 0, 0, 0, 0, 0, 0, 15, 120, 108, 109,
+ 18, 19, 0, 0, 0, 0, 0, 110, 111, 112,
+ 23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
+ 0, 0, 0, 0, 0, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
+ 43, 0, 0, 44, 45, 0, 225, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 118, 0, 0,
- 119, 53, 0, 54, 55, 0, 0, 0, 0, 0,
- 57, 0, 58, 59, 60, 0, 61, 62, 63, 0,
- 64, 0, 0, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 0, 0, 0, 0, 0, 0, 0, 15,
- 120, 108, 109, 18, 19, 0, 0, 0, 0, 0,
- 110, 111, 112, 23, 24, 25, 26, 0, 0, 113,
- 0, 0, 0, 0, 0, 0, 0, 0, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 0, 40, 41,
- 42, 0, 0, 43, 0, 0, 44, 45, 0, 116,
+ 0, 0, 0, 0, 0, 0, 0, 0, 226, 0,
+ 0, 52, 53, 0, 54, 55, 0, 56, 0, 0,
+ 0, 57, 0, 58, 59, 60, 0, 61, 62, 63,
+ 0, 64, 0, 0, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 0, 0, 0, 0, 0, 0, 0,
+ 15, 120, 108, 109, 18, 19, 0, 0, 0, 0,
+ 0, 110, 111, 112, 23, 24, 25, 26, 0, 0,
+ 113, 0, 0, 0, 0, 0, 0, 0, 0, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 0, 40,
+ 41, 42, 0, 0, 43, 0, 0, 44, 45, 0,
+ 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 313, 0, 0, 398, 53, 0, 54, 55,
+ 0, 399, 0, 0, 0, 57, 0, 58, 59, 60,
+ 0, 61, 62, 63, 0, 64, 0, 0, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 0, 0, 0,
+ 0, 0, 0, 0, 15, 120, 108, 109, 18, 19,
+ 0, 0, 0, 0, 0, 110, 111, 112, 23, 24,
+ 25, 26, 0, 0, 113, 0, 0, 0, 0, 0,
+ 0, 0, 0, 31, 32, 33, 114, 35, 36, 37,
+ 115, 39, 0, 40, 41, 42, 0, 0, 43, 0,
+ 0, 44, 45, 0, 116, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 311, 0, 0, 396, 53, 0, 54, 55, 0,
- 0, 0, 0, 0, 57, 0, 58, 59, 60, 0,
- 61, 62, 63, 0, 64, 0, 0, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 0, 0, 0, 0,
- 0, 0, 0, 15, 120, 108, 109, 18, 19, 0,
- 0, 0, 0, 0, 110, 111, 112, 23, 24, 25,
- 26, 0, 0, 113, 0, 0, 0, 0, 0, 0,
- 0, 0, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 0, 40, 41, 42, 0, 0, 43, 0, 0,
- 44, 45, 0, 116, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 118, 0, 0, 119,
+ 53, 0, 54, 55, 0, 0, 0, 0, 0, 57,
+ 0, 58, 59, 60, 0, 61, 62, 63, 0, 64,
+ 0, 0, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 0, 0, 0, 0, 0, 0, 0, 15, 120,
+ 108, 109, 18, 19, 0, 0, 0, 0, 0, 110,
+ 111, 112, 23, 24, 25, 26, 0, 0, 113, 0,
+ 0, 0, 0, 0, 0, 0, 0, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 0, 40, 41, 42,
+ 0, 0, 43, 0, 0, 44, 45, 0, 116, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 946, 0, 0, 119, 53,
- 0, 54, 55, 0, 0, 0, 0, 0, 57, 0,
- 58, 59, 60, 0, 61, 62, 63, 0, 64, 0,
- 0, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 0, 0, 0, 0, 0, 0, 0, 15, 120, 108,
- 109, 18, 19, 0, 0, 0, 0, 0, 110, 111,
- 112, 23, 24, 25, 26, 0, 0, 113, 0, 0,
- 0, 0, 0, 0, 0, 0, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 0, 40, 41, 42, 0,
- 0, 43, 0, 0, 44, 45, 0, 223, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 969,
- 0, 0, 119, 53, 0, 54, 55, 0, 0, 656,
- 651, 0, 57, 657, 58, 59, 60, 0, 61, 62,
- 63, 0, 64, 0, 0, 0, 0, 0, 174, 175,
- 176, 177, 178, 179, 180, 181, 0, 0, 182, 183,
- 0, 0, 120, 0, 184, 185, 186, 187, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 188, 189,
- 190, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 313, 0, 0, 398, 53, 0, 54, 55, 0, 0,
+ 0, 0, 0, 57, 0, 58, 59, 60, 0, 61,
+ 62, 63, 0, 64, 0, 0, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 0, 0, 0, 0, 0,
+ 0, 0, 15, 120, 108, 109, 18, 19, 0, 0,
+ 0, 0, 0, 110, 111, 112, 23, 24, 25, 26,
+ 0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
+ 0, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 0, 40, 41, 42, 0, 0, 43, 0, 0, 44,
+ 45, 0, 116, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 0, 201, 202, 686, 642, 0, 0, 687,
- 0, 203, 273, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 174, 175, 176, 177, 178, 179,
- 180, 181, 0, 0, 182, 183, 0, 0, 0, 0,
- 184, 185, 186, 187, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 188, 189, 190, 0, 0, 0,
+ 0, 0, 0, 0, 958, 0, 0, 119, 53, 0,
+ 54, 55, 0, 0, 0, 0, 0, 57, 0, 58,
+ 59, 60, 0, 61, 62, 63, 0, 64, 0, 0,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 0,
+ 0, 0, 0, 0, 0, 0, 15, 120, 108, 109,
+ 18, 19, 0, 0, 0, 0, 0, 110, 111, 112,
+ 23, 24, 25, 26, 0, 0, 113, 0, 0, 0,
+ 0, 0, 0, 0, 0, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 0, 40, 41, 42, 0, 0,
+ 43, 0, 0, 44, 45, 0, 225, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 191, 192,
- 193, 194, 195, 196, 197, 198, 199, 200, 0, 201,
- 202, 689, 651, 0, 0, 690, 0, 203, 273, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 981, 0,
+ 0, 119, 53, 0, 54, 55, 0, 0, 654, 655,
+ 0, 57, 656, 58, 59, 60, 0, 61, 62, 63,
+ 0, 64, 0, 0, 0, 0, 0, 174, 175, 176,
+ 177, 178, 179, 180, 181, 0, 0, 182, 183, 0,
+ 0, 120, 0, 184, 185, 186, 187, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 188, 189, 190,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 174, 175, 176, 177, 178, 179, 180, 181, 0, 0,
- 182, 183, 0, 0, 0, 0, 184, 185, 186, 187,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 188, 189, 190, 0, 0, 0, 0, 0, 0, 0,
+ 0, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 0, 201, 202, 675, 646, 0, 0, 676, 0,
+ 203, 275, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 174, 175, 176, 177, 178, 179, 180,
+ 181, 0, 0, 182, 183, 0, 0, 0, 0, 184,
+ 185, 186, 187, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 188, 189, 190, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 191, 192, 193, 194, 195, 196,
- 197, 198, 199, 200, 0, 201, 202, 696, 642, 0,
- 0, 697, 0, 203, 273, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 174, 175, 176, 177,
- 178, 179, 180, 181, 0, 0, 182, 183, 0, 0,
- 0, 0, 184, 185, 186, 187, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 188, 189, 190, 0,
+ 0, 0, 0, 0, 0, 0, 0, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 0, 201, 202,
+ 660, 655, 0, 0, 661, 0, 203, 275, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
+ 175, 176, 177, 178, 179, 180, 181, 0, 0, 182,
+ 183, 0, 0, 0, 0, 184, 185, 186, 187, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 188,
+ 189, 190, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 0, 201, 202, 692, 646, 0, 0,
+ 693, 0, 203, 275, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 174, 175, 176, 177, 178,
+ 179, 180, 181, 0, 0, 182, 183, 0, 0, 0,
+ 0, 184, 185, 186, 187, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 188, 189, 190, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
- 0, 201, 202, 699, 651, 0, 0, 700, 0, 203,
- 273, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 174, 175, 176, 177, 178, 179, 180, 181,
- 0, 0, 182, 183, 0, 0, 0, 0, 184, 185,
- 186, 187, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 188, 189, 190, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 0,
+ 201, 202, 695, 655, 0, 0, 696, 0, 203, 275,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 191, 192, 193, 194,
- 195, 196, 197, 198, 199, 200, 0, 201, 202, 735,
- 642, 0, 0, 736, 0, 203, 273, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 174, 175,
- 176, 177, 178, 179, 180, 181, 0, 0, 182, 183,
- 0, 0, 0, 0, 184, 185, 186, 187, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 188, 189,
- 190, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 174, 175, 176, 177, 178, 179, 180, 181, 0,
+ 0, 182, 183, 0, 0, 0, 0, 184, 185, 186,
+ 187, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 188, 189, 190, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 0, 201, 202, 738, 651, 0, 0, 739,
- 0, 203, 273, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 174, 175, 176, 177, 178, 179,
- 180, 181, 0, 0, 182, 183, 0, 0, 0, 0,
- 184, 185, 186, 187, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 188, 189, 190, 0, 0, 0,
+ 0, 0, 0, 0, 0, 191, 192, 193, 194, 195,
+ 196, 197, 198, 199, 200, 0, 201, 202, 702, 646,
+ 0, 0, 703, 0, 203, 275, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 174, 175, 176,
+ 177, 178, 179, 180, 181, 0, 0, 182, 183, 0,
+ 0, 0, 0, 184, 185, 186, 187, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 188, 189, 190,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 191, 192,
- 193, 194, 195, 196, 197, 198, 199, 200, 0, 201,
- 202, 886, 642, 0, 0, 887, 0, 203, 273, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 174, 175, 176, 177, 178, 179, 180, 181, 0, 0,
- 182, 183, 0, 0, 0, 0, 184, 185, 186, 187,
+ 0, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 0, 201, 202, 705, 655, 0, 0, 706, 0,
+ 203, 275, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 174, 175, 176, 177, 178, 179, 180,
+ 181, 0, 0, 182, 183, 0, 0, 0, 0, 184,
+ 185, 186, 187, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 188, 189, 190, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 188, 189, 190, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 0, 201, 202,
+ 741, 646, 0, 0, 742, 0, 203, 275, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
+ 175, 176, 177, 178, 179, 180, 181, 0, 0, 182,
+ 183, 0, 0, 0, 0, 184, 185, 186, 187, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 188,
+ 189, 190, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 191, 192, 193, 194, 195, 196,
- 197, 198, 199, 200, 0, 201, 202, 889, 651, 0,
- 0, 890, 0, 203, 273, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 174, 175, 176, 177,
- 178, 179, 180, 181, 0, 0, 182, 183, 0, 0,
- 0, 0, 184, 185, 186, 187, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 188, 189, 190, 0,
+ 0, 0, 0, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 0, 201, 202, 744, 655, 0, 0,
+ 745, 0, 203, 275, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 174, 175, 176, 177, 178,
+ 179, 180, 181, 0, 0, 182, 183, 0, 0, 0,
+ 0, 184, 185, 186, 187, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 188, 189, 190, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 0,
+ 201, 202, 896, 646, 0, 0, 897, 0, 203, 275,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
- 0, 201, 202, 1028, 642, 0, 0, 1029, 0, 203,
- 273, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 174, 175, 176, 177, 178, 179, 180, 181,
- 0, 0, 182, 183, 0, 0, 0, 0, 184, 185,
- 186, 187, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 188, 189, 190, 0, 0, 0, 0, 0,
+ 0, 174, 175, 176, 177, 178, 179, 180, 181, 0,
+ 0, 182, 183, 0, 0, 0, 0, 184, 185, 186,
+ 187, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 188, 189, 190, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 191, 192, 193, 194,
- 195, 196, 197, 198, 199, 200, 0, 201, 202, 1040,
- 642, 0, 0, 1041, 0, 203, 273, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 174, 175,
- 176, 177, 178, 179, 180, 181, 0, 0, 182, 183,
- 0, 0, 0, 0, 184, 185, 186, 187, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 188, 189,
- 190, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 191, 192, 193, 194, 195,
+ 196, 197, 198, 199, 200, 0, 201, 202, 899, 655,
+ 0, 0, 900, 0, 203, 275, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 174, 175, 176,
+ 177, 178, 179, 180, 181, 0, 0, 182, 183, 0,
+ 0, 0, 0, 184, 185, 186, 187, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 188, 189, 190,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 0, 201, 202, 1043, 651, 0, 0, 1044,
- 0, 203, 273, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 174, 175, 176, 177, 178, 179,
- 180, 181, 0, 0, 182, 183, 0, 0, 0, 0,
- 184, 185, 186, 187, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 188, 189, 190, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 191, 192,
- 193, 194, 195, 196, 197, 198, 199, 200, 0, 201,
- 202, 656, 651, 0, 0, 657, 0, 203, 273, 0,
+ 0, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 0, 201, 202, 1040, 646, 0, 0, 1041, 0,
+ 203, 275, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 174, 175, 176, 177, 178, 179, 180,
+ 181, 0, 0, 182, 183, 0, 0, 0, 0, 184,
+ 185, 186, 187, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 188, 189, 190, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 174, 175, 176, 177, 178, 179, 180, 181, 0, 0,
- 182, 183, 0, 0, 0, 0, 184, 185, 186, 187,
+ 0, 0, 0, 0, 0, 0, 0, 191, 192, 193,
+ 194, 195, 196, 197, 198, 199, 200, 0, 201, 202,
+ 1052, 646, 0, 0, 1053, 0, 203, 275, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
+ 175, 176, 177, 178, 179, 180, 181, 0, 0, 182,
+ 183, 0, 0, 0, 0, 184, 185, 186, 187, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 188,
+ 189, 190, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 188, 189, 190, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 855, 0, 0, 0,
- 0, 0, 0, 0, 191, 192, 193, 194, 195, 196,
- 197, 198, 199, 200, 0, 201, 202, 0, 0, 0,
- 0, 0, 0, 203, 400, 401, 402, 403, 404, 405,
- 406, 407, 408, 409, 410, 411, 0, 0, 0, 0,
- 412, 413, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 415, 0, 0, 0, 0, 866, 0,
+ 0, 0, 0, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 200, 0, 201, 202, 1055, 655, 0, 0,
+ 1056, 0, 203, 275, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 174, 175, 176, 177, 178,
+ 179, 180, 181, 0, 0, 182, 183, 0, 0, 0,
+ 0, 184, 185, 186, 187, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 188, 189, 190, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 416, 0, 417, 418, 419, 420,
- 421, 422, 423, 424, 425, 426, 400, 401, 402, 403,
- 404, 405, 406, 407, 408, 409, 410, 411, 0, 0,
- 0, 0, 412, 413, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 415, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 200, 0,
+ 201, 202, 660, 655, 0, 0, 661, 0, 203, 275,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 416, 0, 417, 418,
- 419, 420, 421, 422, 423, 424, 425, 426, 400, 401,
- 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
- 0, 0, 0, 0, 412, 413, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 415, 0, 0,
+ 0, 174, 175, 176, 177, 178, 179, 180, 181, 0,
+ 0, 182, 183, 0, 0, 0, 0, 184, 185, 186,
+ 187, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 188, 189, 190, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 791, 0, 0,
+ 0, 0, 0, 0, 0, 191, 192, 193, 194, 195,
+ 196, 197, 198, 199, 200, 0, 201, 202, 0, 0,
+ 0, 0, 0, 0, 203, 402, 403, 404, 405, 406,
+ 407, 408, 409, 410, 411, 412, 413, 0, 0, 0,
+ 0, 414, 415, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 417, 0, 0, 0, 0, 864,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 416, 0,
- 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
- 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
- 410, 411, 0, 0, 249, 0, 412, 413, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 415,
+ 0, 0, 0, 0, 0, 418, 0, 419, 420, 421,
+ 422, 423, 424, 425, 426, 427, 428, 402, 403, 404,
+ 405, 406, 407, 408, 409, 410, 411, 412, 413, 0,
+ 0, 0, 0, 414, 415, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 417, 0, 0, 0,
+ 0, 876, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 418, 0, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 402,
+ 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
+ 413, 0, 0, 0, 0, 414, 415, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 417, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 418,
+ 0, 419, 420, 421, 422, 423, 424, 425, 426, 427,
+ 428, 402, 403, 404, 405, 406, 407, 408, 409, 410,
+ 411, 412, 413, 0, 0, 0, 0, 414, 415, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 416, 0, 417, 418, 419, 420, 421, 422, 423, 424,
- 425, 426, 0, 0, 0, 0, 0, 0, 0, 0,
- -273, 400, 401, 402, 403, 404, 405, 406, 407, 408,
- 409, 410, 411, 0, 0, 0, 0, 412, 413, 0,
+ 417, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 418, 0, 419, 420, 421, 422, 423, 424, 425,
+ 426, 427, 428, 402, 403, 404, 405, 406, 407, 408,
+ 409, 410, 411, 412, 413, 0, 0, 251, 0, 414,
415, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 417, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 416, 0, 417, 418, 419, 420, 421, 422, 423,
- 424, 425, 426, 0, 0, 0, 0, 0, 0, 0,
- 0, -274, 400, 401, 402, 403, 404, 405, 406, 407,
- 408, 409, 410, 411, 0, 0, 0, 0, 412, 413,
+ 0, 0, 0, 418, 0, 419, 420, 421, 422, 423,
+ 424, 425, 426, 427, 428, 0, 0, 0, 0, 0,
+ 0, 0, 0, -277, 402, 403, 404, 405, 406, 407,
+ 408, 409, 410, 411, 412, 413, 0, 0, 0, 0,
+ 414, 415, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 417, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 415, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 418, 0, 419, 420, 421, 422,
+ 423, 424, 425, 426, 427, 428, 0, 0, 0, 0,
+ 0, 0, 0, 0, -278, 402, 403, 404, 405, 406,
+ 407, 408, 409, 410, 411, 412, 413, 0, 0, 0,
+ 0, 414, 415, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 417, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 416, 0, 417, 418, 419, 420, 421, 422,
- 423, 424, 425, 426, 0, 0, 0, 0, 0, 0,
- 0, 0, -275, 400, 401, 402, 403, 404, 405, 406,
- 407, 408, 409, 410, 411, 0, 0, 0, 0, 412,
- 413, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 415, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 418, 0, 419, 420, 421,
+ 422, 423, 424, 425, 426, 427, 428, 0, 0, 0,
+ 0, 0, 0, 0, 0, -279, 402, 403, 404, 405,
+ 406, 407, 408, 409, 410, 411, 412, 413, 0, 0,
+ 0, 0, 414, 415, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 417, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 416, 0, 417, 418, 419, 420, 421,
- 422, 423, 424, 425, 426, 0, 0, 0, 0, 0,
- 0, 0, 0, -276, 400, 401, 402, 403, 404, 405,
- 406, 407, 408, 409, 410, 411, 0, 0, 0, 0,
- 412, 413, 0, 0, 0, 414, 0, 0, 0, 0,
- 0, 0, 0, 415, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 418, 0, 419, 420,
+ 421, 422, 423, 424, 425, 426, 427, 428, 0, 0,
+ 0, 0, 0, 0, 0, 0, -280, 402, 403, 404,
+ 405, 406, 407, 408, 409, 410, 411, 412, 413, 0,
+ 0, 0, 0, 414, 415, 0, 0, 0, 416, 0,
+ 0, 0, 0, 0, 0, 0, 417, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 416, 0, 417, 418, 419, 420,
- 421, 422, 423, 424, 425, 426, 400, 401, 402, 403,
- 404, 405, 406, 407, 408, 409, 410, 411, 0, 0,
- 0, 0, 412, 413, 0, 0, 0, 495, 0, 0,
- 0, 0, 0, 0, 0, 415, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 418, 0, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 402,
+ 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
+ 413, 0, 0, 0, 0, 414, 415, 0, 0, 0,
+ 499, 0, 0, 0, 0, 0, 0, 0, 417, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 416, 0, 417, 418,
- 419, 420, 421, 422, 423, 424, 425, 426, 400, 401,
- 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
- 0, 0, 0, 0, 412, 413, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 415, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 418,
+ 0, 419, 420, 421, 422, 423, 424, 425, 426, 427,
+ 428, 402, 403, 404, 405, 406, 407, 408, 409, 410,
+ 411, 412, 413, 0, 0, 0, 0, 414, 415, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 416, 0,
- 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
- 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
- -608, -608, 0, 0, 0, 0, 412, 413, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 415,
+ 417, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 418, 0, 419, 420, 421, 422, 423, 424, 425,
+ 426, 427, 428, 402, 403, 404, 405, 406, 407, 408,
+ 409, 410, 411, -612, -612, 0, 0, 0, 0, 414,
+ 415, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 417, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 417, 418, 419, 420, 421, 422, 423, 424,
- 425, 426
+ 0, 0, 0, 0, 0, 419, 420, 421, 422, 423,
+ 424, 425, 426, 427, 428
};
static const yytype_int16 yycheck[] =
{
- 2, 16, 17, 89, 220, 20, 27, 69, 475, 27,
- 2, 56, 4, 5, 6, 484, 82, 9, 10, 21,
- 66, 13, 7, 15, 16, 17, 429, 7, 20, 14,
- 14, 118, 4, 52, 87, 88, 269, 772, 312, 54,
- 55, 305, 28, 28, 28, 309, 16, 17, 22, 15,
- 20, 454, 54, 55, 74, 75, 329, 375, 584, 399,
- 52, 16, 17, 748, 56, 20, 469, 587, 540, 5,
- 6, 317, 74, 58, 66, 478, 91, 13, 58, 584,
- 502, 60, 61, 62, 63, 490, 21, 22, 16, 17,
- 82, 25, 20, 10, 659, 660, 16, 26, 15, 54,
- 55, 121, 122, 69, 772, 5, 6, 954, 26, 111,
- 532, 294, 57, 13, 90, 370, 931, 79, 29, 682,
- 56, 367, 2, 25, 4, 117, 90, 119, 691, 51,
- 602, 105, 25, 27, 5, 6, 391, 0, 92, 542,
- 25, 105, 13, 92, 92, 584, 82, 25, 587, 75,
- 103, 25, 330, 25, 142, 333, 56, 335, 28, 337,
- 148, 339, 427, 216, 126, 25, 431, 121, 92, 434,
- 105, 147, 121, 121, 227, 128, 111, 112, 123, 101,
- 102, 103, 82, 147, 1031, 56, 791, 138, 142, 384,
- 455, 386, 797, 90, 129, 115, 122, 121, 118, 119,
- 498, 456, 113, 468, 502, 470, 128, 1022, 142, 138,
- 144, 82, 57, 396, 479, 144, 951, 490, 210, 954,
- 138, 115, 142, 55, 118, 119, 146, 753, 148, 221,
- 222, 439, 440, 121, 296, 288, 90, 802, 9, 10,
- 142, 144, 304, 305, 15, 148, 312, 309, 753, 142,
- 147, 936, 146, 518, 148, 240, 90, 142, 273, 144,
- 240, 314, 277, 142, 142, 267, 540, 269, 142, 90,
- 142, 273, 90, 121, 507, 294, 121, 550, 543, 92,
- 948, 273, 142, 951, 250, 277, 954, 90, 956, 281,
- 282, 121, 92, 147, 286, 92, 1031, 317, 544, 125,
- 722, 293, 294, 273, 221, 222, 711, 277, 780, 301,
- 92, 92, 142, 147, 753, 90, 37, 38, 90, 52,
- 312, 121, 277, 90, 121, 144, 147, 853, 602, 147,
- 296, 58, 59, 772, 51, 861, 1004, 857, 55, 121,
- 121, 681, 142, 322, 147, 142, 117, 367, 394, 277,
- 92, 144, 397, 399, 346, 347, 348, 349, 350, 351,
- 352, 353, 829, 1031, 927, 1033, 453, 1035, 399, 1037,
- 548, 373, 147, 375, 346, 147, 312, 396, 370, 121,
- 147, 60, 785, 18, 63, 20, 119, 92, 92, 1057,
- 92, 16, 17, 439, 440, 20, 55, 92, 121, 391,
- 142, 92, 394, 55, 396, 397, 25, 399, 439, 440,
- 58, 59, 312, 293, 429, 670, 121, 121, 857, 121,
- 142, 301, 20, 721, 722, 951, 121, 429, 107, 54,
- 347, 348, 349, 350, 142, 708, 57, 429, 711, 454,
- 758, 312, 17, 18, 868, 869, 431, 439, 440, 434,
- 221, 222, 454, 115, 469, 138, 118, 119, 927, 429,
- 462, 397, 454, 478, 456, 457, 346, 469, 732, 101,
- 455, 351, 538, 465, 540, 496, 478, 469, 496, 74,
- 75, 473, 715, 498, 454, 470, 478, 502, 145, 115,
- 706, 483, 118, 119, 479, 793, 431, 397, 1024, 469,
- 141, 121, 367, 139, 506, 507, 780, 929, 478, 1035,
- 281, 282, 951, 515, 529, 954, 55, 532, 773, 784,
- 455, 786, 148, 515, 544, 142, 397, 542, 514, 514,
- 514, 101, 524, 518, 61, 470, 602, 64, 65, 505,
- 542, 92, 101, 498, 479, 800, 538, 267, 540, 269,
- 542, 142, 121, 286, 872, 873, 92, 549, 543, 612,
- 61, 294, 835, 64, 65, 121, 101, 762, 763, 764,
- 121, 766, 542, 768, 529, 51, 347, 348, 349, 350,
- 788, 352, 353, 518, 304, 121, 794, 795, 142, 116,
- 117, 846, 1031, 595, 129, 130, 131, 132, 133, 92,
- 655, 92, 538, 658, 540, 90, 839, 51, 543, 630,
- 602, 2, 630, 4, 1017, 116, 117, 142, 9, 10,
- 105, 676, 142, 142, 15, 16, 17, 51, 121, 20,
- 121, 929, 121, 115, 142, 515, 118, 119, 538, 51,
- 540, 99, 15, 13, 524, 16, 63, 649, 273, 142,
- 577, 142, 277, 655, 909, 140, 658, 659, 660, 144,
- 15, 52, 147, 396, 298, 145, 602, 538, 302, 540,
- 732, 145, 646, 139, 676, 66, 15, 669, 670, 681,
- 682, 655, 684, 142, 658, 1003, 457, 142, 15, 691,
- 898, 142, 44, 121, 679, 141, 16, 913, 141, 679,
- 15, 18, 602, 919, 141, 570, 721, 722, 141, 701,
- 139, 646, 798, 715, 780, 26, 702, 702, 702, 740,
- 655, 15, 587, 658, 139, 590, 117, 141, 119, 148,
- 139, 602, 465, 57, 142, 142, 782, 142, 142, 674,
- 473, 676, 788, 789, 939, 940, 941, 942, 794, 795,
- 483, 782, 669, 1018, 142, 15, 758, 788, 93, 14,
- 145, 90, 16, 794, 795, 15, 721, 90, 15, 394,
- 785, 146, 15, 142, 399, 101, 105, 142, 793, 90,
- 142, 773, 105, 785, 701, 142, 506, 507, 780, 781,
- 782, 142, 141, 785, 105, 115, 788, 789, 118, 119,
- 802, 786, 794, 795, 15, 131, 132, 133, 800, 801,
- 812, 140, 15, 815, 213, 785, 549, 140, 147, 210,
- 16, 220, 814, 139, 147, 817, 146, 138, 148, 140,
- 221, 222, 1027, 144, 826, 827, 147, 839, 793, 577,
- 15, 15, 834, 581, 780, 772, 142, 868, 869, 139,
- 126, 786, 898, 126, 846, 847, 55, 139, 257, 15,
- 55, 115, 487, 142, 118, 119, 15, 898, 142, 503,
- 872, 873, 62, 142, 64, 65, 510, 142, 870, 599,
- 780, 142, 273, 875, 142, 144, 277, 521, 144, 141,
- 281, 282, 146, 142, 148, 286, 90, 515, 669, 13,
- 817, 781, 293, 294, 6, 1020, 898, 772, 772, 780,
- 301, 105, 1022, 799, 929, 1019, 908, 909, 971, 115,
- 912, 252, 118, 119, 916, 927, 116, 117, 7, 649,
- 701, 577, 948, 90, 870, 268, -1, 571, 572, 875,
- 951, -1, 62, 26, 64, 65, 140, 346, 105, -1,
- 146, -1, 148, 147, -1, 346, 347, 348, 349, 350,
- 351, 352, 353, 984, -1, -1, 984, 601, 877, 878,
- 870, -1, -1, 90, -1, 875, 912, -1, 377, 370,
- -1, -1, 974, 140, 976, -1, 706, 979, 105, -1,
- 147, -1, 857, -1, 859, 715, 116, 117, 863, 870,
- 391, 1003, 1017, 394, 875, 396, 115, 90, 399, 118,
- 119, -1, 912, -1, -1, 1017, -1, 1019, 1020, -1,
- -1, 948, 105, 140, 951, 1017, -1, 954, -1, 956,
- 147, -1, -1, 1018, 772, -1, 145, 146, 429, 148,
- -1, 912, 951, -1, 678, -1, 817, 1017, 439, 440,
- -1, -1, -1, 37, 38, 138, 681, 140, -1, 26,
- -1, 144, -1, 454, 147, 456, 457, -1, 801, 934,
- 935, -1, -1, -1, 465, 474, 475, 1004, 469, -1,
- -1, 814, 473, 1018, 26, -1, -1, 478, -1, 954,
- -1, 956, 483, 826, 827, -1, -1, 731, 1007, 1008,
- 1009, 834, 1011, 1012, 1031, -1, 1033, -1, 1035, -1,
- 1037, -1, -1, -1, 847, 749, -1, -1, 26, 839,
- -1, 26, -1, 90, 515, 524, 991, -1, -1, 994,
- 1057, 115, 531, 524, 118, 119, 115, -1, 105, 118,
- 119, -1, 1051, 1052, 1053, 1054, 439, 440, 90, 9,
- 10, 542, 1061, -1, -1, 15, 16, 17, 549, -1,
- 20, 1026, 146, 105, 148, -1, 1031, 146, 1033, 148,
- -1, 138, 1037, 140, -1, 908, -1, 144, 471, 472,
- 147, -1, 90, 916, -1, 90, -1, 47, 48, 49,
- 50, -1, 1057, -1, 54, 55, 138, 105, 140, 90,
- 105, -1, 144, -1, 838, 147, 66, 67, 90, -1,
- 948, -1, -1, 951, 105, -1, 954, -1, 956, -1,
- 854, -1, -1, 105, -1, -1, 519, -1, -1, -1,
- 138, -1, 140, 138, -1, 140, 144, -1, -1, 147,
- -1, 974, 147, 976, -1, -1, 979, -1, 90, 140,
- -1, 51, 52, -1, -1, 55, 147, 117, 140, 63,
- 64, 65, -1, 105, -1, 147, 1004, -1, -1, 668,
- 70, 71, 72, 73, 74, 75, 76, 77, 669, 670,
- 80, 81, -1, -1, -1, -1, 86, 87, 88, 89,
- -1, -1, -1, 1031, -1, 1033, -1, 1035, 140, 1037,
- 100, 101, 102, 90, -1, 147, 90, 706, 90, -1,
- 701, -1, 116, 117, -1, -1, -1, -1, 105, 1057,
- -1, 105, -1, 105, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, -1, 135, 136, 51, -1, 53,
- 54, 55, 56, 143, 144, -1, 51, -1, 53, 54,
- 55, 56, -1, 140, -1, 69, 140, 90, 140, -1,
- 147, 221, 222, 147, 69, 147, 2, -1, 4, 5,
- 6, 51, 105, 53, 54, 55, 56, 13, -1, -1,
- -1, -1, 773, 40, 41, 42, 43, 44, -1, 69,
- 781, 782, -1, -1, 785, -1, -1, 788, 789, 259,
- 260, 261, 262, 794, 795, 804, -1, 140, -1, 800,
- 801, -1, 90, 273, 147, -1, 52, 277, -1, -1,
- 56, 281, 282, 814, -1, 90, 817, 105, 142, 51,
- 829, 53, 54, 55, 56, 826, 827, 142, -1, -1,
- 105, -1, -1, 834, -1, -1, 82, 69, -1, -1,
- 63, 64, 65, -1, -1, 846, 847, -1, -1, 63,
- 64, 65, 140, 85, -1, -1, -1, 115, -1, 147,
- 118, 119, 94, -1, -1, 140, -1, -1, 100, 101,
- 102, 103, 147, 119, 63, 64, 65, 347, 348, 349,
- 350, -1, 352, 353, 142, 788, 789, -1, 146, -1,
- 148, 794, 795, 116, 117, -1, 128, 898, -1, 131,
- -1, 371, 116, 117, 913, -1, -1, 908, 909, -1,
- 919, -1, 382, -1, -1, 916, -1, 820, 821, -1,
- 823, 824, -1, -1, 394, -1, -1, 116, 117, 399,
- 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
- 410, 411, 412, 413, -1, 415, 416, 417, 418, 419,
- 420, 421, 422, 423, 424, 425, 426, -1, -1, 429,
- 63, 64, 65, -1, 210, -1, 63, 64, 65, 439,
- 440, -1, -1, 974, -1, 976, -1, -1, 979, -1,
- -1, 63, 64, 65, 454, -1, 51, 457, 53, 54,
- 55, 56, 63, 64, 65, 898, -1, 467, -1, 469,
- -1, 471, 472, -1, 69, -1, -1, -1, 478, 88,
- 89, -1, -1, 116, 117, -1, 1017, 487, 921, 116,
- 117, 491, 101, -1, -1, 495, -1, -1, 498, 94,
- 500, -1, 502, 503, 116, 117, 101, 102, 103, -1,
- 286, -1, -1, -1, -1, 116, 117, 293, 294, 519,
- 129, 130, 131, 132, 133, 301, -1, -1, -1, 529,
- -1, -1, 532, 128, -1, -1, 312, -1, -1, -1,
- -1, -1, 542, -1, -1, -1, -1, -1, 51, -1,
- 53, 54, 55, 56, -1, -1, -1, -1, 558, 559,
- 2, -1, 4, 5, 6, 7, 69, -1, -1, -1,
- 346, 13, -1, -1, 574, 351, -1, -1, -1, -1,
- -1, -1, -1, 51, -1, 53, 54, 55, 56, -1,
- -1, 94, -1, 593, 370, -1, 596, 100, 101, 102,
- 103, 69, -1, -1, -1, -1, -1, -1, -1, -1,
- 52, -1, -1, -1, 56, 391, -1, -1, 121, -1,
- 396, 397, -1, 399, -1, 128, 94, -1, 131, -1,
- -1, -1, 100, 51, -1, 53, 54, 55, 56, -1,
- 82, 144, -1, 51, -1, 53, 54, 55, 56, -1,
- -1, 69, -1, 51, -1, 53, 54, 55, 56, -1,
- -1, 69, -1, 439, 440, -1, -1, -1, -1, 669,
- -1, 69, -1, -1, -1, -1, 94, 119, -1, -1,
- 456, 681, 100, 101, 102, 103, 94, -1, -1, 465,
- -1, -1, 100, 101, 102, 103, 94, 473, -1, -1,
- -1, 701, 100, 101, 102, 103, -1, 483, -1, -1,
- 128, -1, 712, 131, 51, -1, 53, 54, 55, 56,
- 128, 721, 722, 131, -1, -1, 144, -1, -1, -1,
- 128, -1, 69, 131, -1, -1, 144, -1, -1, 515,
- -1, -1, -1, -1, 142, -1, -1, 51, 524, 53,
- 54, 55, 56, -1, -1, -1, 2, 94, 4, -1,
- -1, -1, 538, 100, 540, 69, -1, 13, 210, -1,
- -1, -1, -1, 549, -1, -1, -1, 777, -1, -1,
- -1, -1, 782, 783, -1, 785, -1, -1, 788, 789,
- 94, -1, -1, 793, 794, 795, -1, 51, -1, 53,
- 54, 55, 56, -1, -1, -1, 52, -1, -1, -1,
- -1, -1, -1, -1, -1, 69, -1, 817, -1, -1,
- 820, 821, -1, 823, 824, -1, 602, -1, -1, -1,
- -1, 85, -1, 833, -1, -1, -1, -1, 838, -1,
- 94, -1, -1, -1, 286, -1, 100, 101, 102, 103,
- -1, 293, 294, -1, -1, 855, -1, -1, -1, 301,
- -1, -1, -1, -1, -1, -1, 866, -1, -1, -1,
- 312, 88, 89, 119, 128, -1, -1, 131, -1, -1,
- -1, 881, -1, -1, 101, -1, -1, -1, -1, -1,
- -1, 891, 892, -1, 670, -1, -1, -1, 898, -1,
- -1, -1, 44, -1, 346, -1, -1, -1, -1, 351,
- -1, 128, 129, 130, 131, 132, 133, 2, -1, 4,
- -1, 921, -1, -1, -1, -1, -1, -1, 370, 929,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, -1, -1, -1, -1, 88, 89, -1, 391,
- -1, -1, -1, -1, 396, 397, -1, -1, -1, 101,
- -1, -1, -1, -1, 210, -1, -1, 52, -1, -1,
+ 2, 27, 27, 16, 17, 87, 88, 20, 89, 222,
+ 2, 10, 4, 5, 6, 271, 15, 9, 10, 21,
+ 377, 13, 82, 15, 16, 17, 7, 14, 20, 314,
+ 488, 28, 2, 14, 4, 588, 66, 5, 6, 22,
+ 118, 28, 16, 17, 479, 13, 20, 28, 4, 591,
+ 7, 331, 54, 55, 431, 16, 17, 15, 307, 20,
+ 52, 754, 311, 401, 56, 780, 60, 61, 62, 63,
+ 588, 56, 74, 75, 66, 52, 296, 58, 69, 456,
+ 54, 55, 16, 17, 686, 16, 20, 502, 56, 75,
+ 82, 506, 25, 54, 544, 697, 473, 663, 664, 75,
+ 494, 58, 21, 22, 941, 482, 29, 506, 26, 111,
+ 26, 69, 25, 319, 82, 103, 25, 966, 57, 25,
+ 54, 55, 105, 25, 0, 117, 92, 119, 25, 25,
+ 16, 17, 25, 57, 20, 588, 218, 536, 591, 90,
+ 128, 594, 79, 799, 58, 59, 122, 229, 90, 805,
+ 90, 372, 37, 38, 52, 121, 606, 91, 269, 121,
+ 271, 55, 90, 369, 659, 105, 18, 662, 20, 546,
+ 9, 10, 393, 90, 332, 138, 15, 335, 398, 337,
+ 142, 339, 121, 341, 115, 680, 105, 118, 119, 126,
+ 113, 121, 111, 112, 1043, 306, 147, 1034, 51, 123,
+ 53, 54, 55, 56, 28, 147, 759, 147, 290, 142,
+ 129, 213, 214, 142, 494, 146, 69, 148, 210, 147,
+ 138, 119, 138, 90, 223, 224, 144, 213, 214, 142,
+ 147, 223, 224, 142, 316, 144, 142, 458, 214, 121,
+ 142, 759, 144, 92, 810, 142, 142, 92, 963, 142,
+ 92, 966, 90, 946, 314, 511, 429, 92, 142, 544,
+ 433, 242, 275, 436, 148, 16, 279, 269, 125, 271,
+ 441, 442, 121, 275, 554, 144, 121, 90, 117, 121,
+ 147, 144, 90, 275, 457, 242, 90, 279, 55, 142,
+ 121, 283, 284, 215, 252, 92, 288, 105, 90, 472,
+ 222, 474, 55, 295, 296, 279, 759, 298, 861, 147,
+ 483, 303, 727, 728, 275, 306, 307, 870, 279, 296,
+ 311, 606, 314, 717, 866, 295, 58, 59, 1043, 728,
+ 324, 90, 140, 303, 147, 937, 144, 259, 788, 147,
+ 298, 275, 548, 147, 144, 279, 314, 685, 148, 522,
+ 349, 350, 351, 352, 25, 147, 348, 349, 350, 351,
+ 352, 353, 354, 355, 115, 51, 396, 118, 119, 55,
+ 142, 401, 20, 375, 547, 377, 92, 455, 348, 142,
+ 372, 57, 401, 353, 223, 224, 801, 101, 147, 138,
+ 288, 142, 348, 279, 552, 146, 51, 148, 296, 510,
+ 511, 393, 837, 92, 396, 121, 398, 399, 765, 401,
+ 963, 441, 442, 866, 399, 868, 793, 870, 431, 872,
+ 145, 398, 441, 442, 121, 60, 348, 139, 63, 431,
+ 92, 399, 121, 141, 714, 396, 55, 717, 142, 431,
+ 401, 92, 101, 456, 283, 284, 101, 102, 103, 441,
+ 442, 101, 433, 674, 456, 436, 101, 379, 121, 121,
+ 473, 121, 464, 142, 456, 721, 458, 459, 51, 482,
+ 121, 473, 107, 128, 500, 500, 457, 469, 92, 937,
+ 482, 473, 542, 1036, 544, 477, 131, 132, 133, 738,
+ 482, 142, 603, 474, 1047, 487, 142, 431, 588, 712,
+ 398, 591, 483, 788, 17, 18, 92, 121, 510, 511,
+ 349, 350, 351, 352, 433, 354, 355, 519, 92, 878,
+ 879, 518, 456, 51, 939, 882, 883, 519, 502, 142,
+ 491, 518, 26, 546, 616, 121, 528, 518, 457, 473,
+ 939, 522, 653, 142, 546, 142, 606, 121, 482, 519,
+ 542, 509, 544, 1006, 546, 474, 478, 479, 528, 533,
+ 781, 553, 51, 843, 483, 578, 547, 90, 502, 16,
+ 121, 469, 506, 90, 542, 386, 544, 388, 92, 477,
+ 121, 122, 105, 142, 597, 51, 578, 808, 105, 487,
+ 99, 847, 15, 92, 13, 121, 90, 599, 16, 533,
+ 121, 712, 536, 522, 63, 597, 528, 121, 634, 634,
+ 721, 105, 546, 535, 606, 15, 145, 140, 145, 792,
+ 459, 794, 121, 140, 147, 796, 142, 2, 547, 4,
+ 147, 802, 803, 854, 9, 10, 92, 139, 606, 142,
+ 15, 16, 17, 142, 138, 20, 140, 15, 44, 369,
+ 144, 653, 1029, 147, 142, 553, 92, 659, 1015, 15,
+ 662, 663, 664, 121, 141, 121, 27, 650, 115, 759,
+ 141, 118, 119, 15, 673, 18, 659, 52, 680, 662,
+ 92, 673, 674, 685, 686, 121, 142, 141, 690, 90,
+ 780, 66, 581, 581, 139, 697, 585, 141, 919, 146,
+ 15, 148, 683, 141, 105, 92, 142, 139, 707, 121,
+ 923, 708, 139, 148, 142, 707, 929, 44, 90, 721,
+ 746, 708, 57, 44, 685, 806, 683, 708, 788, 142,
+ 142, 650, 142, 105, 121, 142, 847, 908, 142, 140,
+ 659, 15, 117, 662, 119, 93, 147, 738, 115, 90,
+ 672, 118, 119, 727, 115, 142, 14, 118, 119, 678,
+ 790, 680, 15, 765, 105, 15, 796, 797, 140, 145,
+ 15, 790, 802, 803, 15, 147, 866, 796, 145, 146,
+ 793, 148, 26, 802, 803, 146, 146, 148, 142, 781,
+ 712, 793, 142, 727, 728, 142, 788, 789, 790, 140,
+ 15, 793, 142, 142, 796, 797, 147, 141, 810, 139,
+ 802, 803, 15, 794, 15, 139, 808, 809, 820, 789,
+ 788, 823, 90, 142, 126, 300, 825, 801, 61, 304,
+ 822, 64, 65, 825, 673, 210, 115, 105, 126, 118,
+ 119, 55, 834, 835, 139, 847, 90, 15, 223, 224,
+ 842, 55, 878, 879, 574, 142, 142, 1030, 142, 793,
+ 142, 105, 854, 855, 142, 142, 115, 801, 707, 118,
+ 119, 591, 140, 963, 594, 794, 966, 144, 908, 147,
+ 882, 883, 16, 116, 117, 15, 141, 144, 880, 908,
+ 812, 780, 780, 885, 138, 142, 140, 146, 519, 148,
+ 275, 983, 13, 147, 279, 441, 442, 6, 283, 284,
+ 1032, 809, 880, 288, 780, 837, 908, 885, 1034, 1031,
+ 295, 296, 37, 38, 822, 254, 918, 919, 303, 115,
+ 922, 7, 118, 119, 926, 937, 834, 835, 581, 475,
+ 476, 90, 807, 780, 842, 51, 960, 53, 54, 55,
+ 56, 963, 90, 1043, 922, -1, 105, 855, 769, 770,
+ 771, 270, 773, 69, 775, -1, -1, 105, -1, -1,
+ 996, 996, -1, 348, 349, 350, 351, 352, 353, 354,
+ 355, 115, -1, -1, 118, 119, 825, 523, 887, 888,
+ -1, 140, -1, -1, 986, 90, 988, 372, 147, 991,
+ 115, 923, 140, 118, 119, 939, -1, 929, -1, 147,
+ 105, -1, 146, 1015, 148, -1, 1029, -1, 393, 90,
+ 918, 396, -1, 398, -1, -1, 401, 1029, 926, 1031,
+ 1032, 146, 507, 148, 105, -1, 142, 1029, -1, 514,
+ -1, -1, 90, -1, -1, 140, 90, 90, -1, 1030,
+ 525, 62, 147, 64, 65, -1, 431, 105, 90, -1,
+ 780, 105, 105, -1, 963, -1, 441, 442, -1, 140,
+ 26, 960, 960, 105, 963, 963, 147, 966, 966, 968,
+ 968, 456, 61, 458, 459, 64, 65, -1, 986, -1,
+ 988, -1, 140, 991, 469, 1029, 140, 140, 473, 147,
+ 575, 576, 477, 147, 147, 116, 117, 482, 140, -1,
+ -1, 1030, 487, -1, 62, 147, 64, 65, -1, -1,
+ 1019, 1020, 1021, 960, 1023, 1024, 963, 1016, 1016, 966,
+ 605, 968, -1, -1, 90, 26, -1, 116, 117, 950,
+ 951, 952, 953, -1, 519, -1, 866, -1, 868, 105,
+ -1, -1, 872, 528, 1043, 1043, 1045, 1045, 1047, 1047,
+ 1049, 1049, -1, -1, 1063, 1064, 1065, 1066, 116, 117,
+ -1, 546, 115, -1, 1073, 118, 119, -1, 553, 1016,
+ 1069, 1069, 138, -1, 140, -1, -1, -1, 144, -1,
+ -1, 147, -1, 26, 26, -1, -1, -1, -1, 90,
+ -1, -1, -1, 578, -1, 148, 1043, 682, 1045, -1,
+ 1047, -1, 1049, -1, 105, -1, 51, -1, 53, 54,
+ 55, 56, 597, -1, 944, 945, -1, -1, 1039, -1,
+ 9, 10, 1069, -1, 69, -1, 15, 16, 17, -1,
+ -1, 20, -1, -1, -1, -1, 966, 138, 968, 140,
+ 63, 64, 65, 144, -1, -1, 147, 90, 90, 94,
+ 796, 797, 737, -1, -1, 100, 802, 803, 47, 48,
+ 49, 50, 105, 105, -1, 54, 55, 63, 64, 65,
+ 755, -1, -1, 1003, -1, -1, 1006, 66, 67, -1,
+ -1, -1, 828, 829, -1, 831, 832, -1, 673, 674,
+ 63, 64, 65, 116, 117, 138, 138, 140, 140, -1,
+ -1, 144, 144, -1, 147, 147, -1, 51, 1038, 53,
+ 54, 55, 56, 1043, -1, 1045, -1, -1, -1, 1049,
+ 116, 117, 707, 101, -1, 69, -1, -1, 117, 51,
+ -1, 53, 54, 55, 56, 63, 64, 65, -1, 1069,
+ 63, 64, 65, 116, 117, -1, -1, 69, -1, -1,
+ 94, 129, 130, 131, 132, 133, 100, 101, 102, 103,
+ -1, 846, 908, -1, -1, 2, -1, 4, 5, 6,
+ -1, -1, 94, 63, 64, 65, 13, 862, 100, 101,
+ 102, 103, -1, -1, 128, 931, -1, 131, 116, 117,
+ 63, 64, 65, 116, 117, -1, 781, -1, -1, 121,
+ 144, 63, 64, 65, 789, 790, 128, -1, 793, 131,
+ -1, 796, 797, -1, -1, 52, -1, 802, 803, 56,
+ -1, -1, 144, 808, 809, -1, 116, 117, 51, -1,
+ 53, 54, 55, 56, 223, 224, -1, 822, -1, -1,
+ 825, -1, -1, 116, 117, 82, 69, -1, -1, 834,
+ 835, -1, -1, -1, 116, 117, 115, 842, -1, 118,
+ 119, -1, -1, 51, -1, 53, 54, 55, 56, 854,
+ 855, 94, 261, 262, 263, 264, -1, 100, 101, 102,
+ 103, 69, 119, 142, -1, -1, 275, 146, -1, 148,
+ 279, -1, -1, -1, 283, 284, -1, -1, -1, 51,
+ -1, 53, 54, 55, 56, 128, 94, -1, 131, -1,
+ -1, -1, 100, 101, 102, 103, -1, 69, -1, -1,
+ -1, 144, -1, 908, -1, -1, 51, -1, 53, 54,
+ 55, 56, -1, 918, 919, 40, 41, 42, 43, 44,
+ 128, 926, 94, 131, 69, 88, 89, -1, 100, 101,
+ 102, 103, -1, -1, 142, 88, 89, -1, 101, -1,
+ 349, 350, 351, 352, -1, 354, 355, -1, 101, 94,
+ -1, -1, -1, 210, -1, 100, 128, -1, -1, 131,
+ -1, -1, -1, -1, 373, 128, 129, 130, 131, 132,
+ 133, -1, -1, -1, -1, 384, 129, 130, 131, 132,
+ 133, 986, -1, 988, -1, -1, 991, 396, -1, -1,
+ -1, -1, 401, 402, 403, 404, 405, 406, 407, 408,
+ 409, 410, 411, 412, 413, 414, 415, -1, 417, 418,
+ 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
+ -1, -1, 431, -1, 1029, 51, -1, 53, 54, 55,
+ 56, 288, 441, 442, -1, -1, -1, -1, 295, 296,
+ -1, -1, -1, 69, -1, -1, 303, 456, -1, -1,
+ 459, 51, -1, 53, 54, 55, 56, 314, -1, 85,
+ -1, -1, 471, -1, 473, -1, 475, 476, 94, 69,
+ -1, -1, -1, 482, 100, 101, 102, 103, -1, -1,
+ -1, -1, 491, -1, -1, -1, 495, -1, -1, -1,
+ 499, 348, -1, 502, 94, 504, 353, 506, 507, -1,
+ -1, -1, 128, -1, 51, 131, 53, 54, 55, 56,
+ -1, -1, -1, -1, 523, 372, -1, 2, -1, 4,
+ 5, 6, 69, -1, 533, -1, -1, 536, 13, 51,
+ -1, 53, 54, 55, 56, -1, 393, 546, -1, -1,
+ -1, 398, 399, -1, 401, -1, -1, 69, -1, -1,
+ -1, -1, -1, 562, 563, -1, -1, -1, -1, -1,
+ -1, -1, -1, 85, -1, -1, -1, 52, -1, 578,
+ -1, 56, 94, -1, -1, -1, -1, -1, 100, 101,
+ 102, 103, -1, -1, 441, 442, -1, -1, 597, -1,
+ 51, 600, 53, 54, 55, 56, -1, 82, -1, -1,
+ -1, 458, -1, -1, -1, -1, 128, -1, 69, 131,
+ 88, 89, 469, -1, -1, -1, -1, -1, -1, -1,
+ 477, -1, -1, 101, -1, -1, -1, -1, -1, -1,
+ 487, -1, -1, 94, 119, -1, -1, -1, -1, -1,
+ 101, 102, 103, -1, -1, -1, -1, -1, 126, 127,
+ 128, 129, 130, 131, 132, 133, -1, -1, -1, -1,
+ -1, -1, 519, -1, 673, -1, -1, 128, -1, -1,
+ -1, 528, -1, -1, -1, -1, 685, -1, -1, 688,
+ 689, -1, -1, -1, -1, 542, -1, 544, -1, -1,
+ -1, -1, -1, -1, -1, -1, 553, -1, 707, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 718,
+ -1, -1, -1, -1, -1, -1, -1, -1, 727, 728,
+ -1, -1, -1, -1, -1, 210, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 122, -1, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, -1, -1, -1, -1, -1, 773, -1, -1,
- 142, -1, -1, -1, 780, 781, 782, -1, -1, -1,
- -1, -1, 788, -1, 456, -1, -1, 1017, 794, 795,
- -1, -1, -1, 465, 800, 801, -1, -1, -1, -1,
- -1, 473, -1, -1, 119, -1, -1, -1, 814, -1,
- 286, 483, -1, -1, -1, -1, -1, 293, 294, -1,
- 826, 827, -1, -1, -1, 301, -1, -1, 834, -1,
- -1, 51, -1, 53, 54, 55, 56, -1, -1, -1,
- 846, 847, -1, 515, -1, -1, 88, 89, -1, 69,
- -1, -1, 524, -1, -1, -1, -1, -1, -1, 101,
- -1, -1, -1, -1, 870, -1, 538, -1, 540, 875,
- 346, -1, -1, -1, 94, 351, -1, 549, -1, -1,
- 100, 101, 102, 103, 126, 127, 128, 129, 130, 131,
- 132, 133, 898, -1, 370, 210, 72, 73, 74, 75,
- 76, 77, 908, 909, 80, 81, 912, -1, 128, -1,
- 916, 131, 88, 89, -1, 391, -1, -1, -1, -1,
- 396, -1, -1, 399, -1, 101, -1, -1, -1, -1,
- 602, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, -1, -1,
- -1, -1, -1, 439, 440, -1, -1, -1, 974, -1,
- 976, 286, -1, 979, -1, -1, -1, -1, 293, 294,
- 456, -1, -1, -1, -1, -1, 301, -1, -1, 465,
- -1, -1, -1, -1, -1, -1, -1, 473, 670, -1,
- 0, -1, -1, -1, -1, -1, -1, 483, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 606,
+ -1, -1, -1, -1, -1, 2, -1, 4, 5, 6,
+ -1, -1, -1, -1, -1, -1, 13, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 785, -1, -1, -1,
+ -1, 790, 791, -1, 793, -1, -1, 796, 797, -1,
+ -1, -1, 801, 802, 803, -1, -1, -1, -1, -1,
+ -1, -1, -1, 288, -1, 52, -1, -1, -1, 56,
+ 295, 296, -1, -1, -1, -1, 825, 674, 303, 828,
+ 829, -1, 831, 832, -1, -1, -1, -1, -1, 314,
+ -1, -1, 841, -1, -1, 82, -1, 846, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 863, 864, -1, -1, -1, -1,
+ -1, -1, -1, 348, -1, -1, 875, 876, 353, -1,
+ -1, -1, 119, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 891, -1, -1, -1, -1, 372, -1, -1,
+ -1, -1, 901, 902, -1, -1, -1, -1, -1, 908,
+ -1, -1, -1, -1, -1, -1, -1, -1, 393, -1,
+ -1, -1, -1, 398, 399, -1, 401, -1, -1, -1,
+ -1, -1, 931, -1, 781, -1, -1, -1, -1, -1,
+ 939, 788, 789, 790, -1, -1, -1, -1, -1, 796,
+ -1, -1, -1, -1, -1, 802, 803, -1, -1, -1,
+ -1, 808, 809, -1, -1, -1, 441, 442, -1, -1,
+ -1, -1, -1, 210, -1, 822, -1, -1, -1, -1,
+ -1, -1, -1, 458, -1, -1, -1, 834, 835, -1,
+ -1, -1, -1, -1, 469, 842, -1, -1, -1, -1,
+ -1, -1, 477, -1, -1, -1, -1, 854, 855, -1,
+ -1, -1, 487, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 1029, -1, -1, 880, -1, -1, -1, -1, 885, -1,
+ -1, -1, -1, 2, 519, 4, -1, -1, -1, -1,
+ -1, 288, -1, 528, 13, -1, -1, -1, 295, 296,
+ -1, 908, -1, -1, -1, -1, 303, 542, -1, 544,
+ -1, 918, 919, -1, -1, 922, -1, 314, 553, 926,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 52, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 0, 348, -1, -1, -1, -1, 353, -1, -1, -1,
-1, -1, -1, 13, 14, 15, 16, 17, 18, -1,
- 20, -1, -1, -1, -1, -1, 26, 27, -1, -1,
- -1, 346, -1, -1, -1, -1, 351, 37, 38, 515,
- 40, 41, 42, 43, 44, -1, -1, -1, 524, -1,
- -1, -1, -1, -1, -1, 370, -1, -1, -1, -1,
+ 20, 606, -1, -1, -1, 372, 26, 27, -1, 986,
+ -1, 988, -1, -1, 991, -1, -1, 37, 38, -1,
+ 40, 41, 42, 43, 44, -1, 393, -1, -1, -1,
+ 119, 398, 399, -1, 401, -1, 2, -1, 4, 5,
+ 6, 7, -1, -1, -1, -1, -1, 13, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 549, -1, -1, 391, -1, -1, -1,
- -1, 396, -1, -1, 399, -1, -1, -1, -1, -1,
- 90, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 773, -1, -1, -1, 105, -1, -1, 780, 781,
- -1, -1, -1, -1, -1, 115, -1, -1, 118, 119,
- -1, -1, -1, -1, 439, 440, -1, -1, 800, 801,
- -1, -1, -1, -1, -1, -1, -1, -1, 138, 139,
- -1, 456, 814, -1, 144, 145, 146, 147, 148, -1,
- 465, -1, -1, -1, 826, 827, -1, -1, 473, -1,
- -1, -1, 834, -1, -1, -1, -1, -1, 483, -1,
- -1, -1, -1, -1, 846, 847, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 674,
+ 90, -1, -1, -1, 441, 442, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 105, 52, -1, -1, -1,
+ 56, 458, -1, -1, -1, 115, -1, -1, 118, 119,
+ -1, -1, 469, -1, -1, -1, -1, -1, -1, -1,
+ 477, -1, -1, -1, -1, -1, 82, -1, 138, 139,
+ 487, 210, -1, -1, 144, 145, 146, 147, 148, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 51, 52, 670, -1, 55, -1, 870, -1,
- 515, -1, -1, 875, -1, -1, -1, -1, -1, 524,
- -1, 70, 71, 72, 73, 74, 75, 76, 77, -1,
- -1, 80, 81, -1, -1, -1, -1, 86, 87, 88,
- 89, -1, -1, -1, 549, -1, 908, 909, -1, -1,
- 912, 100, 101, 102, 916, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 519, 119, -1, -1, -1, -1, -1, -1,
+ -1, 528, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 542, 781, 544, -1, -1,
+ -1, -1, -1, 788, 789, 790, 553, -1, -1, -1,
+ -1, 796, -1, -1, -1, -1, -1, 802, 803, 288,
+ -1, -1, -1, 808, 809, -1, 295, 296, -1, -1,
+ -1, -1, -1, -1, 303, -1, -1, 822, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 834,
+ 835, -1, -1, -1, -1, -1, -1, 842, -1, 606,
+ -1, -1, -1, -1, 210, -1, -1, -1, -1, 854,
+ 855, -1, -1, -1, -1, -1, -1, -1, -1, 348,
+ -1, -1, -1, -1, 353, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 880, -1, -1, -1, -1,
+ 885, -1, -1, 372, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 2, -1, 4, 908, 393, -1, -1, 674, -1, 398,
+ -1, -1, 401, 918, 919, -1, -1, 922, -1, -1,
+ -1, 926, 288, -1, -1, -1, -1, -1, -1, 295,
+ 296, -1, -1, -1, -1, -1, -1, 303, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 314, -1,
+ 52, -1, 441, 442, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 458,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 469, 986, 348, 988, -1, -1, 991, 353, 477, -1,
+ -1, 72, 73, 74, 75, 76, 77, 78, 487, 80,
+ 81, -1, -1, -1, -1, -1, 372, 88, 89, -1,
+ -1, -1, -1, -1, 781, -1, -1, 119, -1, -1,
+ 101, 788, 789, 790, -1, -1, -1, 393, -1, 796,
+ 519, -1, 398, 399, -1, 802, 803, -1, -1, 528,
+ -1, 808, 809, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, -1, -1, 822, -1, -1, -1, -1,
+ -1, -1, -1, -1, 553, -1, -1, 834, 835, -1,
+ -1, -1, -1, -1, -1, 842, -1, 72, 73, 74,
+ 75, 76, 77, -1, -1, 80, 81, 854, 855, -1,
+ -1, -1, 458, 88, 89, -1, -1, -1, -1, -1,
+ -1, -1, -1, 469, -1, -1, 101, -1, 210, -1,
+ -1, 477, -1, 880, -1, -1, -1, -1, 885, -1,
+ -1, 487, -1, -1, -1, -1, -1, -1, -1, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
+ -1, 908, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 918, 919, 519, -1, 922, -1, -1, -1, 926,
+ -1, -1, 528, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 542, -1, 544, -1,
+ -1, -1, -1, -1, -1, 674, 288, 553, -1, -1,
+ -1, -1, -1, 295, 296, -1, -1, 44, -1, -1,
+ -1, 303, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 986,
+ -1, 988, -1, -1, 991, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
+ 606, 88, 89, -1, -1, -1, 348, -1, -1, -1,
+ -1, 353, -1, -1, 101, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 372, -1, -1, -1, -1, 122, -1, 124, 125, 126,
+ 127, 128, 129, 130, 131, 132, 133, -1, -1, -1,
+ -1, 393, 781, -1, -1, 142, 398, -1, -1, 401,
+ 789, 790, -1, -1, -1, -1, -1, 796, 674, -1,
+ -1, -1, -1, 802, 803, -1, -1, -1, -1, 808,
+ 809, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 822, -1, -1, -1, -1, -1, 441,
+ 442, -1, -1, -1, -1, 834, 835, -1, -1, -1,
+ -1, -1, -1, 842, -1, -1, 458, -1, -1, -1,
+ -1, -1, -1, -1, -1, 854, 855, 469, -1, -1,
+ -1, -1, -1, -1, -1, 477, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 487, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 781, -1, 519, -1, 908,
+ -1, -1, 788, 789, -1, -1, 528, -1, -1, 918,
+ 919, -1, -1, 922, -1, -1, -1, 926, -1, -1,
+ -1, -1, 808, 809, -1, -1, -1, -1, -1, -1,
+ -1, 553, -1, -1, -1, -1, 822, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 834, 835,
+ -1, -1, -1, -1, -1, -1, 842, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 854, 855,
+ -1, -1, -1, -1, -1, -1, -1, 986, -1, 988,
+ -1, -1, 991, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 880, -1, -1, -1, -1, 885,
+ -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 13, 14,
+ 15, -1, 17, 18, -1, 20, -1, -1, -1, -1,
+ -1, 26, 918, 919, -1, -1, 922, -1, -1, -1,
+ 926, -1, 37, 38, -1, 40, 41, 42, 43, 44,
+ -1, -1, 674, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
+ -1, -1, -1, 88, 89, 90, -1, 92, 93, -1,
+ 986, -1, 988, -1, -1, 991, 101, -1, -1, -1,
+ 105, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 115, -1, -1, 118, 119, -1, 121, 122, -1, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
+ -1, -1, -1, 138, 139, 140, -1, 142, -1, -1,
+ 145, 146, 147, 148, -1, -1, -1, -1, -1, 781,
+ -1, -1, -1, -1, -1, -1, -1, 789, 790, -1,
+ -1, -1, 51, 52, 796, -1, 55, -1, -1, -1,
+ 802, 803, -1, -1, -1, -1, 808, 809, -1, -1,
+ -1, 70, 71, 72, 73, 74, 75, 76, 77, -1,
+ 822, 80, 81, -1, -1, -1, -1, 86, 87, 88,
+ 89, -1, 834, 835, -1, -1, -1, -1, -1, -1,
+ 842, 100, 101, 102, -1, -1, -1, -1, -1, -1,
+ -1, -1, 854, 855, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, -1, 135, 136, -1, -1,
- -1, -1, -1, -1, 143, 144, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 773, -1, -1,
- -1, -1, 974, -1, 976, 781, 782, 979, -1, -1,
- 51, 52, 788, -1, 55, -1, -1, -1, 794, 795,
- -1, -1, -1, -1, 800, 801, -1, -1, -1, 70,
- 71, 72, 73, 74, 75, 76, 77, -1, 814, 80,
- 81, -1, -1, -1, -1, 86, 87, 88, 89, -1,
- 826, 827, -1, -1, -1, 670, -1, -1, 834, 100,
- 101, 102, -1, -1, -1, -1, -1, -1, -1, -1,
- 846, 847, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, -1, 135, 136, 72, 73, 74, 75,
- 76, 77, 143, 144, 80, 81, -1, -1, -1, -1,
- -1, -1, 88, 89, -1, -1, -1, -1, -1, -1,
- -1, -1, 898, -1, -1, 101, -1, -1, -1, -1,
- -1, -1, 908, 909, -1, -1, 912, -1, -1, -1,
- 916, -1, -1, -1, -1, -1, -1, -1, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 773, -1,
- -1, -1, -1, -1, -1, -1, 781, 782, -1, -1,
- -1, -1, -1, 788, -1, -1, -1, -1, -1, 794,
- 795, -1, -1, -1, -1, 800, 801, -1, 72, 73,
- 74, 75, 76, 77, 78, -1, 80, 81, 974, 814,
- 976, -1, -1, 979, 88, 89, -1, -1, -1, -1,
- -1, 826, 827, -1, -1, -1, -1, 101, -1, 834,
- -1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
- -1, 846, 847, -1, -1, -1, -1, -1, -1, -1,
+ 129, 130, 131, 132, 133, -1, 135, 136, 72, 73,
+ 74, 75, 76, 77, 143, 144, 80, 81, -1, -1,
+ -1, -1, -1, -1, 88, 89, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 908, 101, -1, -1,
+ -1, -1, -1, -1, -1, -1, 918, 919, -1, -1,
+ -1, -1, -1, -1, 926, -1, -1, -1, -1, -1,
124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, -1, -1, -1, -1, 88, 89, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 101,
- -1, -1, -1, 898, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 908, 909, -1, -1, -1, -1, -1,
- 122, 916, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 0, 1, -1, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, -1, -1, -1, -1, -1, -1,
- 19, -1, 21, 22, 23, 24, -1, -1, -1, -1,
- -1, 30, 31, 32, 33, 34, 35, 36, -1, 974,
- 39, 976, -1, -1, 979, -1, 45, 46, 47, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
- 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
- 69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
- -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
- -1, 100, -1, -1, -1, 104, -1, 106, 107, 108,
- -1, 110, 111, 112, 0, 114, 115, -1, -1, 118,
- 119, -1, -1, -1, -1, -1, -1, 13, 14, 15,
- 16, 17, 18, -1, 20, 134, 135, 136, -1, -1,
- -1, 27, 28, 29, -1, -1, -1, 146, -1, 148,
- -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
+ -1, -1, -1, -1, -1, -1, 0, 1, -1, 3,
+ 4, 5, 6, 7, 8, 9, 10, 11, 12, -1,
+ -1, -1, -1, -1, -1, 19, -1, 21, 22, 23,
+ 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
+ 34, 35, 36, -1, 986, 39, 988, -1, -1, 991,
+ -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 54, 55, 56, -1, 58, 59, 60, -1, -1, 63,
+ -1, -1, 66, 67, -1, 69, 70, 71, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 57, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, -1, -1,
- -1, -1, 88, 89, 90, -1, -1, 93, -1, -1,
- -1, -1, -1, 99, -1, 101, -1, -1, -1, 105,
- -1, -1, -1, -1, -1, -1, -1, 113, -1, 115,
- -1, -1, 118, 119, -1, -1, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, -1, -1,
- 0, -1, -1, 139, 140, 141, 142, -1, -1, 145,
- 146, 147, 148, 13, 14, 15, 16, 17, 18, -1,
- 20, -1, -1, -1, -1, -1, 26, 27, 28, -1,
- -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
- 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
+ 84, 85, -1, -1, -1, -1, -1, 91, -1, -1,
+ 94, 95, -1, 97, 98, -1, 100, -1, -1, -1,
+ 104, -1, 106, 107, 108, -1, 110, 111, 112, 0,
+ 114, 115, -1, -1, 118, 119, -1, -1, -1, -1,
+ -1, -1, 13, 14, 15, 16, 17, 18, -1, 20,
+ 134, 135, 136, -1, -1, -1, 27, 28, 29, -1,
+ -1, -1, 146, -1, 148, -1, 37, 38, -1, 40,
+ 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 57, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, -1, -1, -1, -1, 88, 89, 90,
+ -1, -1, 93, -1, -1, -1, -1, -1, 99, -1,
+ 101, -1, -1, -1, 105, -1, -1, -1, -1, -1,
+ -1, -1, 113, -1, 115, -1, -1, 118, 119, -1,
+ -1, 122, 123, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, -1, -1, 0, -1, -1, 139, 140,
+ 141, 142, -1, -1, 145, 146, 147, 148, 13, 14,
+ 15, 16, 17, 18, -1, 20, -1, -1, -1, -1,
+ -1, 26, 27, 28, -1, -1, -1, -1, -1, -1,
+ -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, -1, -1, -1, -1, 88, 89,
- 90, -1, -1, 93, -1, -1, -1, -1, -1, 99,
- -1, 101, -1, -1, -1, 105, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 115, -1, -1, 118, 119,
- -1, -1, 122, -1, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, -1, -1, 0, -1, 138, 139,
- 140, 141, 142, -1, 144, 145, 146, 147, 148, 13,
- 14, 15, 16, 17, 18, -1, 20, -1, -1, -1,
- -1, -1, -1, 27, 28, -1, -1, -1, -1, -1,
- -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
- 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 57, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- -1, -1, -1, -1, 88, 89, 90, -1, 92, 93,
- -1, -1, -1, -1, -1, 99, -1, 101, -1, -1,
- -1, 105, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 115, -1, -1, 118, 119, -1, 121, 122, -1,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- -1, -1, 0, -1, -1, 139, 140, 141, 142, -1,
- -1, 145, 146, 147, 148, 13, 14, 15, 16, 17,
- 18, -1, 20, -1, -1, -1, -1, -1, 26, 27,
- 28, -1, -1, -1, -1, -1, -1, -1, -1, 37,
- 38, -1, 40, 41, 42, 43, 44, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
+ -1, -1, -1, 88, 89, 90, -1, -1, 93, -1,
+ -1, -1, -1, -1, 99, -1, 101, -1, -1, -1,
+ 105, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 115, -1, -1, 118, 119, -1, -1, 122, -1, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
+ -1, 0, -1, 138, 139, 140, 141, 142, -1, 144,
+ 145, 146, 147, 148, 13, 14, 15, 16, 17, 18,
+ -1, 20, -1, -1, -1, -1, -1, -1, 27, 28,
+ -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
+ -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 57, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, -1, -1, -1, -1,
- 88, 89, 90, -1, -1, 93, -1, -1, -1, -1,
- -1, 99, -1, 101, -1, -1, -1, 105, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 115, -1, -1,
- 118, 119, -1, -1, 122, -1, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, -1, -1, 0, -1,
- 138, 139, 140, 141, 142, -1, 144, 145, 146, 147,
- 148, 13, 14, 15, 16, 17, 18, -1, 20, -1,
- -1, -1, -1, -1, -1, 27, 28, -1, -1, -1,
- -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
- 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, -1, -1, -1, -1, 88,
+ 89, 90, -1, 92, 93, -1, -1, -1, -1, -1,
+ 99, -1, 101, -1, -1, -1, 105, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 115, -1, -1, 118,
+ 119, -1, 121, 122, -1, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, -1, -1, 0, -1, -1,
+ 139, 140, 141, 142, -1, -1, 145, 146, 147, 148,
+ 13, 14, 15, 16, 17, 18, -1, 20, -1, -1,
+ -1, -1, -1, 26, 27, 28, -1, -1, -1, -1,
+ -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
+ 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, -1, -1, -1, -1, 88, 89, 90, -1, -1,
+ 93, -1, -1, -1, -1, -1, 99, -1, 101, -1,
+ -1, -1, 105, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 115, -1, -1, 118, 119, -1, -1, 122,
+ -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, -1, -1, 0, -1, 138, 139, 140, 141, 142,
+ -1, 144, 145, 146, 147, 148, 13, 14, 15, 16,
+ 17, 18, -1, 20, -1, -1, -1, -1, -1, -1,
+ 27, 28, -1, -1, -1, -1, -1, -1, -1, -1,
+ 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, -1, -1, -1, -1, 88, 89, 90, -1,
- -1, 93, -1, -1, -1, -1, -1, 99, -1, 101,
- -1, -1, -1, 105, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 115, -1, -1, 118, 119, -1, -1,
- 122, -1, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, -1, -1, 0, -1, -1, 139, 140, 141,
- 142, -1, 144, 145, 146, 147, 148, 13, 14, 15,
- -1, 17, 18, -1, 20, -1, -1, -1, -1, -1,
- 26, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
+ -1, 88, 89, 90, -1, -1, 93, -1, -1, -1,
+ -1, -1, 99, -1, 101, -1, -1, -1, 105, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 115, -1,
+ -1, 118, 119, -1, -1, 122, -1, 124, 125, 126,
+ 127, 128, 129, 130, 131, 132, 133, -1, -1, 0,
+ -1, -1, 139, 140, 141, 142, -1, 144, 145, 146,
+ 147, 148, 13, 14, 15, -1, 17, 18, -1, 20,
+ -1, -1, -1, -1, -1, 26, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
+ 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, -1, -1,
- -1, -1, 88, 89, 90, -1, 92, 93, -1, -1,
- -1, -1, -1, -1, -1, 101, -1, -1, -1, 105,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 115,
- -1, -1, 118, 119, -1, 121, 122, -1, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, -1, -1,
- 0, -1, 138, 139, 140, -1, 142, -1, -1, 145,
- 146, 147, 148, 13, 14, 15, -1, 17, 18, -1,
- 20, -1, -1, -1, -1, -1, 26, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
- 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, -1, -1, -1, -1, 88, 89, 90,
+ -1, 92, 93, -1, -1, -1, -1, -1, -1, -1,
+ 101, -1, -1, -1, 105, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 115, -1, -1, 118, 119, -1,
+ 121, 122, -1, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, -1, -1, 0, -1, 138, 139, 140,
+ -1, 142, -1, -1, 145, 146, 147, 148, 13, 14,
+ 15, -1, 17, 18, -1, 20, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, -1, -1, -1, -1, 88, 89,
- 90, -1, 92, 93, -1, -1, -1, -1, -1, -1,
- -1, 101, -1, -1, -1, 105, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 115, -1, -1, 118, 119,
- -1, 121, 122, -1, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, -1, -1, 0, -1, 138, 139,
- 140, -1, 142, -1, -1, 145, 146, 147, 148, 13,
- 14, 15, -1, 17, 18, -1, 20, -1, -1, -1,
+ -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
- 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- -1, -1, -1, -1, 88, 89, 90, -1, 92, 93,
- -1, -1, -1, -1, -1, -1, -1, 101, -1, -1,
- -1, 105, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 115, -1, -1, 118, 119, -1, 121, 122, -1,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- -1, -1, 0, -1, -1, 139, 140, -1, 142, -1,
- -1, 145, 146, 147, 148, 13, 14, 15, -1, 17,
- 18, -1, 20, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 37,
- 38, -1, 40, 41, 42, 43, 44, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
+ -1, -1, -1, 88, 89, 90, -1, 92, 93, -1,
+ -1, -1, -1, -1, -1, -1, 101, -1, -1, -1,
+ 105, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 115, -1, -1, 118, 119, -1, 121, 122, -1, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
+ -1, 0, -1, -1, 139, 140, -1, 142, -1, -1,
+ 145, 146, 147, 148, 13, 14, 15, -1, 17, 18,
+ -1, 20, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
+ -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, -1, -1, -1, -1,
- 88, 89, 90, -1, 92, 93, -1, -1, -1, -1,
- -1, -1, -1, 101, -1, -1, -1, 105, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 115, -1, -1,
- 118, 119, -1, 121, 122, -1, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, -1, -1, -1, -1,
- -1, 139, 140, -1, 142, -1, -1, 145, 146, 147,
- 148, 1, -1, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 14, 15, -1, -1, 18, 19,
- -1, 21, 22, 23, 24, -1, -1, -1, -1, -1,
- 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
- -1, -1, -1, -1, -1, 45, -1, 47, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
- 60, -1, -1, 63, -1, -1, 66, 67, -1, 69,
- 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 84, 85, -1, -1, -1, -1,
- -1, 91, -1, -1, 94, 95, -1, 97, 98, -1,
- 100, -1, -1, -1, 104, -1, 106, 107, 108, -1,
- 110, 111, 112, -1, 114, 115, -1, -1, 118, 119,
+ -1, -1, -1, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, -1, -1, -1, -1, 88,
+ 89, 90, -1, 92, 93, -1, -1, -1, -1, -1,
+ -1, -1, 101, -1, -1, -1, 105, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 115, -1, -1, 118,
+ 119, -1, 121, 122, -1, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, -1, -1, -1, -1, -1,
+ 139, 140, -1, 142, -1, -1, 145, 146, 147, 148,
+ 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, 15, -1, -1, 18, 19, -1,
+ 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
+ 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
+ -1, -1, -1, -1, 45, -1, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
+ -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
+ 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
+ 91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
+ -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
+ 111, 112, -1, 114, 115, -1, -1, 118, 119, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 134, 135, 136, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 146, 1, 148, 3,
+ -1, -1, -1, 134, 135, 136, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 146, 1, 148, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, -1, -1,
+ 15, -1, 17, 18, 19, -1, 21, 22, 23, 24,
+ -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
+ 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
+ 45, -1, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
+ -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
+ 85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
+ 95, -1, 97, 98, -1, 100, -1, -1, -1, 104,
+ -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
+ 115, -1, -1, 118, 119, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 134,
+ 135, 136, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 146, 1, 148, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, -1, -1, 15, -1, -1, 18,
+ 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
+ -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
+ 39, -1, -1, -1, -1, -1, 45, -1, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
+ 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
+ 69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
+ -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
+ -1, 100, -1, -1, -1, 104, -1, 106, 107, 108,
+ -1, 110, 111, 112, -1, 114, 115, -1, -1, 118,
+ 119, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 134, 135, 136, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 146, 1, 148,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ -1, -1, 15, -1, -1, 18, 19, -1, 21, 22,
+ 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
+ 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
+ -1, -1, 45, -1, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
+ 63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
+ -1, 94, 95, -1, 97, 98, -1, 100, -1, -1,
+ -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
+ -1, 114, 115, -1, -1, 118, 119, 1, -1, 3,
4, 5, 6, 7, 8, 9, 10, 11, 12, -1,
- -1, 15, -1, 17, 18, 19, -1, 21, 22, 23,
- 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
+ -1, 134, 135, 136, -1, 19, -1, 21, 22, 23,
+ 24, -1, -1, 146, -1, 148, 30, 31, 32, 33,
34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
- -1, 45, -1, 47, 48, 49, 50, 51, 52, 53,
+ -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 56, -1, 58, 59, 60, -1, -1, 63,
-1, -1, 66, 67, -1, 69, 70, 71, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
@@ -4186,10 +4347,10 @@ static const yytype_int16 yycheck[] =
104, -1, 106, 107, 108, -1, 110, 111, 112, -1,
114, 115, -1, -1, 118, 119, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 134, 135, 136, -1, -1, -1, -1, -1, -1, -1,
+ 134, 135, 136, -1, -1, 139, -1, -1, -1, -1,
-1, -1, 146, 1, 148, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, -1, -1, 15, -1, -1,
- 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
+ 8, 9, 10, 11, 12, -1, 14, 15, -1, -1,
+ -1, 19, -1, 21, 22, 23, 24, -1, -1, -1,
-1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
-1, 39, -1, -1, -1, -1, -1, 45, -1, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
@@ -4199,62 +4360,9 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, 91, -1, -1, 94, 95, -1, 97,
98, -1, 100, -1, -1, -1, 104, -1, 106, 107,
108, -1, 110, 111, 112, -1, 114, 115, -1, -1,
- 118, 119, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 134, 135, 136, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 146, 1,
- 148, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, -1, -1, 15, -1, -1, 18, 19, -1, 21,
- 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
- 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
- -1, -1, -1, 45, -1, 47, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, -1, 58, 59, 60, -1,
- -1, 63, -1, -1, 66, 67, -1, 69, 70, 71,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 84, 85, -1, -1, -1, -1, -1, 91,
- -1, -1, 94, 95, -1, 97, 98, -1, 100, -1,
- -1, -1, 104, -1, 106, 107, 108, -1, 110, 111,
- 112, -1, 114, 115, -1, -1, 118, 119, 1, -1,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- -1, -1, 134, 135, 136, -1, 19, -1, 21, 22,
- 23, 24, -1, -1, 146, -1, 148, 30, 31, 32,
- 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
- -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
- 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
- 63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
- -1, 94, 95, -1, 97, 98, -1, 100, -1, -1,
- -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
- -1, 114, 115, -1, -1, 118, 119, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 134, 135, 136, -1, -1, 139, -1, -1, -1,
- -1, -1, -1, 146, 1, 148, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, -1, 14, 15, -1,
- -1, -1, 19, -1, 21, 22, 23, 24, -1, -1,
- -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
- -1, -1, 39, -1, -1, -1, -1, -1, 45, -1,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
- 67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
- -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
- 97, 98, -1, 100, -1, -1, -1, 104, -1, 106,
- 107, 108, -1, 110, 111, 112, -1, 114, 115, -1,
- -1, 118, 119, 1, -1, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, -1, -1, 134, 135, 136,
- -1, 19, -1, 21, 22, 23, 24, -1, -1, 146,
- -1, 148, 30, 31, 32, 33, 34, 35, 36, -1,
- -1, 39, -1, -1, -1, -1, -1, 45, -1, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
- 58, 59, 60, -1, -1, 63, -1, -1, 66, 67,
- -1, 69, 70, 71, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 84, 85, -1, -1,
- -1, -1, -1, 91, -1, -1, 94, 95, -1, 97,
- 98, -1, 100, -1, -1, -1, 104, -1, 106, 107,
- 108, -1, 110, 111, 112, -1, 114, 115, -1, -1,
118, 119, 1, -1, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, -1, -1, 134, 135, 136, -1,
- 19, -1, 21, 22, 23, 24, -1, 145, 146, -1,
+ 19, -1, 21, 22, 23, 24, -1, -1, 146, -1,
148, 30, 31, 32, 33, 34, 35, 36, -1, -1,
39, -1, -1, -1, -1, -1, 45, -1, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
@@ -4276,26 +4384,26 @@ static const yytype_int16 yycheck[] =
-1, 91, -1, -1, 94, 95, -1, 97, 98, -1,
100, -1, -1, -1, 104, -1, 106, 107, 108, -1,
110, 111, 112, -1, 114, 115, -1, -1, 118, 119,
+ 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, 12, -1, -1, 134, 135, 136, -1, 19, -1,
+ 21, 22, 23, 24, -1, 145, 146, -1, 148, 30,
+ 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
+ -1, -1, -1, -1, 45, -1, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
+ -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
+ 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
+ 91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
+ -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
+ 111, 112, -1, 114, 115, -1, -1, 118, 119, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 134, 135, 136, -1, -1, 139,
- -1, -1, -1, -1, -1, -1, 146, 1, 148, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, -1,
- -1, 15, -1, -1, -1, 19, -1, 21, 22, 23,
- 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
- 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
- -1, 45, -1, 47, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, -1, 58, 59, 60, -1, -1, 63,
- -1, -1, 66, 67, -1, 69, 70, 71, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 84, 85, -1, -1, -1, -1, -1, 91, -1, -1,
- 94, 95, -1, 97, 98, -1, 100, -1, -1, -1,
- 104, -1, 106, 107, 108, -1, 110, 111, 112, -1,
- 114, 115, -1, -1, 118, 119, -1, -1, 3, 4,
+ -1, -1, -1, 134, 135, 136, -1, -1, 139, -1,
+ -1, -1, -1, -1, -1, 146, 1, 148, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, -1, -1,
- 134, 135, 136, -1, 19, -1, 21, 22, 23, 24,
- -1, -1, 146, -1, 148, 30, 31, 32, 33, 34,
+ 15, -1, -1, -1, 19, -1, 21, 22, 23, 24,
+ -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 45, -1, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
-1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
@@ -4307,7 +4415,7 @@ static const yytype_int16 yycheck[] =
135, 136, -1, 19, -1, 21, 22, 23, 24, -1,
-1, 146, -1, 148, 30, 31, 32, 33, 34, 35,
36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
- -1, 47, 48, 49, 50, 51, 52, 53, 54, 55,
+ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
56, -1, 58, 59, 60, -1, -1, 63, -1, -1,
66, 67, -1, 69, 70, 71, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 84, 85,
@@ -4315,16 +4423,16 @@ static const yytype_int16 yycheck[] =
-1, 97, 98, -1, 100, -1, -1, -1, 104, -1,
106, 107, 108, -1, 110, 111, 112, -1, 114, 115,
-1, -1, 118, 119, -1, -1, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, -1, -1, -1, 134, 135,
+ 7, 8, 9, 10, 11, 12, -1, -1, 134, 135,
136, -1, 19, -1, 21, 22, 23, 24, -1, -1,
146, -1, 148, 30, 31, 32, 33, 34, 35, 36,
- -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
- -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ -1, -1, 39, -1, -1, -1, -1, -1, 45, -1,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
-1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
-1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
- 97, 98, -1, -1, -1, -1, -1, 104, -1, 106,
+ 97, 98, -1, 100, -1, -1, -1, 104, -1, 106,
107, 108, -1, 110, 111, 112, -1, 114, 115, -1,
-1, 118, 119, -1, -1, 3, 4, 5, 6, 7,
8, 9, 10, 11, -1, -1, -1, 134, 135, 136,
@@ -4338,64 +4446,64 @@ static const yytype_int16 yycheck[] =
-1, -1, -1, 91, -1, -1, 94, 95, -1, 97,
98, -1, -1, -1, -1, -1, 104, -1, 106, 107,
108, -1, 110, 111, 112, -1, 114, 115, -1, -1,
- 118, 119, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 134, 135, 136, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 146, -1,
- 148, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
- -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 70, 71,
- 72, 73, 74, 75, 76, 77, -1, -1, 80, 81,
- -1, -1, -1, -1, 86, 87, 88, 89, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 100, 101,
- 102, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 118, 119, -1, -1, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, -1, -1, -1, 134, 135, 136, -1,
+ 19, -1, 21, 22, 23, 24, -1, -1, 146, -1,
+ 148, 30, 31, 32, 33, 34, 35, 36, -1, -1,
+ 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
+ 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
+ 69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
+ -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
+ -1, -1, -1, -1, -1, 104, -1, 106, 107, 108,
+ -1, 110, 111, 112, -1, 114, 115, -1, -1, 118,
+ 119, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 134, 135, 136, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 146, -1, 148,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, -1, -1, -1, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
+ -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
+ 73, 74, 75, 76, 77, -1, -1, 80, 81, -1,
+ -1, -1, -1, 86, 87, 88, 89, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 100, 101, 102,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, -1, 135, 136, -1, -1, -1, -1, -1,
- -1, 143, 144, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, -1, -1, -1, -1, -1, -1, -1, 19,
- -1, 21, 22, 23, 24, -1, 26, -1, -1, -1,
- 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
- -1, -1, -1, -1, -1, -1, -1, -1, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
- 60, -1, -1, 63, -1, -1, 66, 67, -1, 69,
- 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 84, 85, -1, -1, -1, -1,
- -1, 91, -1, -1, 94, 95, -1, 97, 98, -1,
- 100, -1, 102, 103, 104, -1, 106, 107, 108, -1,
- 110, 111, 112, -1, 114, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 134, 135, 136, -1, 138, -1,
- -1, -1, -1, -1, 144, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, -1, -1, -1, -1, -1, -1,
- -1, 19, -1, 21, 22, 23, 24, -1, 26, -1,
- -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
- -1, 39, -1, -1, -1, -1, -1, -1, -1, -1,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
- 58, 59, 60, -1, -1, 63, -1, -1, 66, 67,
- -1, 69, 70, 71, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 84, 85, -1, -1,
- -1, -1, -1, 91, -1, -1, 94, 95, -1, 97,
- 98, -1, 100, -1, 102, 103, 104, -1, 106, 107,
- 108, -1, 110, 111, 112, -1, 114, -1, -1, -1,
- -1, -1, -1, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, -1, -1, -1, -1, 134, 135, 136, 19,
- 138, 21, 22, 23, 24, -1, 144, -1, -1, -1,
- 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
- -1, -1, -1, -1, -1, -1, -1, -1, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
- 60, -1, -1, 63, -1, -1, 66, 67, -1, 69,
- 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 84, 85, -1, -1, -1, -1,
- -1, 91, 92, -1, 94, 95, -1, 97, 98, -1,
- 100, -1, 102, 103, 104, -1, 106, 107, 108, -1,
- 110, 111, 112, -1, 114, -1, -1, -1, -1, -1,
- -1, 121, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, -1, -1, -1, 134, 135, 136, -1, 19, -1,
- 21, 22, 23, 24, 144, -1, -1, -1, -1, 30,
+ -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, -1, 135, 136, -1, -1, -1, -1, -1, -1,
+ 143, 144, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, -1, -1, -1, -1, -1, -1, -1, 19, -1,
+ 21, 22, 23, 24, -1, 26, -1, -1, -1, 30,
+ 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
+ -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
+ -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
+ 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
+ 91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
+ -1, 102, 103, 104, -1, 106, 107, 108, -1, 110,
+ 111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 134, 135, 136, -1, 138, -1, -1,
+ -1, -1, -1, 144, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, -1, -1, -1, -1, -1, -1, -1,
+ 19, -1, 21, 22, 23, 24, -1, 26, -1, -1,
+ -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
+ 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
+ 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
+ 69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
+ -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
+ -1, 100, -1, 102, 103, 104, -1, 106, 107, 108,
+ -1, 110, 111, 112, -1, 114, -1, -1, -1, -1,
+ -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, -1, -1, -1, -1, 134, 135, 136, 19, 138,
+ 21, 22, 23, 24, -1, 144, -1, -1, -1, 30,
31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
-1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
@@ -4414,24 +4522,50 @@ static const yytype_int16 yycheck[] =
-1, 63, -1, -1, 66, 67, -1, 69, 70, 71,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 84, 85, -1, -1, -1, -1, -1, 91,
- -1, -1, 94, 95, -1, 97, 98, -1, 100, -1,
+ 92, -1, 94, 95, -1, 97, 98, -1, 100, -1,
102, 103, 104, -1, 106, 107, 108, -1, 110, 111,
- 112, -1, 114, -1, -1, -1, -1, -1, -1, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
- -1, -1, 134, 135, 136, 19, -1, 21, 22, 23,
- 24, -1, 144, -1, -1, -1, 30, 31, 32, 33,
- 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
- -1, -1, -1, -1, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, -1, 58, 59, 60, -1, -1, 63,
- -1, -1, 66, 67, -1, 69, 70, 71, -1, -1,
+ 112, -1, 114, -1, -1, -1, -1, -1, -1, 121,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
+ -1, -1, 134, 135, 136, -1, 19, -1, 21, 22,
+ 23, 24, 144, -1, -1, -1, -1, 30, 31, 32,
+ 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
+ -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
+ 63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 84, 85, -1, -1, -1, -1, -1, 91, -1, -1,
- 94, 95, -1, 97, 98, -1, 100, -1, 102, 103,
- 104, -1, 106, 107, 108, -1, 110, 111, 112, -1,
- 114, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
+ -1, 94, 95, -1, 97, 98, -1, 100, -1, 102,
+ 103, 104, -1, 106, 107, 108, -1, 110, 111, 112,
+ -1, 114, -1, -1, -1, -1, -1, -1, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
+ -1, 134, 135, 136, 19, -1, 21, 22, 23, 24,
+ -1, 144, -1, -1, -1, 30, 31, 32, 33, 34,
+ 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
+ -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
+ -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
+ 85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
+ 95, -1, 97, 98, -1, 100, -1, 102, 103, 104,
+ -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 134,
+ 135, 136, -1, -1, -1, -1, -1, -1, -1, 144,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, -1, -1, -1, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
+ -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, -1, -1, -1, -1, -1, -1,
+ 63, -1, -1, -1, -1, -1, -1, 70, 71, 72,
+ 73, 74, 75, 76, 77, -1, -1, 80, 81, -1,
+ -1, -1, -1, 86, 87, 88, 89, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 100, 101, 102,
+ -1, -1, -1, -1, 107, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 134, 135, 136, -1, -1, -1, -1, -1, -1, -1,
- 144, 3, 4, 5, 6, 7, 8, 9, 10, 11,
+ -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, -1, 135, 136, -1, -1, -1, -1, -1, -1,
+ 143, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
@@ -4450,12 +4584,12 @@ static const yytype_int16 yycheck[] =
21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
-1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, -1, -1, -1, -1,
- -1, -1, 63, -1, -1, -1, -1, -1, -1, 70,
+ 51, 52, -1, -1, 55, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
71, 72, 73, 74, 75, 76, 77, -1, -1, 80,
81, -1, -1, -1, -1, 86, 87, 88, 89, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 100,
- 101, 102, -1, -1, -1, -1, 107, -1, -1, -1,
+ 101, 102, -1, -1, -1, 106, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
131, 132, 133, -1, 135, 136, -1, -1, -1, -1,
@@ -4469,523 +4603,532 @@ static const yytype_int16 yycheck[] =
70, 71, 72, 73, 74, 75, 76, 77, -1, -1,
80, 81, -1, -1, -1, -1, 86, 87, 88, 89,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 100, 101, 102, -1, -1, -1, 106, -1, -1, -1,
+ 100, 101, 102, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 124, 125, 126, 127, 128, 129,
130, 131, 132, 133, -1, 135, 136, -1, -1, -1,
-1, -1, -1, 143, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 26, -1, -1,
- -1, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
- 49, 50, 51, 52, -1, -1, 55, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 70, 71, 72, 73, 74, 75, 76, 77, -1,
- -1, 80, 81, -1, -1, -1, -1, 86, 87, 88,
- 89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 100, 101, 102, -1, -1, -1, -1, -1, -1,
+ 9, 10, 11, -1, -1, -1, -1, -1, -1, -1,
+ 19, -1, 21, 22, 23, 24, -1, -1, -1, -1,
+ -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
+ 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
+ 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
+ 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, -1, 135, 136, -1, -1,
- -1, -1, -1, -1, 143, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, -1, -1, -1, -1, -1, -1,
- -1, 19, -1, 21, 22, 23, 24, -1, -1, -1,
- -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
- -1, 39, -1, -1, -1, -1, -1, -1, -1, -1,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
- 58, 59, 60, -1, -1, 63, -1, -1, 66, 67,
- -1, 69, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
+ -1, -1, -1, -1, -1, 104, -1, 106, 107, 108,
+ -1, 110, 111, 112, -1, 114, -1, -1, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
+ -1, -1, -1, -1, 19, 134, 21, 22, 23, 24,
+ -1, -1, -1, 142, -1, 30, 31, 32, 33, 34,
+ 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
+ -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
+ -1, 66, 67, -1, 69, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 91, -1, -1, 94, 95, -1, 97,
- 98, -1, -1, -1, -1, -1, 104, -1, 106, 107,
- 108, -1, 110, 111, 112, -1, 114, -1, -1, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
- -1, -1, -1, -1, -1, 19, 134, 21, 22, 23,
- 24, -1, -1, -1, 142, -1, 30, 31, 32, 33,
- 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
- -1, -1, -1, -1, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, -1, 58, 59, 60, -1, -1, 63,
- -1, -1, 66, 67, -1, 69, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 91, -1, -1, 94,
+ 95, -1, 97, 98, -1, -1, -1, -1, -1, 104,
+ -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
+ -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, 12, -1, -1, -1, -1, -1, -1, 19, 134,
+ 21, 22, 23, 24, -1, -1, -1, 142, -1, 30,
+ 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
+ -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
+ -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
+ 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
+ 91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
+ -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
+ 111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ -1, -1, -1, 134, 135, 136, 19, -1, 21, 22,
+ 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
+ 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
+ -1, -1, 45, -1, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
+ 63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 91, -1, -1,
- 94, 95, -1, 97, 98, -1, -1, -1, -1, -1,
- 104, -1, 106, 107, 108, -1, 110, 111, 112, -1,
- 114, -1, -1, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, -1, -1, -1, -1, -1, -1, 19,
- 134, 21, 22, 23, 24, -1, -1, -1, 142, -1,
- 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
- -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
- 60, -1, -1, 63, -1, -1, 66, 67, -1, 69,
- 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 84, 85, -1, -1, -1, -1,
- -1, 91, -1, -1, 94, 95, -1, 97, 98, -1,
- 100, -1, -1, -1, 104, -1, 106, 107, 108, -1,
- 110, 111, 112, -1, 114, -1, -1, -1, -1, -1,
- -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, -1, -1, -1, 134, 135, 136, 19, -1, 21,
- 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
- 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
- -1, -1, -1, 45, -1, 47, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, -1, 58, 59, 60, -1,
- -1, 63, -1, -1, 66, 67, -1, 69, 70, 71,
+ -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
+ -1, 94, 95, -1, 97, 98, -1, 100, -1, -1,
+ -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
+ -1, 114, -1, -1, -1, -1, -1, -1, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
+ -1, 134, 135, 136, 19, -1, 21, 22, 23, 24,
+ -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
+ 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
+ -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
+ -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
+ 85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
+ 95, -1, 97, 98, -1, 100, -1, 102, 103, 104,
+ -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
+ -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, -1, -1, -1, -1, 134,
+ 135, 136, 19, -1, 21, 22, 23, 24, -1, -1,
+ -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
+ -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
+ -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
+ 67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
+ -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
+ 97, 98, -1, 100, -1, 102, 103, 104, -1, 106,
+ 107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
+ -1, -1, -1, -1, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, -1, -1, -1, -1, 134, 135, 136,
+ 19, -1, 21, 22, 23, 24, -1, -1, -1, -1,
+ -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
+ 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
+ 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
+ 69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
+ -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
+ -1, 100, -1, 102, 103, 104, -1, 106, 107, 108,
+ -1, 110, 111, 112, -1, 114, -1, -1, -1, -1,
+ -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, -1, -1, -1, -1, 134, 135, 136, 19, -1,
+ 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
+ 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
+ -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
+ -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
+ 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
+ 91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
+ -1, 102, 103, 104, -1, 106, 107, 108, -1, 110,
+ 111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
+ -1, -1, -1, 134, 135, 136, 19, -1, 21, 22,
+ 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
+ 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
+ -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
+ 63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 84, 85, -1, -1, -1, -1, -1, 91,
- -1, -1, 94, 95, -1, 97, 98, -1, 100, -1,
- -1, -1, 104, -1, 106, 107, 108, -1, 110, 111,
- 112, -1, 114, -1, -1, -1, -1, -1, -1, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
- -1, -1, 134, 135, 136, 19, -1, 21, 22, 23,
- 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
- 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
- -1, -1, -1, -1, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, -1, 58, 59, 60, -1, -1, 63,
- -1, -1, 66, 67, -1, 69, 70, 71, -1, -1,
+ -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
+ -1, 94, 95, -1, 97, 98, -1, 100, -1, 102,
+ -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
+ -1, 114, -1, -1, -1, -1, -1, -1, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
+ -1, 134, 135, 136, 19, -1, 21, 22, 23, 24,
+ -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
+ 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
+ -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
+ -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
+ 85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
+ 95, -1, 97, 98, -1, -1, -1, 102, 103, 104,
+ -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
+ -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, -1, -1, -1, -1, 134,
+ 135, 136, 19, -1, 21, 22, 23, 24, -1, -1,
+ -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
+ -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
+ -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
+ 67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
+ -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
+ 97, 98, -1, 100, -1, 102, -1, 104, -1, 106,
+ 107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
+ -1, -1, -1, -1, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, -1, -1, -1, -1, 134, 135, 136,
+ 19, -1, 21, 22, 23, 24, -1, -1, -1, -1,
+ -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
+ 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
+ 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
+ 69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
+ -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
+ -1, -1, -1, 102, -1, 104, -1, 106, 107, 108,
+ -1, 110, 111, 112, -1, 114, -1, -1, -1, -1,
+ -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, -1, -1, -1, -1, 134, 135, 136, 19, -1,
+ 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
+ 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
+ -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
+ -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
+ 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
+ 91, -1, -1, 94, 95, -1, 97, 98, -1, 100,
+ -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
+ 111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
+ -1, -1, -1, 134, 135, 136, 19, -1, 21, 22,
+ 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
+ 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
+ -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
+ 63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 84, 85, -1, -1, -1, -1, -1, 91, -1, -1,
- 94, 95, -1, 97, 98, -1, 100, -1, 102, 103,
- 104, -1, 106, 107, 108, -1, 110, 111, 112, -1,
- 114, -1, -1, -1, -1, -1, -1, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
- 134, 135, 136, 19, -1, 21, 22, 23, 24, -1,
- -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
- 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
- -1, -1, 48, 49, 50, 51, 52, 53, 54, 55,
- 56, -1, 58, 59, 60, -1, -1, 63, -1, -1,
- 66, 67, -1, 69, 70, 71, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 84, 85,
- -1, -1, -1, -1, -1, 91, -1, -1, 94, 95,
- -1, 97, 98, -1, 100, -1, 102, 103, 104, -1,
- 106, 107, 108, -1, 110, 111, 112, -1, 114, -1,
- -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, -1, -1, -1, -1, 134, 135,
- 136, 19, -1, 21, 22, 23, 24, -1, -1, -1,
- -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
- -1, 39, -1, -1, -1, -1, -1, -1, -1, -1,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
- 58, 59, 60, -1, -1, 63, -1, -1, 66, 67,
- -1, 69, 70, 71, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 84, 85, -1, -1,
- -1, -1, -1, 91, -1, -1, 94, 95, -1, 97,
- 98, -1, 100, -1, 102, 103, 104, -1, 106, 107,
- 108, -1, 110, 111, 112, -1, 114, -1, -1, -1,
- -1, -1, -1, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, -1, -1, -1, -1, 134, 135, 136, 19,
- -1, 21, 22, 23, 24, -1, -1, -1, -1, -1,
- 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
- -1, -1, -1, -1, -1, -1, -1, -1, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
- 60, -1, -1, 63, -1, -1, 66, 67, -1, 69,
- 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 84, 85, -1, -1, -1, -1,
- -1, 91, -1, -1, 94, 95, -1, 97, 98, -1,
- 100, -1, 102, 103, 104, -1, 106, 107, 108, -1,
- 110, 111, 112, -1, 114, -1, -1, -1, -1, -1,
- -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- -1, -1, -1, -1, 134, 135, 136, 19, -1, 21,
- 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
- 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
- -1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, -1, 58, 59, 60, -1,
- -1, 63, -1, -1, 66, 67, -1, 69, 70, 71,
+ -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
+ -1, 94, 95, -1, 97, 98, -1, 100, -1, -1,
+ -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
+ -1, 114, -1, -1, -1, -1, -1, -1, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
+ -1, 134, 135, 136, 19, -1, 21, 22, 23, 24,
+ -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
+ 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
+ -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
+ -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
+ 85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
+ 95, -1, 97, 98, -1, 100, -1, -1, -1, 104,
+ -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
+ -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, -1, -1, -1, -1, 134,
+ 135, 136, 19, -1, 21, 22, 23, 24, -1, -1,
+ -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
+ -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
+ -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
+ 67, -1, 69, 70, 71, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 84, 85, -1,
+ -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
+ 97, 98, -1, 100, -1, -1, -1, 104, -1, 106,
+ 107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
+ -1, -1, -1, -1, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, -1, -1, -1, -1, 134, 135, 136,
+ 19, -1, 21, 22, 23, 24, -1, -1, -1, -1,
+ -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
+ 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
+ 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
+ 69, 70, 71, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 84, 85, -1, -1, -1,
+ -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
+ -1, 100, -1, -1, -1, 104, -1, 106, 107, 108,
+ -1, 110, 111, 112, -1, 114, -1, -1, -1, -1,
+ -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, -1, -1, -1, -1, 134, 135, 136, 19, -1,
+ 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
+ 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
+ -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
+ -1, -1, 63, -1, -1, 66, 67, -1, 69, 70,
+ 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 84, 85, -1, -1, -1, -1, -1,
+ 91, -1, -1, 94, 95, -1, 97, 98, -1, -1,
+ -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
+ 111, 112, -1, 114, -1, -1, -1, -1, -1, -1,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
+ -1, -1, -1, 134, 135, 136, 19, -1, 21, 22,
+ 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
+ 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
+ -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
+ 63, -1, -1, 66, 67, -1, 69, 70, 71, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 84, 85, -1, -1, -1, -1, -1, 91,
- -1, -1, 94, 95, -1, 97, 98, -1, 100, -1,
- 102, -1, 104, -1, 106, 107, 108, -1, 110, 111,
- 112, -1, 114, -1, -1, -1, -1, -1, -1, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
- -1, -1, 134, 135, 136, 19, -1, 21, 22, 23,
- 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
- 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
- -1, -1, -1, -1, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, -1, 58, 59, 60, -1, -1, 63,
- -1, -1, 66, 67, -1, 69, 70, 71, -1, -1,
+ -1, 84, 85, -1, -1, -1, -1, -1, 91, -1,
+ -1, 94, 95, -1, 97, 98, -1, -1, -1, -1,
+ -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
+ -1, 114, -1, -1, -1, -1, -1, -1, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
+ -1, 134, 135, 136, 19, -1, 21, 22, 23, 24,
+ -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
+ 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
+ -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
+ -1, 66, 67, -1, 69, 70, 71, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 84,
+ 85, -1, -1, -1, -1, -1, 91, -1, -1, 94,
+ 95, -1, 97, 98, -1, -1, -1, -1, -1, 104,
+ -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
+ -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, -1, -1, -1, -1, 134,
+ 135, 136, 19, -1, 21, 22, 23, 24, -1, -1,
+ -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
+ -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
+ -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
+ 67, -1, 69, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 84, 85, -1, -1, -1, -1, -1, 91, -1, -1,
- 94, 95, -1, 97, 98, -1, -1, -1, 102, 103,
- 104, -1, 106, 107, 108, -1, 110, 111, 112, -1,
- 114, -1, -1, -1, -1, -1, -1, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
- 134, 135, 136, 19, -1, 21, 22, 23, 24, -1,
- -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
- 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
- -1, -1, 48, 49, 50, 51, 52, 53, 54, 55,
- 56, -1, 58, 59, 60, -1, -1, 63, -1, -1,
- 66, 67, -1, 69, 70, 71, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 84, 85,
- -1, -1, -1, -1, -1, 91, -1, -1, 94, 95,
- -1, 97, 98, -1, 100, -1, 102, -1, 104, -1,
- 106, 107, 108, -1, 110, 111, 112, -1, 114, -1,
- -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, -1, -1, -1, -1, 134, 135,
- 136, 19, -1, 21, 22, 23, 24, -1, -1, -1,
- -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
- -1, 39, -1, -1, -1, -1, -1, -1, -1, -1,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
- 58, 59, 60, -1, -1, 63, -1, -1, 66, 67,
- -1, 69, 70, 71, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 84, 85, -1, -1,
- -1, -1, -1, 91, -1, -1, 94, 95, -1, 97,
- 98, -1, -1, -1, 102, -1, 104, -1, 106, 107,
- 108, -1, 110, 111, 112, -1, 114, -1, -1, -1,
- -1, -1, -1, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, -1, -1, -1, -1, 134, 135, 136, 19,
- -1, 21, 22, 23, 24, -1, -1, -1, -1, -1,
- 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
- -1, -1, -1, -1, -1, -1, -1, -1, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
- 60, -1, -1, 63, -1, -1, 66, 67, -1, 69,
- 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 84, 85, -1, -1, -1, -1,
- -1, 91, -1, -1, 94, 95, -1, 97, 98, -1,
- 100, -1, -1, -1, 104, -1, 106, 107, 108, -1,
- 110, 111, 112, -1, 114, -1, -1, -1, -1, -1,
- -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- -1, -1, -1, -1, 134, 135, 136, 19, -1, 21,
- 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
- 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
- -1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, -1, 58, 59, 60, -1,
- -1, 63, -1, -1, 66, 67, -1, 69, 70, 71,
+ -1, 88, -1, -1, 91, -1, -1, 94, 95, -1,
+ 97, 98, -1, -1, -1, -1, -1, 104, -1, 106,
+ 107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
+ -1, -1, -1, -1, -1, -1, 19, 134, 21, 22,
+ 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
+ 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
+ -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
+ 63, -1, -1, 66, 67, -1, 69, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 84, 85, -1, -1, -1, -1, -1, 91,
- -1, -1, 94, 95, -1, 97, 98, -1, 100, -1,
- -1, -1, 104, -1, 106, 107, 108, -1, 110, 111,
- 112, -1, 114, -1, -1, -1, -1, -1, -1, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
- -1, -1, 134, 135, 136, 19, -1, 21, 22, 23,
- 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
- 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
- -1, -1, -1, -1, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, -1, 58, 59, 60, -1, -1, 63,
- -1, -1, 66, 67, -1, 69, 70, 71, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 91, -1,
+ -1, 94, 95, -1, 97, 98, -1, 100, -1, -1,
+ -1, 104, -1, 106, 107, 108, -1, 110, 111, 112,
+ -1, 114, -1, -1, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, -1, -1, -1, -1, -1, -1, -1,
+ 19, 134, 21, 22, 23, 24, -1, -1, -1, -1,
+ -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
+ 39, -1, -1, -1, -1, -1, -1, -1, -1, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
+ 59, 60, -1, -1, 63, -1, -1, 66, 67, -1,
+ 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 84, 85, -1, -1, -1, -1, -1, 91, -1, -1,
- 94, 95, -1, 97, 98, -1, 100, -1, -1, -1,
- 104, -1, 106, 107, 108, -1, 110, 111, 112, -1,
- 114, -1, -1, -1, -1, -1, -1, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
- 134, 135, 136, 19, -1, 21, 22, 23, 24, -1,
- -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
- 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
- -1, -1, 48, 49, 50, 51, 52, 53, 54, 55,
- 56, -1, 58, 59, 60, -1, -1, 63, -1, -1,
- 66, 67, -1, 69, 70, 71, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 84, 85,
- -1, -1, -1, -1, -1, 91, -1, -1, 94, 95,
- -1, 97, 98, -1, 100, -1, -1, -1, 104, -1,
- 106, 107, 108, -1, 110, 111, 112, -1, 114, -1,
- -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, -1, -1, -1, -1, 134, 135,
- 136, 19, -1, 21, 22, 23, 24, -1, -1, -1,
- -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
- -1, 39, -1, -1, -1, -1, -1, -1, -1, -1,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
- 58, 59, 60, -1, -1, 63, -1, -1, 66, 67,
- -1, 69, 70, 71, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 84, 85, -1, -1,
- -1, -1, -1, 91, -1, -1, 94, 95, -1, 97,
- 98, -1, 100, -1, -1, -1, 104, -1, 106, 107,
- 108, -1, 110, 111, 112, -1, 114, -1, -1, -1,
- -1, -1, -1, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, -1, -1, -1, -1, 134, 135, 136, 19,
- -1, 21, 22, 23, 24, -1, -1, -1, -1, -1,
- 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
- -1, -1, -1, -1, -1, -1, -1, -1, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
- 60, -1, -1, 63, -1, -1, 66, 67, -1, 69,
- 70, 71, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 84, 85, -1, -1, -1, -1,
- -1, 91, -1, -1, 94, 95, -1, 97, 98, -1,
- -1, -1, -1, -1, 104, -1, 106, 107, 108, -1,
- 110, 111, 112, -1, 114, -1, -1, -1, -1, -1,
- -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- -1, -1, -1, -1, 134, 135, 136, 19, -1, 21,
- 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
- 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
- -1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, -1, 58, 59, 60, -1,
- -1, 63, -1, -1, 66, 67, -1, 69, 70, 71,
+ -1, -1, 91, -1, -1, 94, 95, -1, 97, 98,
+ -1, 100, -1, -1, -1, 104, -1, 106, 107, 108,
+ -1, 110, 111, 112, -1, 114, -1, -1, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, -1, -1, -1,
+ -1, -1, -1, -1, 19, 134, 21, 22, 23, 24,
+ -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
+ 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
+ -1, -1, -1, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, -1, 58, 59, 60, -1, -1, 63, -1,
+ -1, 66, 67, -1, 69, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 84, 85, -1, -1, -1, -1, -1, 91,
- -1, -1, 94, 95, -1, 97, 98, -1, -1, -1,
- -1, -1, 104, -1, 106, 107, 108, -1, 110, 111,
- 112, -1, 114, -1, -1, -1, -1, -1, -1, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
- -1, -1, 134, 135, 136, 19, -1, 21, 22, 23,
- 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
- 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
- -1, -1, -1, -1, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, -1, 58, 59, 60, -1, -1, 63,
- -1, -1, 66, 67, -1, 69, 70, 71, -1, -1,
+ -1, -1, -1, -1, -1, -1, 91, -1, -1, 94,
+ 95, -1, 97, 98, -1, -1, -1, -1, -1, 104,
+ -1, 106, 107, 108, -1, 110, 111, 112, -1, 114,
+ -1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, -1, -1, -1, -1, -1, -1, -1, 19, 134,
+ 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
+ 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
+ -1, -1, -1, -1, -1, -1, -1, 48, 49, 50,
+ 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
+ -1, -1, 63, -1, -1, 66, 67, -1, 69, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 84, 85, -1, -1, -1, -1, -1, 91, -1, -1,
- 94, 95, -1, 97, 98, -1, -1, -1, -1, -1,
- 104, -1, 106, 107, 108, -1, 110, 111, 112, -1,
- 114, -1, -1, -1, -1, -1, -1, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
- 134, 135, 136, 19, -1, 21, 22, 23, 24, -1,
- -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
- 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
- -1, -1, 48, 49, 50, 51, 52, 53, 54, 55,
- 56, -1, 58, 59, 60, -1, -1, 63, -1, -1,
- 66, 67, -1, 69, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 88, -1, -1, 91, -1, -1, 94, 95,
- -1, 97, 98, -1, -1, -1, -1, -1, 104, -1,
- 106, 107, 108, -1, 110, 111, 112, -1, 114, -1,
- -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- -1, -1, -1, -1, -1, -1, -1, 19, 134, 21,
- 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
- 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
- -1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, -1, 58, 59, 60, -1,
- -1, 63, -1, -1, 66, 67, -1, 69, -1, -1,
+ 91, -1, -1, 94, 95, -1, 97, 98, -1, -1,
+ -1, -1, -1, 104, -1, 106, 107, 108, -1, 110,
+ 111, 112, -1, 114, -1, -1, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, -1, -1, -1, -1, -1,
+ -1, -1, 19, 134, 21, 22, 23, 24, -1, -1,
+ -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
+ -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,
+ -1, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ -1, 58, 59, 60, -1, -1, 63, -1, -1, 66,
+ 67, -1, 69, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 91,
- -1, -1, 94, 95, -1, 97, 98, -1, 100, -1,
- -1, -1, 104, -1, 106, 107, 108, -1, 110, 111,
- 112, -1, 114, -1, -1, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, -1, -1, -1, -1, -1, -1,
- -1, 19, 134, 21, 22, 23, 24, -1, -1, -1,
- -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
- -1, 39, -1, -1, -1, -1, -1, -1, -1, -1,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
- 58, 59, 60, -1, -1, 63, -1, -1, 66, 67,
- -1, 69, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 91, -1, -1, 94, 95, -1,
+ 97, 98, -1, -1, -1, -1, -1, 104, -1, 106,
+ 107, 108, -1, 110, 111, 112, -1, 114, -1, -1,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, -1,
+ -1, -1, -1, -1, -1, -1, 19, 134, 21, 22,
+ 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
+ 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
+ -1, -1, -1, -1, -1, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, -1, 58, 59, 60, -1, -1,
+ 63, -1, -1, 66, 67, -1, 69, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 91, -1, -1, 94, 95, -1, 97,
- 98, -1, 100, -1, -1, -1, 104, -1, 106, 107,
- 108, -1, 110, 111, 112, -1, 114, -1, -1, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, -1, -1,
- -1, -1, -1, -1, -1, 19, 134, 21, 22, 23,
- 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
- 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
- -1, -1, -1, -1, 48, 49, 50, 51, 52, 53,
- 54, 55, 56, -1, 58, 59, 60, -1, -1, 63,
- -1, -1, 66, 67, -1, 69, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 91, -1,
+ -1, 94, 95, -1, 97, 98, -1, -1, 51, 52,
+ -1, 104, 55, 106, 107, 108, -1, 110, 111, 112,
+ -1, 114, -1, -1, -1, -1, -1, 70, 71, 72,
+ 73, 74, 75, 76, 77, -1, -1, 80, 81, -1,
+ -1, 134, -1, 86, 87, 88, 89, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 100, 101, 102,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 91, -1, -1,
- 94, 95, -1, 97, 98, -1, -1, -1, -1, -1,
- 104, -1, 106, 107, 108, -1, 110, 111, 112, -1,
- 114, -1, -1, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, -1, -1, -1, -1, -1, -1, -1, 19,
- 134, 21, 22, 23, 24, -1, -1, -1, -1, -1,
- 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
- -1, -1, -1, -1, -1, -1, -1, -1, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
- 60, -1, -1, 63, -1, -1, 66, 67, -1, 69,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, -1, 135, 136, 51, 52, -1, -1, 55, -1,
+ 143, 144, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
+ 77, -1, -1, 80, 81, -1, -1, -1, -1, 86,
+ 87, 88, 89, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 100, 101, 102, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 91, -1, -1, 94, 95, -1, 97, 98, -1,
- -1, -1, -1, -1, 104, -1, 106, 107, 108, -1,
- 110, 111, 112, -1, 114, -1, -1, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, -1, -1, -1, -1,
- -1, -1, -1, 19, 134, 21, 22, 23, 24, -1,
- -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
- 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
- -1, -1, 48, 49, 50, 51, 52, 53, 54, 55,
- 56, -1, 58, 59, 60, -1, -1, 63, -1, -1,
- 66, 67, -1, 69, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 124, 125, 126,
+ 127, 128, 129, 130, 131, 132, 133, -1, 135, 136,
+ 51, 52, -1, -1, 55, -1, 143, 144, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
+ 71, 72, 73, 74, 75, 76, 77, -1, -1, 80,
+ 81, -1, -1, -1, -1, 86, 87, 88, 89, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 100,
+ 101, 102, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 91, -1, -1, 94, 95,
- -1, 97, 98, -1, -1, -1, -1, -1, 104, -1,
- 106, 107, 108, -1, 110, 111, 112, -1, 114, -1,
- -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- -1, -1, -1, -1, -1, -1, -1, 19, 134, 21,
- 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
- 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
- -1, -1, -1, -1, -1, -1, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, -1, 58, 59, 60, -1,
- -1, 63, -1, -1, 66, 67, -1, 69, -1, -1,
+ -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, -1, 135, 136, 51, 52, -1, -1,
+ 55, -1, 143, 144, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
+ 75, 76, 77, -1, -1, 80, 81, -1, -1, -1,
+ -1, 86, 87, 88, 89, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 100, 101, 102, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 91,
- -1, -1, 94, 95, -1, 97, 98, -1, -1, 51,
- 52, -1, 104, 55, 106, 107, 108, -1, 110, 111,
- 112, -1, 114, -1, -1, -1, -1, -1, 70, 71,
- 72, 73, 74, 75, 76, 77, -1, -1, 80, 81,
- -1, -1, 134, -1, 86, 87, 88, 89, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 100, 101,
- 102, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
+ 135, 136, 51, 52, -1, -1, 55, -1, 143, 144,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, -1, 135, 136, 51, 52, -1, -1, 55,
- -1, 143, 144, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 70, 71, 72, 73, 74, 75,
- 76, 77, -1, -1, 80, 81, -1, -1, -1, -1,
- 86, 87, 88, 89, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 100, 101, 102, -1, -1, -1,
+ -1, 70, 71, 72, 73, 74, 75, 76, 77, -1,
+ -1, 80, 81, -1, -1, -1, -1, 86, 87, 88,
+ 89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 100, 101, 102, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, -1, 135,
- 136, 51, 52, -1, -1, 55, -1, 143, 144, -1,
+ -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, -1, 135, 136, 51, 52,
+ -1, -1, 55, -1, 143, 144, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
+ 73, 74, 75, 76, 77, -1, -1, 80, 81, -1,
+ -1, -1, -1, 86, 87, 88, 89, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 100, 101, 102,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 70, 71, 72, 73, 74, 75, 76, 77, -1, -1,
- 80, 81, -1, -1, -1, -1, 86, 87, 88, 89,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 100, 101, 102, -1, -1, -1, -1, -1, -1, -1,
+ -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, -1, 135, 136, 51, 52, -1, -1, 55, -1,
+ 143, 144, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
+ 77, -1, -1, 80, 81, -1, -1, -1, -1, 86,
+ 87, 88, 89, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 100, 101, 102, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, -1, 135, 136, 51, 52, -1,
- -1, 55, -1, 143, 144, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 70, 71, 72, 73,
- 74, 75, 76, 77, -1, -1, 80, 81, -1, -1,
- -1, -1, 86, 87, 88, 89, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 100, 101, 102, -1,
+ -1, -1, -1, -1, -1, -1, -1, 124, 125, 126,
+ 127, 128, 129, 130, 131, 132, 133, -1, 135, 136,
+ 51, 52, -1, -1, 55, -1, 143, 144, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
+ 71, 72, 73, 74, 75, 76, 77, -1, -1, 80,
+ 81, -1, -1, -1, -1, 86, 87, 88, 89, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 100,
+ 101, 102, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, -1, 135, 136, 51, 52, -1, -1,
+ 55, -1, 143, 144, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
+ 75, 76, 77, -1, -1, 80, 81, -1, -1, -1,
+ -1, 86, 87, 88, 89, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 100, 101, 102, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- -1, 135, 136, 51, 52, -1, -1, 55, -1, 143,
- 144, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 70, 71, 72, 73, 74, 75, 76, 77,
- -1, -1, 80, 81, -1, -1, -1, -1, 86, 87,
- 88, 89, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 100, 101, 102, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
+ 135, 136, 51, 52, -1, -1, 55, -1, 143, 144,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, -1, 135, 136, 51,
- 52, -1, -1, 55, -1, 143, 144, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 70, 71,
- 72, 73, 74, 75, 76, 77, -1, -1, 80, 81,
- -1, -1, -1, -1, 86, 87, 88, 89, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 100, 101,
- 102, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 70, 71, 72, 73, 74, 75, 76, 77, -1,
+ -1, 80, 81, -1, -1, -1, -1, 86, 87, 88,
+ 89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 100, 101, 102, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, -1, 135, 136, 51, 52, -1, -1, 55,
- -1, 143, 144, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 70, 71, 72, 73, 74, 75,
- 76, 77, -1, -1, 80, 81, -1, -1, -1, -1,
- 86, 87, 88, 89, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 100, 101, 102, -1, -1, -1,
+ -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, -1, 135, 136, 51, 52,
+ -1, -1, 55, -1, 143, 144, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 70, 71, 72,
+ 73, 74, 75, 76, 77, -1, -1, 80, 81, -1,
+ -1, -1, -1, 86, 87, 88, 89, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 100, 101, 102,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, -1, 135,
- 136, 51, 52, -1, -1, 55, -1, 143, 144, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 70, 71, 72, 73, 74, 75, 76, 77, -1, -1,
- 80, 81, -1, -1, -1, -1, 86, 87, 88, 89,
+ -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, -1, 135, 136, 51, 52, -1, -1, 55, -1,
+ 143, 144, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 70, 71, 72, 73, 74, 75, 76,
+ 77, -1, -1, 80, 81, -1, -1, -1, -1, 86,
+ 87, 88, 89, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 100, 101, 102, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 100, 101, 102, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 124, 125, 126,
+ 127, 128, 129, 130, 131, 132, 133, -1, 135, 136,
+ 51, 52, -1, -1, 55, -1, 143, 144, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
+ 71, 72, 73, 74, 75, 76, 77, -1, -1, 80,
+ 81, -1, -1, -1, -1, 86, 87, 88, 89, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 100,
+ 101, 102, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, -1, 135, 136, 51, 52, -1,
- -1, 55, -1, 143, 144, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 70, 71, 72, 73,
- 74, 75, 76, 77, -1, -1, 80, 81, -1, -1,
- -1, -1, 86, 87, 88, 89, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 100, 101, 102, -1,
+ -1, -1, -1, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, -1, 135, 136, 51, 52, -1, -1,
+ 55, -1, 143, 144, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 70, 71, 72, 73, 74,
+ 75, 76, 77, -1, -1, 80, 81, -1, -1, -1,
+ -1, 86, 87, 88, 89, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 100, 101, 102, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, -1,
+ 135, 136, 51, 52, -1, -1, 55, -1, 143, 144,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- -1, 135, 136, 51, 52, -1, -1, 55, -1, 143,
- 144, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 70, 71, 72, 73, 74, 75, 76, 77,
- -1, -1, 80, 81, -1, -1, -1, -1, 86, 87,
- 88, 89, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 100, 101, 102, -1, -1, -1, -1, -1,
+ -1, 70, 71, 72, 73, 74, 75, 76, 77, -1,
+ -1, 80, 81, -1, -1, -1, -1, 86, 87, 88,
+ 89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 100, 101, 102, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 44, -1, -1,
+ -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, -1, 135, 136, -1, -1,
+ -1, -1, -1, -1, 143, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
+ -1, 88, 89, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 101, -1, -1, -1, -1, 44,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, -1, 135, 136, 51,
- 52, -1, -1, 55, -1, 143, 144, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 70, 71,
- 72, 73, 74, 75, 76, 77, -1, -1, 80, 81,
- -1, -1, -1, -1, 86, 87, 88, 89, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 100, 101,
- 102, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 122, -1, 124, 125, 126,
+ 127, 128, 129, 130, 131, 132, 133, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
+ -1, -1, -1, 88, 89, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 101, -1, -1, -1,
+ -1, 44, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 122, -1, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, -1, -1, -1, -1, 88, 89, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 101, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, -1, 135, 136, 51, 52, -1, -1, 55,
- -1, 143, 144, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 70, 71, 72, 73, 74, 75,
- 76, 77, -1, -1, 80, 81, -1, -1, -1, -1,
- 86, 87, 88, 89, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 100, 101, 102, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
+ -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, -1, -1, -1, -1, 88, 89, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, -1, 135,
- 136, 51, 52, -1, -1, 55, -1, 143, 144, -1,
+ 101, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 70, 71, 72, 73, 74, 75, 76, 77, -1, -1,
- 80, 81, -1, -1, -1, -1, 86, 87, 88, 89,
+ -1, 122, -1, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, -1, -1, 148, -1, 88,
+ 89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 101, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 100, 101, 102, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 44, -1, -1, -1,
- -1, -1, -1, -1, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, -1, 135, 136, -1, -1, -1,
- -1, -1, -1, 143, 72, 73, 74, 75, 76, 77,
+ -1, -1, -1, 122, -1, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, -1, -1, -1, -1, -1,
+ -1, -1, -1, 142, 72, 73, 74, 75, 76, 77,
78, 79, 80, 81, 82, 83, -1, -1, -1, -1,
88, 89, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 101, -1, -1, -1, -1, 44, -1,
+ -1, -1, -1, 101, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 122, -1, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 72, 73, 74, 75,
+ 128, 129, 130, 131, 132, 133, -1, -1, -1, -1,
+ -1, -1, -1, -1, 142, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, -1, -1, -1,
+ -1, 88, 89, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 101, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 122, -1, 124, 125, 126,
+ 127, 128, 129, 130, 131, 132, 133, -1, -1, -1,
+ -1, -1, -1, -1, -1, 142, 72, 73, 74, 75,
76, 77, 78, 79, 80, 81, 82, 83, -1, -1,
-1, -1, 88, 89, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 101, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 122, -1, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- -1, -1, -1, -1, 88, 89, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 101, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 122, -1,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, -1, -1, 148, -1, 88, 89, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 101,
+ 126, 127, 128, 129, 130, 131, 132, 133, -1, -1,
+ -1, -1, -1, -1, -1, -1, 142, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, -1,
+ -1, -1, -1, 88, 89, -1, -1, -1, 93, -1,
+ -1, -1, -1, -1, -1, -1, 101, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 122, -1, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 72,
+ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
+ 83, -1, -1, -1, -1, 88, 89, -1, -1, -1,
+ 93, -1, -1, -1, -1, -1, -1, -1, 101, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 122, -1, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, -1, -1, -1, -1, -1, -1, -1, -1,
- 142, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
+ -1, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, -1, -1, -1, -1, 88, 89, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
101, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 122, -1, 124, 125, 126, 127, 128, 129, 130,
- 131, 132, 133, -1, -1, -1, -1, -1, -1, -1,
- -1, 142, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, -1, -1, -1, -1, 88, 89,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 101, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 122, -1, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, -1, -1, -1, -1, -1, -1,
- -1, -1, 142, 72, 73, 74, 75, 76, 77, 78,
+ 131, 132, 133, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, -1, -1, -1, -1, 88,
89, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 101, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 122, -1, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, -1, -1, -1, -1, -1,
- -1, -1, -1, 142, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, -1, -1, -1, -1,
- 88, 89, -1, -1, -1, 93, -1, -1, -1, -1,
- -1, -1, -1, 101, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 122, -1, 124, 125, 126, 127,
- 128, 129, 130, 131, 132, 133, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, -1, -1,
- -1, -1, 88, 89, -1, -1, -1, 93, -1, -1,
- -1, -1, -1, -1, -1, 101, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 122, -1, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- -1, -1, -1, -1, 88, 89, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 101, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 122, -1,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, -1, -1, -1, -1, 88, 89, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 101,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133
+ -1, -1, -1, -1, -1, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -5013,92 +5156,93 @@ static const yytype_int16 yystos[] =
76, 77, 80, 81, 86, 87, 88, 89, 100, 101,
102, 124, 125, 126, 127, 128, 129, 130, 131, 132,
133, 135, 136, 143, 144, 183, 187, 188, 274, 306,
- 204, 91, 163, 167, 180, 189, 220, 272, 273, 275,
- 167, 210, 212, 69, 91, 173, 180, 220, 225, 272,
- 275, 33, 34, 35, 36, 48, 49, 50, 51, 55,
- 106, 183, 184, 185, 268, 115, 118, 119, 146, 148,
- 167, 262, 263, 264, 318, 322, 323, 324, 51, 100,
- 102, 103, 135, 172, 189, 195, 198, 201, 254, 309,
- 311, 195, 195, 144, 192, 193, 196, 197, 325, 192,
- 196, 144, 319, 323, 184, 155, 138, 189, 220, 189,
- 189, 189, 55, 1, 94, 157, 158, 159, 174, 175,
- 325, 205, 207, 190, 201, 309, 325, 189, 308, 309,
- 325, 91, 142, 179, 220, 272, 275, 208, 53, 54,
- 56, 63, 107, 183, 269, 63, 64, 65, 116, 117,
- 255, 256, 61, 255, 62, 255, 63, 255, 63, 255,
- 58, 59, 168, 189, 189, 318, 324, 40, 41, 42,
- 43, 44, 37, 38, 51, 53, 54, 55, 56, 69,
- 94, 100, 101, 102, 103, 128, 131, 144, 278, 279,
- 280, 281, 282, 285, 286, 287, 288, 290, 291, 292,
- 293, 295, 296, 297, 300, 301, 302, 303, 304, 325,
- 279, 280, 28, 239, 121, 142, 94, 100, 176, 121,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 88, 89, 93, 101, 122, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 90, 105, 140,
- 147, 316, 90, 316, 317, 26, 138, 243, 254, 92,
- 92, 192, 196, 243, 163, 51, 55, 181, 58, 59,
- 279, 125, 276, 90, 140, 316, 219, 307, 90, 147,
- 315, 156, 157, 55, 16, 221, 322, 121, 90, 140,
- 316, 92, 92, 221, 167, 167, 55, 90, 140, 316,
- 25, 107, 142, 265, 318, 115, 264, 20, 246, 322,
- 57, 310, 189, 189, 189, 93, 142, 199, 200, 325,
- 310, 199, 200, 85, 194, 195, 201, 309, 325, 195,
- 163, 318, 320, 163, 160, 138, 157, 90, 316, 92,
- 159, 174, 145, 318, 324, 320, 159, 320, 141, 200,
- 321, 324, 200, 321, 139, 321, 55, 176, 177, 178,
- 142, 90, 140, 316, 144, 237, 290, 63, 255, 257,
- 261, 262, 63, 256, 61, 62, 63, 63, 101, 101,
- 154, 167, 167, 167, 167, 159, 163, 163, 57, 121,
- 294, 85, 290, 295, 121, 156, 189, 142, 305, 325,
- 51, 142, 305, 322, 142, 289, 189, 142, 289, 51,
- 142, 289, 51, 121, 156, 240, 100, 168, 189, 201,
- 202, 174, 142, 179, 142, 161, 162, 168, 180, 189,
- 191, 202, 220, 275, 189, 189, 189, 189, 189, 189,
- 189, 189, 189, 189, 189, 189, 189, 189, 51, 189,
+ 204, 91, 163, 164, 165, 167, 180, 189, 220, 272,
+ 273, 275, 167, 210, 212, 69, 91, 173, 180, 220,
+ 225, 272, 275, 33, 34, 35, 36, 48, 49, 50,
+ 51, 55, 106, 183, 184, 185, 268, 115, 118, 119,
+ 146, 148, 167, 262, 263, 264, 318, 322, 323, 324,
+ 51, 100, 102, 103, 135, 172, 189, 195, 198, 201,
+ 254, 309, 311, 195, 195, 144, 192, 193, 196, 197,
+ 325, 192, 196, 144, 319, 323, 184, 155, 138, 189,
+ 220, 189, 189, 189, 55, 1, 94, 157, 158, 159,
+ 174, 175, 325, 205, 207, 190, 201, 309, 325, 189,
+ 308, 309, 325, 91, 142, 179, 220, 272, 275, 208,
+ 53, 54, 56, 63, 107, 183, 269, 63, 64, 65,
+ 116, 117, 255, 256, 61, 255, 62, 255, 63, 255,
+ 63, 255, 58, 59, 168, 189, 189, 318, 324, 40,
+ 41, 42, 43, 44, 37, 38, 51, 53, 54, 55,
+ 56, 69, 94, 100, 101, 102, 103, 128, 131, 144,
+ 278, 279, 280, 281, 282, 285, 286, 287, 288, 290,
+ 291, 292, 293, 295, 296, 297, 300, 301, 302, 303,
+ 304, 325, 278, 280, 28, 239, 121, 142, 94, 100,
+ 176, 121, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 88, 89, 93, 101, 122, 124,
+ 125, 126, 127, 128, 129, 130, 131, 132, 133, 90,
+ 105, 140, 147, 316, 90, 316, 317, 26, 138, 243,
+ 254, 92, 92, 192, 196, 243, 163, 51, 55, 181,
+ 58, 59, 279, 125, 276, 90, 140, 316, 219, 307,
+ 90, 147, 315, 156, 157, 55, 278, 278, 16, 221,
+ 322, 121, 90, 140, 316, 92, 92, 221, 167, 167,
+ 55, 90, 140, 316, 25, 107, 142, 265, 318, 115,
+ 264, 20, 246, 322, 57, 310, 189, 189, 189, 93,
+ 142, 199, 200, 325, 310, 199, 200, 85, 194, 195,
+ 201, 309, 325, 195, 163, 318, 320, 163, 160, 138,
+ 157, 90, 316, 92, 159, 174, 145, 318, 324, 320,
+ 159, 320, 141, 200, 321, 324, 200, 321, 139, 321,
+ 55, 176, 177, 178, 142, 90, 140, 316, 144, 237,
+ 290, 63, 255, 257, 261, 262, 63, 256, 61, 62,
+ 63, 63, 101, 101, 154, 167, 167, 167, 167, 159,
+ 163, 163, 57, 121, 294, 85, 290, 295, 121, 156,
+ 189, 142, 305, 325, 51, 142, 305, 322, 142, 289,
+ 189, 142, 289, 51, 142, 289, 51, 121, 156, 240,
+ 100, 168, 189, 201, 202, 174, 142, 179, 142, 161,
+ 162, 168, 180, 189, 191, 202, 220, 275, 189, 189,
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
- 189, 51, 52, 55, 187, 192, 313, 314, 194, 201,
- 51, 52, 55, 187, 192, 313, 51, 55, 313, 245,
- 244, 162, 189, 191, 162, 191, 99, 170, 217, 277,
- 216, 51, 55, 181, 313, 194, 313, 156, 163, 166,
- 15, 13, 248, 325, 157, 16, 51, 55, 194, 51,
- 55, 157, 27, 222, 322, 222, 51, 55, 194, 51,
- 55, 214, 186, 157, 246, 189, 201, 15, 261, 189,
- 189, 319, 100, 189, 198, 309, 189, 311, 320, 145,
- 318, 200, 200, 320, 145, 184, 152, 139, 191, 320,
- 159, 206, 309, 176, 178, 51, 55, 194, 51, 55,
- 290, 209, 63, 157, 262, 189, 189, 51, 100, 226,
- 295, 320, 320, 142, 189, 15, 51, 282, 287, 304,
- 288, 293, 300, 302, 295, 297, 302, 51, 295, 189,
- 15, 79, 126, 231, 232, 325, 189, 200, 320, 178,
- 142, 44, 121, 44, 90, 140, 316, 319, 92, 92,
- 192, 196, 141, 200, 92, 92, 193, 196, 193, 196,
- 231, 231, 171, 322, 167, 156, 141, 15, 320, 183,
- 189, 202, 249, 325, 18, 224, 325, 17, 223, 224,
- 92, 92, 141, 92, 92, 224, 211, 213, 141, 167,
- 184, 139, 15, 200, 221, 261, 189, 199, 85, 309,
- 139, 320, 321, 141, 234, 319, 29, 113, 238, 139,
- 142, 292, 320, 142, 85, 44, 305, 142, 289, 142,
- 289, 142, 289, 142, 289, 289, 44, 228, 230, 233,
+ 189, 189, 51, 189, 189, 189, 189, 189, 189, 189,
+ 189, 189, 189, 189, 189, 51, 52, 55, 187, 192,
+ 313, 314, 194, 201, 51, 52, 55, 187, 192, 313,
+ 51, 55, 313, 245, 244, 162, 189, 191, 162, 191,
+ 99, 170, 217, 277, 216, 51, 55, 181, 313, 194,
+ 313, 156, 163, 166, 15, 13, 248, 325, 121, 121,
+ 157, 16, 51, 55, 194, 51, 55, 157, 27, 222,
+ 322, 222, 51, 55, 194, 51, 55, 214, 186, 157,
+ 246, 189, 201, 15, 261, 189, 189, 319, 100, 189,
+ 198, 309, 189, 311, 320, 145, 318, 200, 200, 320,
+ 145, 184, 152, 139, 191, 320, 159, 206, 309, 176,
+ 178, 51, 55, 194, 51, 55, 290, 209, 63, 157,
+ 262, 189, 189, 51, 100, 226, 295, 320, 320, 142,
+ 172, 189, 15, 51, 282, 287, 304, 288, 293, 300,
+ 302, 295, 297, 302, 51, 295, 172, 189, 15, 79,
+ 126, 231, 232, 325, 189, 200, 320, 178, 142, 44,
+ 121, 44, 90, 140, 316, 319, 92, 92, 192, 196,
+ 141, 200, 92, 92, 193, 196, 193, 196, 231, 231,
+ 171, 322, 167, 156, 141, 15, 320, 183, 189, 202,
+ 249, 325, 18, 224, 325, 17, 223, 224, 92, 92,
+ 141, 92, 92, 224, 211, 213, 141, 167, 184, 139,
+ 15, 200, 221, 261, 189, 199, 85, 309, 139, 320,
+ 321, 141, 234, 319, 29, 113, 238, 139, 142, 292,
+ 320, 142, 85, 44, 44, 305, 142, 289, 142, 289,
+ 142, 289, 142, 289, 289, 44, 44, 228, 230, 233,
281, 283, 284, 287, 295, 296, 298, 299, 302, 304,
156, 100, 189, 178, 159, 189, 51, 55, 194, 51,
55, 57, 123, 162, 191, 168, 191, 170, 92, 162,
191, 162, 191, 170, 243, 239, 156, 157, 231, 218,
322, 15, 93, 250, 325, 157, 14, 251, 325, 167,
15, 92, 15, 157, 157, 222, 189, 157, 320, 200,
- 145, 146, 156, 157, 227, 142, 100, 320, 189, 295,
- 302, 295, 295, 189, 234, 234, 91, 220, 142, 305,
- 305, 142, 229, 220, 142, 229, 142, 229, 15, 189,
- 141, 189, 189, 162, 191, 15, 139, 157, 156, 91,
- 180, 220, 272, 275, 221, 157, 221, 15, 15, 215,
- 224, 246, 247, 51, 235, 236, 291, 15, 139, 295,
- 295, 142, 292, 289, 142, 289, 289, 289, 126, 126,
- 55, 90, 283, 287, 142, 228, 229, 299, 302, 295,
- 298, 302, 295, 139, 15, 55, 90, 140, 316, 157,
- 157, 157, 142, 319, 142, 295, 142, 295, 51, 55,
- 305, 142, 229, 142, 229, 142, 229, 142, 229, 229,
- 51, 55, 194, 51, 55, 248, 223, 15, 236, 295,
- 289, 295, 302, 295, 295, 141, 229, 142, 229, 229,
- 229, 295, 229
+ 145, 146, 156, 157, 227, 142, 100, 320, 189, 189,
+ 295, 302, 295, 295, 189, 189, 234, 234, 91, 220,
+ 142, 305, 305, 142, 229, 220, 142, 229, 142, 229,
+ 15, 189, 141, 189, 189, 162, 191, 15, 139, 157,
+ 156, 91, 180, 220, 272, 275, 221, 157, 221, 15,
+ 15, 215, 224, 246, 247, 51, 235, 236, 291, 15,
+ 139, 295, 295, 142, 292, 289, 142, 289, 289, 289,
+ 126, 126, 55, 90, 283, 287, 142, 228, 229, 299,
+ 302, 295, 298, 302, 295, 139, 15, 55, 90, 140,
+ 316, 157, 157, 157, 142, 319, 142, 295, 142, 295,
+ 51, 55, 305, 142, 229, 142, 229, 142, 229, 142,
+ 229, 229, 51, 55, 194, 51, 55, 248, 223, 15,
+ 236, 295, 289, 295, 302, 295, 295, 141, 229, 142,
+ 229, 229, 229, 295, 229
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -5108,63 +5252,64 @@ static const yytype_int16 yyr1[] =
155, 154, 156, 157, 158, 158, 158, 158, 160, 159,
159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
159, 159, 159, 159, 161, 161, 161, 161, 161, 161,
- 161, 161, 162, 162, 162, 163, 163, 163, 163, 163,
- 163, 164, 166, 165, 167, 168, 168, 169, 169, 171,
- 170, 172, 172, 172, 172, 172, 172, 172, 172, 172,
- 172, 172, 173, 173, 174, 174, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 176, 176, 177, 177,
- 178, 178, 179, 179, 179, 179, 179, 179, 179, 179,
- 180, 180, 180, 180, 180, 180, 180, 180, 180, 181,
- 181, 182, 182, 182, 183, 183, 183, 183, 183, 184,
- 184, 185, 186, 185, 187, 187, 187, 187, 187, 187,
+ 161, 161, 161, 161, 161, 161, 162, 162, 162, 163,
+ 163, 163, 163, 163, 163, 164, 166, 165, 167, 168,
+ 168, 169, 169, 171, 170, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 173, 173, 174, 174,
+ 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
+ 176, 176, 177, 177, 178, 178, 179, 179, 179, 179,
+ 179, 179, 179, 179, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 181, 181, 182, 182, 182, 183, 183,
+ 183, 183, 183, 184, 184, 185, 186, 185, 187, 187,
187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
- 187, 187, 187, 187, 188, 188, 188, 188, 188, 188,
+ 187, 187, 187, 187, 187, 187, 187, 187, 188, 188,
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
- 188, 188, 188, 188, 189, 189, 189, 189, 189, 189,
+ 188, 188, 188, 188, 188, 188, 188, 188, 189, 189,
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
- 189, 189, 189, 189, 189, 190, 190, 190, 190, 191,
- 191, 192, 192, 192, 193, 193, 194, 194, 194, 194,
- 194, 195, 195, 195, 195, 195, 197, 196, 198, 199,
- 199, 200, 200, 201, 201, 201, 201, 202, 202, 202,
- 203, 203, 203, 203, 203, 203, 203, 203, 203, 204,
- 203, 205, 206, 203, 207, 203, 203, 203, 203, 203,
- 203, 203, 203, 203, 203, 203, 203, 203, 208, 209,
- 203, 203, 203, 210, 211, 203, 212, 213, 203, 203,
- 203, 214, 215, 203, 216, 203, 217, 218, 203, 219,
- 203, 203, 203, 203, 203, 203, 203, 220, 221, 221,
- 221, 222, 222, 223, 223, 224, 224, 225, 225, 226,
- 226, 226, 226, 226, 226, 226, 226, 227, 226, 228,
- 228, 228, 228, 229, 229, 230, 230, 230, 230, 230,
+ 189, 189, 189, 189, 189, 189, 189, 189, 189, 190,
+ 190, 190, 190, 191, 191, 192, 192, 192, 193, 193,
+ 194, 194, 194, 194, 194, 195, 195, 195, 195, 195,
+ 197, 196, 198, 199, 199, 200, 200, 201, 201, 201,
+ 201, 202, 202, 202, 203, 203, 203, 203, 203, 203,
+ 203, 203, 203, 204, 203, 205, 206, 203, 207, 203,
+ 203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
+ 203, 203, 208, 209, 203, 203, 203, 210, 211, 203,
+ 212, 213, 203, 203, 203, 214, 215, 203, 216, 203,
+ 217, 218, 203, 219, 203, 203, 203, 203, 203, 203,
+ 203, 220, 221, 221, 221, 222, 222, 223, 223, 224,
+ 224, 225, 225, 226, 226, 226, 226, 226, 226, 226,
+ 226, 227, 226, 228, 228, 228, 228, 229, 229, 230,
230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
- 231, 231, 233, 232, 232, 232, 234, 234, 235, 235,
- 236, 236, 237, 237, 238, 238, 240, 239, 241, 241,
- 241, 241, 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 244, 243, 245, 243, 246, 247, 247, 248, 248,
- 249, 249, 249, 250, 250, 251, 251, 252, 252, 252,
- 252, 253, 253, 254, 254, 254, 254, 255, 255, 256,
- 257, 256, 256, 256, 258, 258, 259, 259, 260, 261,
- 261, 262, 262, 263, 263, 264, 265, 264, 266, 266,
- 267, 267, 268, 269, 269, 269, 269, 269, 269, 270,
- 270, 271, 271, 271, 271, 272, 272, 272, 272, 272,
- 273, 273, 274, 274, 274, 274, 274, 274, 274, 274,
- 275, 275, 276, 277, 276, 278, 278, 279, 279, 279,
- 280, 280, 281, 282, 282, 283, 283, 284, 284, 285,
- 285, 286, 286, 287, 287, 288, 288, 288, 288, 289,
- 289, 290, 290, 290, 290, 290, 290, 290, 290, 290,
- 290, 290, 290, 290, 290, 290, 291, 291, 291, 291,
- 291, 292, 292, 293, 294, 293, 295, 295, 296, 297,
- 298, 299, 299, 300, 300, 301, 301, 302, 302, 303,
- 303, 304, 305, 305, 306, 307, 306, 308, 308, 309,
- 309, 310, 310, 311, 311, 311, 311, 312, 312, 312,
- 313, 313, 313, 313, 314, 314, 314, 315, 315, 316,
- 316, 317, 317, 318, 318, 319, 319, 320, 321, 321,
- 321, 322, 322, 322, 323, 324, 324, 325
+ 230, 230, 230, 230, 231, 231, 233, 232, 232, 232,
+ 234, 234, 235, 235, 236, 236, 237, 237, 238, 238,
+ 240, 239, 241, 241, 241, 241, 242, 242, 242, 242,
+ 242, 242, 242, 242, 242, 244, 243, 245, 243, 246,
+ 247, 247, 248, 248, 249, 249, 249, 250, 250, 251,
+ 251, 252, 252, 252, 252, 253, 253, 254, 254, 254,
+ 254, 255, 255, 256, 257, 256, 256, 256, 258, 258,
+ 259, 259, 260, 261, 261, 262, 262, 263, 263, 264,
+ 265, 264, 266, 266, 267, 267, 268, 269, 269, 269,
+ 269, 269, 269, 270, 270, 271, 271, 271, 271, 272,
+ 272, 272, 272, 272, 273, 273, 274, 274, 274, 274,
+ 274, 274, 274, 274, 275, 275, 276, 277, 276, 278,
+ 278, 279, 279, 279, 280, 280, 281, 282, 282, 283,
+ 283, 284, 284, 285, 285, 286, 286, 287, 287, 288,
+ 288, 288, 288, 289, 289, 290, 290, 290, 290, 290,
+ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
+ 291, 291, 291, 291, 291, 292, 292, 293, 294, 293,
+ 295, 295, 296, 297, 298, 299, 299, 300, 300, 301,
+ 301, 302, 302, 303, 303, 304, 305, 305, 306, 307,
+ 306, 308, 308, 309, 309, 310, 310, 311, 311, 311,
+ 311, 312, 312, 312, 313, 313, 313, 313, 314, 314,
+ 314, 315, 315, 316, 316, 317, 317, 318, 318, 319,
+ 319, 320, 321, 321, 321, 322, 322, 322, 323, 324,
+ 324, 325
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -5174,63 +5319,64 @@ static const yytype_int8 yyr2[] =
0, 5, 4, 2, 1, 1, 3, 2, 0, 4,
2, 3, 3, 3, 3, 3, 4, 1, 3, 3,
3, 3, 3, 1, 3, 3, 6, 5, 5, 5,
- 5, 3, 1, 3, 1, 1, 3, 3, 3, 2,
- 1, 2, 0, 5, 1, 1, 1, 1, 4, 0,
- 5, 2, 3, 4, 5, 4, 5, 2, 2, 2,
- 2, 2, 1, 3, 1, 3, 1, 2, 3, 5,
- 2, 4, 2, 4, 1, 3, 1, 3, 2, 3,
- 1, 2, 1, 4, 3, 3, 3, 3, 2, 1,
- 1, 4, 3, 3, 3, 3, 2, 1, 1, 1,
- 1, 2, 1, 3, 1, 1, 1, 1, 1, 1,
- 1, 1, 0, 4, 1, 1, 1, 1, 1, 1,
+ 5, 4, 6, 4, 6, 3, 1, 3, 1, 1,
+ 3, 3, 3, 2, 1, 2, 0, 5, 1, 1,
+ 1, 1, 4, 0, 5, 2, 3, 4, 5, 4,
+ 5, 2, 2, 2, 2, 2, 1, 3, 1, 3,
+ 1, 2, 3, 5, 2, 4, 2, 4, 1, 3,
+ 1, 3, 2, 3, 1, 2, 1, 4, 3, 3,
+ 3, 3, 2, 1, 1, 4, 3, 3, 3, 3,
+ 2, 1, 1, 1, 1, 2, 1, 3, 1, 1,
+ 1, 1, 1, 1, 1, 1, 0, 4, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 3, 3, 6, 5, 5, 5,
- 5, 4, 3, 3, 2, 2, 3, 2, 2, 3,
- 3, 3, 3, 3, 3, 4, 4, 2, 2, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 2, 2, 3, 3, 3, 3, 6, 6,
- 4, 6, 4, 6, 1, 1, 2, 4, 2, 1,
- 3, 3, 5, 3, 1, 1, 1, 2, 2, 4,
- 2, 1, 2, 2, 4, 1, 0, 2, 2, 2,
- 1, 1, 3, 1, 2, 3, 4, 3, 4, 2,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
- 4, 0, 0, 5, 0, 3, 3, 3, 2, 3,
- 3, 1, 2, 4, 3, 2, 1, 2, 0, 0,
- 5, 6, 6, 0, 0, 7, 0, 0, 7, 5,
- 4, 0, 0, 9, 0, 6, 0, 0, 8, 0,
- 5, 4, 4, 1, 1, 1, 1, 1, 1, 1,
- 2, 1, 1, 1, 5, 1, 2, 1, 1, 1,
- 4, 6, 3, 5, 2, 4, 1, 0, 4, 4,
- 2, 2, 1, 2, 0, 6, 8, 4, 6, 4,
- 3, 6, 2, 4, 6, 2, 4, 2, 4, 1,
- 1, 1, 0, 4, 1, 4, 1, 4, 1, 3,
- 1, 1, 4, 1, 3, 3, 0, 5, 2, 4,
- 5, 5, 2, 4, 4, 3, 3, 3, 2, 1,
- 4, 0, 5, 0, 5, 5, 1, 1, 6, 1,
- 1, 1, 1, 2, 1, 2, 1, 1, 1, 1,
- 1, 1, 2, 1, 1, 2, 3, 1, 2, 1,
- 0, 4, 1, 2, 2, 3, 2, 3, 1, 1,
- 2, 1, 2, 1, 2, 1, 0, 4, 2, 3,
- 1, 4, 2, 1, 1, 1, 1, 1, 2, 2,
- 3, 1, 1, 2, 2, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 0, 0, 4, 1, 1, 3, 5, 3,
- 1, 2, 2, 2, 1, 2, 1, 1, 3, 1,
- 3, 1, 1, 2, 1, 4, 2, 2, 1, 2,
- 0, 6, 8, 4, 6, 4, 6, 2, 4, 6,
- 2, 4, 2, 4, 1, 0, 1, 1, 1, 1,
- 1, 1, 1, 1, 0, 4, 1, 3, 2, 2,
- 2, 1, 3, 1, 3, 1, 1, 2, 1, 1,
- 1, 2, 2, 1, 1, 0, 4, 1, 2, 1,
- 3, 1, 2, 3, 3, 3, 2, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
+ 6, 5, 5, 5, 5, 4, 3, 3, 2, 2,
+ 3, 2, 2, 3, 3, 3, 3, 3, 3, 4,
+ 4, 2, 2, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 2, 2, 3, 3,
+ 3, 3, 6, 6, 4, 6, 4, 6, 1, 1,
+ 2, 4, 2, 1, 3, 3, 5, 3, 1, 1,
+ 1, 2, 2, 4, 2, 1, 2, 2, 4, 1,
+ 0, 2, 2, 2, 1, 1, 3, 1, 2, 3,
+ 4, 3, 4, 2, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 0, 4, 0, 0, 5, 0, 3,
+ 3, 3, 2, 3, 3, 1, 2, 4, 3, 2,
+ 1, 2, 0, 0, 5, 6, 6, 0, 0, 7,
+ 0, 0, 7, 5, 4, 0, 0, 9, 0, 6,
+ 0, 0, 8, 0, 5, 4, 4, 1, 1, 1,
+ 1, 1, 1, 1, 2, 1, 1, 1, 5, 1,
+ 2, 1, 1, 1, 4, 6, 3, 5, 2, 4,
+ 1, 0, 4, 4, 2, 2, 1, 2, 0, 6,
+ 8, 4, 6, 4, 3, 6, 2, 4, 6, 2,
+ 4, 2, 4, 1, 1, 1, 0, 4, 1, 4,
+ 1, 4, 1, 3, 1, 1, 4, 1, 3, 3,
+ 0, 5, 2, 4, 5, 5, 2, 4, 4, 3,
+ 3, 3, 2, 1, 4, 0, 5, 0, 5, 5,
+ 1, 1, 6, 1, 1, 1, 1, 2, 1, 2,
+ 1, 1, 1, 1, 1, 1, 2, 1, 1, 2,
+ 3, 1, 2, 1, 0, 4, 1, 2, 2, 3,
+ 2, 3, 1, 1, 2, 1, 2, 1, 2, 1,
+ 0, 4, 2, 3, 1, 4, 2, 1, 1, 1,
+ 1, 1, 2, 2, 3, 1, 1, 2, 2, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 0, 1, 0, 1, 2, 0, 1,
- 1, 1, 1, 1, 1, 1, 2, 0
+ 1, 1, 1, 1, 1, 1, 0, 0, 4, 1,
+ 1, 3, 5, 3, 1, 2, 2, 2, 1, 2,
+ 1, 1, 3, 1, 3, 1, 1, 2, 1, 4,
+ 2, 2, 1, 2, 0, 6, 8, 4, 6, 4,
+ 6, 2, 4, 6, 2, 4, 2, 4, 1, 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
+ 1, 3, 2, 2, 2, 1, 3, 1, 3, 1,
+ 1, 2, 1, 1, 1, 2, 2, 1, 1, 0,
+ 4, 1, 2, 1, 3, 1, 2, 3, 3, 3,
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 0, 1, 0,
+ 1, 2, 0, 1, 1, 1, 1, 1, 1, 1,
+ 2, 0
};
@@ -5937,7 +6083,7 @@ yyreduce:
p->lstate = EXPR_BEG;
if (!p->locals) p->locals = cons(0,0);
}
-#line 5941 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6087 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 3:
@@ -5946,7 +6092,7 @@ yyreduce:
p->tree = new_scope(p, (yyvsp[0].nd));
NODE_LINENO(p->tree, (yyvsp[0].nd));
}
-#line 5950 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6096 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 4:
@@ -5954,7 +6100,7 @@ yyreduce:
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 5958 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6104 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 5:
@@ -5962,7 +6108,7 @@ yyreduce:
{
(yyval.nd) = new_begin(p, 0);
}
-#line 5966 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6112 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 6:
@@ -5971,7 +6117,7 @@ yyreduce:
(yyval.nd) = new_begin(p, (yyvsp[0].nd));
NODE_LINENO((yyval.nd), (yyvsp[0].nd));
}
-#line 5975 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6121 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 7:
@@ -5979,7 +6125,7 @@ yyreduce:
{
(yyval.nd) = push((yyvsp[-2].nd), newline_node((yyvsp[0].nd)));
}
-#line 5983 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6129 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 8:
@@ -5987,7 +6133,7 @@ yyreduce:
{
(yyval.nd) = new_begin(p, 0);
}
-#line 5991 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6137 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 10:
@@ -5996,7 +6142,7 @@ yyreduce:
(yyval.nd) = local_switch(p);
nvars_block(p);
}
-#line 6000 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6146 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 11:
@@ -6007,7 +6153,7 @@ yyreduce:
nvars_unnest(p);
(yyval.nd) = 0;
}
-#line 6011 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6157 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 12:
@@ -6033,7 +6179,7 @@ yyreduce:
}
}
}
-#line 6037 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6183 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 13:
@@ -6041,7 +6187,7 @@ yyreduce:
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 6045 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6191 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 14:
@@ -6049,7 +6195,7 @@ yyreduce:
{
(yyval.nd) = new_begin(p, 0);
}
-#line 6053 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6199 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 15:
@@ -6058,7 +6204,7 @@ yyreduce:
(yyval.nd) = new_begin(p, (yyvsp[0].nd));
NODE_LINENO((yyval.nd), (yyvsp[0].nd));
}
-#line 6062 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6208 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 16:
@@ -6066,7 +6212,7 @@ yyreduce:
{
(yyval.nd) = push((yyvsp[-2].nd), newline_node((yyvsp[0].nd)));
}
-#line 6070 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6216 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 17:
@@ -6074,13 +6220,13 @@ yyreduce:
{
(yyval.nd) = new_begin(p, (yyvsp[0].nd));
}
-#line 6078 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6224 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 18:
#line 1668 "mrbgems/mruby-compiler/core/parse.y"
{p->lstate = EXPR_FNAME;}
-#line 6084 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6230 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 19:
@@ -6088,7 +6234,7 @@ yyreduce:
{
(yyval.nd) = new_alias(p, (yyvsp[-2].id), (yyvsp[0].id));
}
-#line 6092 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6238 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 20:
@@ -6096,7 +6242,7 @@ yyreduce:
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 6100 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6246 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 21:
@@ -6104,7 +6250,7 @@ yyreduce:
{
(yyval.nd) = new_if(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd), 0);
}
-#line 6108 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6254 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 22:
@@ -6112,7 +6258,7 @@ yyreduce:
{
(yyval.nd) = new_unless(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd), 0);
}
-#line 6116 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6262 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 23:
@@ -6120,7 +6266,7 @@ yyreduce:
{
(yyval.nd) = new_while(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd));
}
-#line 6124 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6270 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 24:
@@ -6128,7 +6274,7 @@ yyreduce:
{
(yyval.nd) = new_until(p, cond((yyvsp[0].nd)), (yyvsp[-2].nd));
}
-#line 6132 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6278 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 25:
@@ -6136,7 +6282,7 @@ yyreduce:
{
(yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 6140 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6286 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 26:
@@ -6145,7 +6291,7 @@ yyreduce:
yyerror(p, "END not supported");
(yyval.nd) = new_postexe(p, (yyvsp[-1].nd));
}
-#line 6149 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6295 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 28:
@@ -6153,7 +6299,7 @@ yyreduce:
{
(yyval.nd) = new_masgn(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 6157 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6303 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 29:
@@ -6161,7 +6307,7 @@ yyreduce:
{
(yyval.nd) = new_asgn(p, (yyvsp[-2].nd), new_array(p, (yyvsp[0].nd)));
}
-#line 6165 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6311 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 30:
@@ -6169,7 +6315,7 @@ yyreduce:
{
(yyval.nd) = new_masgn(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 6173 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6319 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 31:
@@ -6177,7 +6323,7 @@ yyreduce:
{
(yyval.nd) = new_masgn(p, (yyvsp[-2].nd), new_array(p, (yyvsp[0].nd)));
}
-#line 6181 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6327 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 32:
@@ -6188,7 +6334,7 @@ yyreduce:
assignable(p, lhs);
(yyval.nd) = new_asgn(p, lhs, (yyvsp[-2].nd));
}
-#line 6192 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6338 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 34:
@@ -6196,7 +6342,7 @@ yyreduce:
{
(yyval.nd) = new_asgn(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 6200 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6346 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 35:
@@ -6204,7 +6350,7 @@ yyreduce:
{
(yyval.nd) = new_op_asgn(p, (yyvsp[-2].nd), (yyvsp[-1].id), (yyvsp[0].nd));
}
-#line 6208 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6354 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 36:
@@ -6212,7 +6358,7 @@ yyreduce:
{
(yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), intern_op(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd));
}
-#line 6216 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6362 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 37:
@@ -6220,7 +6366,7 @@ yyreduce:
{
(yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd));
}
-#line 6224 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6370 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 38:
@@ -6228,7 +6374,7 @@ yyreduce:
{
(yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd));
}
-#line 6232 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6378 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 39:
@@ -6237,7 +6383,7 @@ yyreduce:
yyerror(p, "constant re-assignment");
(yyval.nd) = 0;
}
-#line 6241 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6387 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 40:
@@ -6245,79 +6391,133 @@ yyreduce:
{
(yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, tCOLON2), (yyvsp[-1].id), (yyvsp[0].nd));
}
-#line 6249 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6395 "mrbgems/mruby-compiler/core/y.tab.c"
break;
case 41:
#line 1758 "mrbgems/mruby-compiler/core/parse.y"
{
+ (yyval.nd) = (yyvsp[-3].nd);
+ endless_method_name(p, (yyvsp[-3].nd));
+ void_expr_error(p, (yyvsp[0].nd));
+ defn_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[0].nd));
+ nvars_unnest(p);
+ p->in_def--;
+ }
+#line 6408 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 42:
+#line 1767 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = (yyvsp[-5].nd);
+ endless_method_name(p, (yyvsp[-5].nd));
+ void_expr_error(p, (yyvsp[-2].nd));
+ void_expr_error(p, (yyvsp[0].nd));
+ defn_setup(p, (yyval.nd), (yyvsp[-4].nd), new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)));
+ nvars_unnest(p);
+ p->in_def--;
+ }
+#line 6422 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 43:
+#line 1777 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = (yyvsp[-3].nd);
+ void_expr_error(p, (yyvsp[0].nd));
+ defs_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[0].nd));
+ nvars_unnest(p);
+ p->in_def--;
+ p->in_single--;
+ }
+#line 6435 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 44:
+#line 1786 "mrbgems/mruby-compiler/core/parse.y"
+ {
+ (yyval.nd) = (yyvsp[-5].nd);
+ void_expr_error(p, (yyvsp[-2].nd));
+ void_expr_error(p, (yyvsp[0].nd));
+ defs_setup(p, (yyval.nd), (yyvsp[-4].nd), new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd)));
+ nvars_unnest(p);
+ p->in_def--;
+ p->in_single--;
+ }
+#line 6449 "mrbgems/mruby-compiler/core/y.tab.c"
+ break;
+
+ case 45:
+#line 1796 "mrbgems/mruby-compiler/core/parse.y"
+ {
backref_error(p, (yyvsp[-2].nd));
(yyval.nd) = new_begin(p, 0);
}
-#line 6258 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6458 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 43:
-#line 1766 "mrbgems/mruby-compiler/core/parse.y"
+ case 47:
+#line 1804 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 6266 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6466 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 46:
-#line 1775 "mrbgems/mruby-compiler/core/parse.y"
+ case 50:
+#line 1813 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 6274 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6474 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 47:
-#line 1779 "mrbgems/mruby-compiler/core/parse.y"
+ case 51:
+#line 1817 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 6282 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6482 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 48:
-#line 1783 "mrbgems/mruby-compiler/core/parse.y"
+ case 52:
+#line 1821 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!");
}
-#line 6290 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6490 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 49:
-#line 1787 "mrbgems/mruby-compiler/core/parse.y"
+ case 53:
+#line 1825 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!");
}
-#line 6298 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6498 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 51:
-#line 1795 "mrbgems/mruby-compiler/core/parse.y"
+ case 55:
+#line 1833 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_def(p, (yyvsp[0].id), nint(p->cmdarg_stack), local_switch(p));
p->cmdarg_stack = 0;
p->in_def++;
nvars_block(p);
}
-#line 6309 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6509 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 52:
-#line 1804 "mrbgems/mruby-compiler/core/parse.y"
+ case 56:
+#line 1842 "mrbgems/mruby-compiler/core/parse.y"
{
p->lstate = EXPR_FNAME;
}
-#line 6317 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6517 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 53:
-#line 1808 "mrbgems/mruby-compiler/core/parse.y"
+ case 57:
+#line 1846 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_sdef(p, (yyvsp[-3].nd), (yyvsp[0].id), nint(p->cmdarg_stack), local_switch(p));
p->cmdarg_stack = 0;
@@ -6326,1054 +6526,1054 @@ yyreduce:
nvars_block(p);
p->lstate = EXPR_ENDFN; /* force for args */
}
-#line 6330 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6530 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 54:
-#line 1819 "mrbgems/mruby-compiler/core/parse.y"
+ case 58:
+#line 1857 "mrbgems/mruby-compiler/core/parse.y"
{
if (!(yyvsp[0].nd)) (yyval.nd) = new_nil(p);
else {
(yyval.nd) = (yyvsp[0].nd);
}
}
-#line 6341 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6541 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 58:
-#line 1833 "mrbgems/mruby-compiler/core/parse.y"
+ case 62:
+#line 1871 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num));
}
-#line 6349 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6549 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 59:
-#line 1839 "mrbgems/mruby-compiler/core/parse.y"
+ case 63:
+#line 1877 "mrbgems/mruby-compiler/core/parse.y"
{
local_nest(p);
nvars_nest(p);
}
-#line 6358 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6558 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 60:
-#line 1846 "mrbgems/mruby-compiler/core/parse.y"
+ case 64:
+#line 1884 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_block(p, (yyvsp[-2].nd), (yyvsp[-1].nd));
local_unnest(p);
nvars_unnest(p);
}
-#line 6368 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6568 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 61:
-#line 1854 "mrbgems/mruby-compiler/core/parse.y"
+ case 65:
+#line 1892 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd));
}
-#line 6376 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6576 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 62:
-#line 1858 "mrbgems/mruby-compiler/core/parse.y"
+ case 66:
+#line 1896 "mrbgems/mruby-compiler/core/parse.y"
{
args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd));
(yyval.nd) = new_fcall(p, (yyvsp[-2].id), (yyvsp[-1].nd));
}
-#line 6385 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6585 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 63:
-#line 1863 "mrbgems/mruby-compiler/core/parse.y"
+ case 67:
+#line 1901 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num));
}
-#line 6393 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6593 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 64:
-#line 1867 "mrbgems/mruby-compiler/core/parse.y"
+ case 68:
+#line 1905 "mrbgems/mruby-compiler/core/parse.y"
{
args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd));
(yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num));
}
-#line 6402 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6602 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 65:
-#line 1872 "mrbgems/mruby-compiler/core/parse.y"
+ case 69:
+#line 1910 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2);
}
-#line 6410 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6610 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 66:
-#line 1876 "mrbgems/mruby-compiler/core/parse.y"
+ case 70:
+#line 1914 "mrbgems/mruby-compiler/core/parse.y"
{
args_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd));
(yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), tCOLON2);
}
-#line 6419 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6619 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 67:
-#line 1881 "mrbgems/mruby-compiler/core/parse.y"
+ case 71:
+#line 1919 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_super(p, (yyvsp[0].nd));
}
-#line 6427 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6627 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 68:
-#line 1885 "mrbgems/mruby-compiler/core/parse.y"
+ case 72:
+#line 1923 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_yield(p, (yyvsp[0].nd));
}
-#line 6435 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6635 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 69:
-#line 1889 "mrbgems/mruby-compiler/core/parse.y"
+ case 73:
+#line 1927 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_return(p, ret_args(p, (yyvsp[0].nd)));
}
-#line 6443 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6643 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 70:
-#line 1893 "mrbgems/mruby-compiler/core/parse.y"
+ case 74:
+#line 1931 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_break(p, ret_args(p, (yyvsp[0].nd)));
}
-#line 6451 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6651 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 71:
-#line 1897 "mrbgems/mruby-compiler/core/parse.y"
+ case 75:
+#line 1935 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_next(p, ret_args(p, (yyvsp[0].nd)));
}
-#line 6459 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6659 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 72:
-#line 1903 "mrbgems/mruby-compiler/core/parse.y"
+ case 76:
+#line 1941 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 6467 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6667 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 73:
-#line 1907 "mrbgems/mruby-compiler/core/parse.y"
+ case 77:
+#line 1945 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 6475 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6675 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 75:
-#line 1914 "mrbgems/mruby-compiler/core/parse.y"
+ case 79:
+#line 1952 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 6483 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6683 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 76:
-#line 1920 "mrbgems/mruby-compiler/core/parse.y"
+ case 80:
+#line 1958 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 6491 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6691 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 77:
-#line 1924 "mrbgems/mruby-compiler/core/parse.y"
+ case 81:
+#line 1962 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1(push((yyvsp[-1].nd),(yyvsp[0].nd)));
}
-#line 6499 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6699 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 78:
-#line 1928 "mrbgems/mruby-compiler/core/parse.y"
+ case 82:
+#line 1966 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list2((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 6507 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6707 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 79:
-#line 1932 "mrbgems/mruby-compiler/core/parse.y"
+ case 83:
+#line 1970 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list3((yyvsp[-4].nd), (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 6515 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6715 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 80:
-#line 1936 "mrbgems/mruby-compiler/core/parse.y"
+ case 84:
+#line 1974 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list2((yyvsp[-1].nd), new_nil(p));
}
-#line 6523 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6723 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 81:
-#line 1940 "mrbgems/mruby-compiler/core/parse.y"
+ case 85:
+#line 1978 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list3((yyvsp[-3].nd), new_nil(p), (yyvsp[0].nd));
}
-#line 6531 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6731 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 82:
-#line 1944 "mrbgems/mruby-compiler/core/parse.y"
+ case 86:
+#line 1982 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list2(0, (yyvsp[0].nd));
}
-#line 6539 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6739 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 83:
-#line 1948 "mrbgems/mruby-compiler/core/parse.y"
+ case 87:
+#line 1986 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list3(0, (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 6547 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6747 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 84:
-#line 1952 "mrbgems/mruby-compiler/core/parse.y"
+ case 88:
+#line 1990 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list2(0, new_nil(p));
}
-#line 6555 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6755 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 85:
-#line 1956 "mrbgems/mruby-compiler/core/parse.y"
+ case 89:
+#line 1994 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list3(0, new_nil(p), (yyvsp[0].nd));
}
-#line 6563 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6763 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 87:
-#line 1963 "mrbgems/mruby-compiler/core/parse.y"
+ case 91:
+#line 2001 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_masgn(p, (yyvsp[-1].nd), NULL);
}
-#line 6571 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6771 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 88:
-#line 1969 "mrbgems/mruby-compiler/core/parse.y"
+ case 92:
+#line 2007 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[-1].nd));
}
-#line 6579 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6779 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 89:
-#line 1973 "mrbgems/mruby-compiler/core/parse.y"
+ case 93:
+#line 2011 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[-1].nd));
}
-#line 6587 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6787 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 90:
-#line 1979 "mrbgems/mruby-compiler/core/parse.y"
+ case 94:
+#line 2017 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 6595 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6795 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 91:
-#line 1983 "mrbgems/mruby-compiler/core/parse.y"
+ case 95:
+#line 2021 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 6603 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6803 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 92:
-#line 1989 "mrbgems/mruby-compiler/core/parse.y"
+ case 96:
+#line 2027 "mrbgems/mruby-compiler/core/parse.y"
{
assignable(p, (yyvsp[0].nd));
}
-#line 6611 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6811 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 93:
-#line 1993 "mrbgems/mruby-compiler/core/parse.y"
+ case 97:
+#line 2031 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.');
}
-#line 6619 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6819 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 94:
-#line 1997 "mrbgems/mruby-compiler/core/parse.y"
+ case 98:
+#line 2035 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num));
}
-#line 6627 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6827 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 95:
-#line 2001 "mrbgems/mruby-compiler/core/parse.y"
+ case 99:
+#line 2039 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2);
}
-#line 6635 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6835 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 96:
-#line 2005 "mrbgems/mruby-compiler/core/parse.y"
+ case 100:
+#line 2043 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num));
}
-#line 6643 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6843 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 97:
-#line 2009 "mrbgems/mruby-compiler/core/parse.y"
+ case 101:
+#line 2047 "mrbgems/mruby-compiler/core/parse.y"
{
if (p->in_def || p->in_single)
yyerror(p, "dynamic constant assignment");
(yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id));
}
-#line 6653 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6853 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 98:
-#line 2015 "mrbgems/mruby-compiler/core/parse.y"
+ case 102:
+#line 2053 "mrbgems/mruby-compiler/core/parse.y"
{
if (p->in_def || p->in_single)
yyerror(p, "dynamic constant assignment");
(yyval.nd) = new_colon3(p, (yyvsp[0].id));
}
-#line 6663 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6863 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 99:
-#line 2021 "mrbgems/mruby-compiler/core/parse.y"
+ case 103:
+#line 2059 "mrbgems/mruby-compiler/core/parse.y"
{
backref_error(p, (yyvsp[0].nd));
(yyval.nd) = 0;
}
-#line 6672 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6872 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 100:
-#line 2028 "mrbgems/mruby-compiler/core/parse.y"
+ case 104:
+#line 2066 "mrbgems/mruby-compiler/core/parse.y"
{
assignable(p, (yyvsp[0].nd));
}
-#line 6680 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6880 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 101:
-#line 2032 "mrbgems/mruby-compiler/core/parse.y"
+ case 105:
+#line 2070 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.');
}
-#line 6688 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6888 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 102:
-#line 2036 "mrbgems/mruby-compiler/core/parse.y"
+ case 106:
+#line 2074 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num));
}
-#line 6696 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6896 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 103:
-#line 2040 "mrbgems/mruby-compiler/core/parse.y"
+ case 107:
+#line 2078 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2);
}
-#line 6704 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6904 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 104:
-#line 2044 "mrbgems/mruby-compiler/core/parse.y"
+ case 108:
+#line 2082 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, (yyvsp[-1].num));
}
-#line 6712 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6912 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 105:
-#line 2048 "mrbgems/mruby-compiler/core/parse.y"
+ case 109:
+#line 2086 "mrbgems/mruby-compiler/core/parse.y"
{
if (p->in_def || p->in_single)
yyerror(p, "dynamic constant assignment");
(yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id));
}
-#line 6722 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6922 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 106:
-#line 2054 "mrbgems/mruby-compiler/core/parse.y"
+ case 110:
+#line 2092 "mrbgems/mruby-compiler/core/parse.y"
{
if (p->in_def || p->in_single)
yyerror(p, "dynamic constant assignment");
(yyval.nd) = new_colon3(p, (yyvsp[0].id));
}
-#line 6732 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6932 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 107:
-#line 2060 "mrbgems/mruby-compiler/core/parse.y"
+ case 111:
+#line 2098 "mrbgems/mruby-compiler/core/parse.y"
{
backref_error(p, (yyvsp[0].nd));
(yyval.nd) = 0;
}
-#line 6741 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6941 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 108:
-#line 2065 "mrbgems/mruby-compiler/core/parse.y"
+ case 112:
+#line 2103 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "can't assign to numbered parameter");
}
-#line 6749 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6949 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 109:
-#line 2071 "mrbgems/mruby-compiler/core/parse.y"
+ case 113:
+#line 2109 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "class/module name must be CONSTANT");
}
-#line 6757 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6957 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 111:
-#line 2078 "mrbgems/mruby-compiler/core/parse.y"
+ case 115:
+#line 2116 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(nint(1), nsym((yyvsp[0].id)));
}
-#line 6765 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6965 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 112:
-#line 2082 "mrbgems/mruby-compiler/core/parse.y"
+ case 116:
+#line 2120 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(nint(0), nsym((yyvsp[0].id)));
}
-#line 6773 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6973 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 113:
-#line 2086 "mrbgems/mruby-compiler/core/parse.y"
+ case 117:
+#line 2124 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[-2].nd));
(yyval.nd) = cons((yyvsp[-2].nd), nsym((yyvsp[0].id)));
}
-#line 6782 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6982 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 117:
-#line 2096 "mrbgems/mruby-compiler/core/parse.y"
+ case 121:
+#line 2134 "mrbgems/mruby-compiler/core/parse.y"
{
p->lstate = EXPR_ENDFN;
(yyval.id) = (yyvsp[0].id);
}
-#line 6791 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 6991 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 118:
-#line 2101 "mrbgems/mruby-compiler/core/parse.y"
+ case 122:
+#line 2139 "mrbgems/mruby-compiler/core/parse.y"
{
p->lstate = EXPR_ENDFN;
(yyval.id) = (yyvsp[0].id);
}
-#line 6800 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7000 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 121:
-#line 2112 "mrbgems/mruby-compiler/core/parse.y"
+ case 125:
+#line 2150 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_undef(p, (yyvsp[0].id));
}
-#line 6808 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7008 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 122:
-#line 2115 "mrbgems/mruby-compiler/core/parse.y"
+ case 126:
+#line 2153 "mrbgems/mruby-compiler/core/parse.y"
{p->lstate = EXPR_FNAME;}
-#line 6814 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7014 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 123:
-#line 2116 "mrbgems/mruby-compiler/core/parse.y"
+ case 127:
+#line 2154 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-3].nd), nsym((yyvsp[0].id)));
}
-#line 6822 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7022 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 124:
-#line 2121 "mrbgems/mruby-compiler/core/parse.y"
+ case 128:
+#line 2159 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(or); }
-#line 6828 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7028 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 125:
-#line 2122 "mrbgems/mruby-compiler/core/parse.y"
+ case 129:
+#line 2160 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(xor); }
-#line 6834 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7034 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 126:
-#line 2123 "mrbgems/mruby-compiler/core/parse.y"
+ case 130:
+#line 2161 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(and); }
-#line 6840 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7040 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 127:
-#line 2124 "mrbgems/mruby-compiler/core/parse.y"
+ case 131:
+#line 2162 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(cmp); }
-#line 6846 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7046 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 128:
-#line 2125 "mrbgems/mruby-compiler/core/parse.y"
+ case 132:
+#line 2163 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(eq); }
-#line 6852 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7052 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 129:
-#line 2126 "mrbgems/mruby-compiler/core/parse.y"
+ case 133:
+#line 2164 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(eqq); }
-#line 6858 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7058 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 130:
-#line 2127 "mrbgems/mruby-compiler/core/parse.y"
+ case 134:
+#line 2165 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(match); }
-#line 6864 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7064 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 131:
-#line 2128 "mrbgems/mruby-compiler/core/parse.y"
+ case 135:
+#line 2166 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(nmatch); }
-#line 6870 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7070 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 132:
-#line 2129 "mrbgems/mruby-compiler/core/parse.y"
+ case 136:
+#line 2167 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(gt); }
-#line 6876 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7076 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 133:
-#line 2130 "mrbgems/mruby-compiler/core/parse.y"
+ case 137:
+#line 2168 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(ge); }
-#line 6882 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7082 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 134:
-#line 2131 "mrbgems/mruby-compiler/core/parse.y"
+ case 138:
+#line 2169 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(lt); }
-#line 6888 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7088 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 135:
-#line 2132 "mrbgems/mruby-compiler/core/parse.y"
+ case 139:
+#line 2170 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(le); }
-#line 6894 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7094 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 136:
-#line 2133 "mrbgems/mruby-compiler/core/parse.y"
+ case 140:
+#line 2171 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(neq); }
-#line 6900 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7100 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 137:
-#line 2134 "mrbgems/mruby-compiler/core/parse.y"
+ case 141:
+#line 2172 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(lshift); }
-#line 6906 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7106 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 138:
-#line 2135 "mrbgems/mruby-compiler/core/parse.y"
+ case 142:
+#line 2173 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(rshift); }
-#line 6912 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7112 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 139:
-#line 2136 "mrbgems/mruby-compiler/core/parse.y"
+ case 143:
+#line 2174 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(add); }
-#line 6918 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7118 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 140:
-#line 2137 "mrbgems/mruby-compiler/core/parse.y"
+ case 144:
+#line 2175 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(sub); }
-#line 6924 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7124 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 141:
-#line 2138 "mrbgems/mruby-compiler/core/parse.y"
+ case 145:
+#line 2176 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(mul); }
-#line 6930 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7130 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 142:
-#line 2139 "mrbgems/mruby-compiler/core/parse.y"
+ case 146:
+#line 2177 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(mul); }
-#line 6936 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7136 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 143:
-#line 2140 "mrbgems/mruby-compiler/core/parse.y"
+ case 147:
+#line 2178 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(div); }
-#line 6942 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7142 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 144:
-#line 2141 "mrbgems/mruby-compiler/core/parse.y"
+ case 148:
+#line 2179 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(mod); }
-#line 6948 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7148 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 145:
-#line 2142 "mrbgems/mruby-compiler/core/parse.y"
+ case 149:
+#line 2180 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(pow); }
-#line 6954 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7154 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 146:
-#line 2143 "mrbgems/mruby-compiler/core/parse.y"
+ case 150:
+#line 2181 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(pow); }
-#line 6960 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7160 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 147:
-#line 2144 "mrbgems/mruby-compiler/core/parse.y"
+ case 151:
+#line 2182 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(not); }
-#line 6966 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7166 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 148:
-#line 2145 "mrbgems/mruby-compiler/core/parse.y"
+ case 152:
+#line 2183 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(neg); }
-#line 6972 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7172 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 149:
-#line 2146 "mrbgems/mruby-compiler/core/parse.y"
+ case 153:
+#line 2184 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(plus); }
-#line 6978 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7178 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 150:
-#line 2147 "mrbgems/mruby-compiler/core/parse.y"
+ case 154:
+#line 2185 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(minus); }
-#line 6984 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7184 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 151:
-#line 2148 "mrbgems/mruby-compiler/core/parse.y"
+ case 155:
+#line 2186 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(aref); }
-#line 6990 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7190 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 152:
-#line 2149 "mrbgems/mruby-compiler/core/parse.y"
+ case 156:
+#line 2187 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(aset); }
-#line 6996 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7196 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 153:
-#line 2150 "mrbgems/mruby-compiler/core/parse.y"
+ case 157:
+#line 2188 "mrbgems/mruby-compiler/core/parse.y"
{ (yyval.id) = intern_op(tick); }
-#line 7002 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7202 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 194:
-#line 2168 "mrbgems/mruby-compiler/core/parse.y"
+ case 198:
+#line 2206 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_asgn(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 7010 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7210 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 195:
-#line 2172 "mrbgems/mruby-compiler/core/parse.y"
+ case 199:
+#line 2210 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_op_asgn(p, (yyvsp[-2].nd), (yyvsp[-1].id), (yyvsp[0].nd));
}
-#line 7018 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7218 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 196:
-#line 2176 "mrbgems/mruby-compiler/core/parse.y"
+ case 200:
+#line 2214 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), intern_op(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd));
}
-#line 7026 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7226 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 197:
-#line 2180 "mrbgems/mruby-compiler/core/parse.y"
+ case 201:
+#line 2218 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd));
}
-#line 7034 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7234 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 198:
-#line 2184 "mrbgems/mruby-compiler/core/parse.y"
+ case 202:
+#line 2222 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, (yyvsp[-3].num)), (yyvsp[-1].id), (yyvsp[0].nd));
}
-#line 7042 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7242 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 199:
-#line 2188 "mrbgems/mruby-compiler/core/parse.y"
+ case 203:
+#line 2226 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), 0, tCOLON2), (yyvsp[-1].id), (yyvsp[0].nd));
}
-#line 7050 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7250 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 200:
-#line 2192 "mrbgems/mruby-compiler/core/parse.y"
+ case 204:
+#line 2230 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "constant re-assignment");
(yyval.nd) = new_begin(p, 0);
}
-#line 7059 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7259 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 201:
-#line 2197 "mrbgems/mruby-compiler/core/parse.y"
+ case 205:
+#line 2235 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "constant re-assignment");
(yyval.nd) = new_begin(p, 0);
}
-#line 7068 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7268 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 202:
-#line 2202 "mrbgems/mruby-compiler/core/parse.y"
+ case 206:
+#line 2240 "mrbgems/mruby-compiler/core/parse.y"
{
backref_error(p, (yyvsp[-2].nd));
(yyval.nd) = new_begin(p, 0);
}
-#line 7077 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7277 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 203:
-#line 2207 "mrbgems/mruby-compiler/core/parse.y"
+ case 207:
+#line 2245 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_dot2(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 7085 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7285 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 204:
-#line 2211 "mrbgems/mruby-compiler/core/parse.y"
+ case 208:
+#line 2249 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_dot2(p, (yyvsp[-1].nd), new_nil(p));
}
-#line 7093 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7293 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 205:
-#line 2215 "mrbgems/mruby-compiler/core/parse.y"
+ case 209:
+#line 2253 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_dot2(p, new_nil(p), (yyvsp[0].nd));
}
-#line 7101 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7301 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 206:
-#line 2219 "mrbgems/mruby-compiler/core/parse.y"
+ case 210:
+#line 2257 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_dot3(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 7109 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7309 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 207:
-#line 2223 "mrbgems/mruby-compiler/core/parse.y"
+ case 211:
+#line 2261 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_dot3(p, (yyvsp[-1].nd), new_nil(p));
}
-#line 7117 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7317 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 208:
-#line 2227 "mrbgems/mruby-compiler/core/parse.y"
+ case 212:
+#line 2265 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_dot3(p, new_nil(p), (yyvsp[0].nd));
}
-#line 7125 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7325 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 209:
-#line 2231 "mrbgems/mruby-compiler/core/parse.y"
+ case 213:
+#line 2269 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "+", (yyvsp[0].nd));
}
-#line 7133 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7333 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 210:
-#line 2235 "mrbgems/mruby-compiler/core/parse.y"
+ case 214:
+#line 2273 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "-", (yyvsp[0].nd));
}
-#line 7141 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7341 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 211:
-#line 2239 "mrbgems/mruby-compiler/core/parse.y"
+ case 215:
+#line 2277 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "*", (yyvsp[0].nd));
}
-#line 7149 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7349 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 212:
-#line 2243 "mrbgems/mruby-compiler/core/parse.y"
+ case 216:
+#line 2281 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "/", (yyvsp[0].nd));
}
-#line 7157 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7357 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 213:
-#line 2247 "mrbgems/mruby-compiler/core/parse.y"
+ case 217:
+#line 2285 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "%", (yyvsp[0].nd));
}
-#line 7165 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7365 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 214:
-#line 2251 "mrbgems/mruby-compiler/core/parse.y"
+ case 218:
+#line 2289 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd));
}
-#line 7173 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7373 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 215:
-#line 2255 "mrbgems/mruby-compiler/core/parse.y"
+ case 219:
+#line 2293 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_uni_op(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd)), "-@");
}
-#line 7181 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7381 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 216:
-#line 2259 "mrbgems/mruby-compiler/core/parse.y"
+ case 220:
+#line 2297 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_uni_op(p, call_bin_op(p, (yyvsp[-2].nd), "**", (yyvsp[0].nd)), "-@");
}
-#line 7189 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7389 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 217:
-#line 2263 "mrbgems/mruby-compiler/core/parse.y"
+ case 221:
+#line 2301 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_uni_op(p, (yyvsp[0].nd), "+@");
}
-#line 7197 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7397 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 218:
-#line 2267 "mrbgems/mruby-compiler/core/parse.y"
+ case 222:
+#line 2305 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_uni_op(p, (yyvsp[0].nd), "-@");
}
-#line 7205 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7405 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 219:
-#line 2271 "mrbgems/mruby-compiler/core/parse.y"
+ case 223:
+#line 2309 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "|", (yyvsp[0].nd));
}
-#line 7213 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7413 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 220:
-#line 2275 "mrbgems/mruby-compiler/core/parse.y"
+ case 224:
+#line 2313 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "^", (yyvsp[0].nd));
}
-#line 7221 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7421 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 221:
-#line 2279 "mrbgems/mruby-compiler/core/parse.y"
+ case 225:
+#line 2317 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "&", (yyvsp[0].nd));
}
-#line 7229 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7429 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 222:
-#line 2283 "mrbgems/mruby-compiler/core/parse.y"
+ case 226:
+#line 2321 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=>", (yyvsp[0].nd));
}
-#line 7237 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7437 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 223:
-#line 2287 "mrbgems/mruby-compiler/core/parse.y"
+ case 227:
+#line 2325 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">", (yyvsp[0].nd));
}
-#line 7245 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7445 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 224:
-#line 2291 "mrbgems/mruby-compiler/core/parse.y"
+ case 228:
+#line 2329 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">=", (yyvsp[0].nd));
}
-#line 7253 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7453 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 225:
-#line 2295 "mrbgems/mruby-compiler/core/parse.y"
+ case 229:
+#line 2333 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<", (yyvsp[0].nd));
}
-#line 7261 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7461 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 226:
-#line 2299 "mrbgems/mruby-compiler/core/parse.y"
+ case 230:
+#line 2337 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<=", (yyvsp[0].nd));
}
-#line 7269 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7469 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 227:
-#line 2303 "mrbgems/mruby-compiler/core/parse.y"
+ case 231:
+#line 2341 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "==", (yyvsp[0].nd));
}
-#line 7277 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7477 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 228:
-#line 2307 "mrbgems/mruby-compiler/core/parse.y"
+ case 232:
+#line 2345 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "===", (yyvsp[0].nd));
}
-#line 7285 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7485 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 229:
-#line 2311 "mrbgems/mruby-compiler/core/parse.y"
+ case 233:
+#line 2349 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!=", (yyvsp[0].nd));
}
-#line 7293 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7493 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 230:
-#line 2315 "mrbgems/mruby-compiler/core/parse.y"
+ case 234:
+#line 2353 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "=~", (yyvsp[0].nd));
}
-#line 7301 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7501 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 231:
-#line 2319 "mrbgems/mruby-compiler/core/parse.y"
+ case 235:
+#line 2357 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "!~", (yyvsp[0].nd));
}
-#line 7309 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7509 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 232:
-#line 2323 "mrbgems/mruby-compiler/core/parse.y"
+ case 236:
+#line 2361 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "!");
}
-#line 7317 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7517 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 233:
-#line 2327 "mrbgems/mruby-compiler/core/parse.y"
+ case 237:
+#line 2365 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_uni_op(p, cond((yyvsp[0].nd)), "~");
}
-#line 7325 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7525 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 234:
-#line 2331 "mrbgems/mruby-compiler/core/parse.y"
+ case 238:
+#line 2369 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), "<<", (yyvsp[0].nd));
}
-#line 7333 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7533 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 235:
-#line 2335 "mrbgems/mruby-compiler/core/parse.y"
+ case 239:
+#line 2373 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_bin_op(p, (yyvsp[-2].nd), ">>", (yyvsp[0].nd));
}
-#line 7341 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7541 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 236:
-#line 2339 "mrbgems/mruby-compiler/core/parse.y"
+ case 240:
+#line 2377 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_and(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 7349 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7549 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 237:
-#line 2343 "mrbgems/mruby-compiler/core/parse.y"
+ case 241:
+#line 2381 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_or(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 7357 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7557 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 238:
-#line 2347 "mrbgems/mruby-compiler/core/parse.y"
+ case 242:
+#line 2385 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd));
}
-#line 7365 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7565 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 239:
-#line 2351 "mrbgems/mruby-compiler/core/parse.y"
+ case 243:
+#line 2389 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_if(p, cond((yyvsp[-5].nd)), (yyvsp[-3].nd), (yyvsp[0].nd));
}
-#line 7373 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7573 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 240:
-#line 2355 "mrbgems/mruby-compiler/core/parse.y"
+ case 244:
+#line 2393 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-3].nd);
endless_method_name(p, (yyvsp[-3].nd));
@@ -7382,11 +7582,11 @@ yyreduce:
nvars_unnest(p);
p->in_def--;
}
-#line 7386 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7586 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 241:
-#line 2364 "mrbgems/mruby-compiler/core/parse.y"
+ case 245:
+#line 2402 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-5].nd);
endless_method_name(p, (yyvsp[-5].nd));
@@ -7396,11 +7596,11 @@ yyreduce:
nvars_unnest(p);
p->in_def--;
}
-#line 7400 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7600 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 242:
-#line 2374 "mrbgems/mruby-compiler/core/parse.y"
+ case 246:
+#line 2412 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-3].nd);
void_expr_error(p, (yyvsp[0].nd));
@@ -7409,11 +7609,11 @@ yyreduce:
p->in_def--;
p->in_single--;
}
-#line 7413 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7613 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 243:
-#line 2383 "mrbgems/mruby-compiler/core/parse.y"
+ case 247:
+#line 2421 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-5].nd);
void_expr_error(p, (yyvsp[-2].nd));
@@ -7423,71 +7623,71 @@ yyreduce:
p->in_def--;
p->in_single--;
}
-#line 7427 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7627 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 244:
-#line 2393 "mrbgems/mruby-compiler/core/parse.y"
+ case 248:
+#line 2431 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 7435 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7635 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 246:
-#line 2400 "mrbgems/mruby-compiler/core/parse.y"
+ case 250:
+#line 2438 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7444 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7644 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 247:
-#line 2405 "mrbgems/mruby-compiler/core/parse.y"
+ case 251:
+#line 2443 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-3].nd), new_kw_hash(p, (yyvsp[-1].nd)));
}
-#line 7452 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7652 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 248:
-#line 2409 "mrbgems/mruby-compiler/core/parse.y"
+ case 252:
+#line 2447 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(new_kw_hash(p, (yyvsp[-1].nd)), 0);
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7461 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7661 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 249:
-#line 2416 "mrbgems/mruby-compiler/core/parse.y"
+ case 253:
+#line 2454 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 7469 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7669 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 250:
-#line 2420 "mrbgems/mruby-compiler/core/parse.y"
+ case 254:
+#line 2458 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[-2].nd));
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = new_mod_rescue(p, (yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 7479 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7679 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 251:
-#line 2428 "mrbgems/mruby-compiler/core/parse.y"
+ case 255:
+#line 2466 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 7487 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7687 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 252:
-#line 2432 "mrbgems/mruby-compiler/core/parse.y"
+ case 256:
+#line 2470 "mrbgems/mruby-compiler/core/parse.y"
{
#if 1
mrb_sym r = intern_op(mul);
@@ -7503,11 +7703,11 @@ yyreduce:
new_block_arg(p, new_lvar(p, b)));
#endif
}
-#line 7507 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7707 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 253:
-#line 2448 "mrbgems/mruby-compiler/core/parse.y"
+ case 257:
+#line 2486 "mrbgems/mruby-compiler/core/parse.y"
{
#if 1
mrb_sym r = intern_op(mul);
@@ -7531,373 +7731,373 @@ yyreduce:
(yyval.nd) = 0;
}
}
-#line 7535 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7735 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 258:
-#line 2480 "mrbgems/mruby-compiler/core/parse.y"
+ case 262:
+#line 2518 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons((yyvsp[-1].nd),0);
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7544 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7744 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 259:
-#line 2485 "mrbgems/mruby-compiler/core/parse.y"
+ case 263:
+#line 2523 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(push((yyvsp[-3].nd), new_kw_hash(p, (yyvsp[-1].nd))), 0);
NODE_LINENO((yyval.nd), (yyvsp[-3].nd));
}
-#line 7553 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7753 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 260:
-#line 2490 "mrbgems/mruby-compiler/core/parse.y"
+ case 264:
+#line 2528 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(list1(new_kw_hash(p, (yyvsp[-1].nd))), 0);
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7562 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7762 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 261:
-#line 2497 "mrbgems/mruby-compiler/core/parse.y"
+ case 265:
+#line 2535 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons(list1((yyvsp[0].nd)), 0);
NODE_LINENO((yyval.nd), (yyvsp[0].nd));
}
-#line 7572 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7772 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 262:
-#line 2503 "mrbgems/mruby-compiler/core/parse.y"
+ case 266:
+#line 2541 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons((yyvsp[-1].nd), (yyvsp[0].nd));
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7581 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7781 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 263:
-#line 2508 "mrbgems/mruby-compiler/core/parse.y"
+ case 267:
+#line 2546 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(list1(new_kw_hash(p, (yyvsp[-1].nd))), (yyvsp[0].nd));
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7590 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7790 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 264:
-#line 2513 "mrbgems/mruby-compiler/core/parse.y"
+ case 268:
+#line 2551 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(push((yyvsp[-3].nd), new_kw_hash(p, (yyvsp[-1].nd))), (yyvsp[0].nd));
NODE_LINENO((yyval.nd), (yyvsp[-3].nd));
}
-#line 7599 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7799 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 265:
-#line 2518 "mrbgems/mruby-compiler/core/parse.y"
+ case 269:
+#line 2556 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(0, (yyvsp[0].nd));
NODE_LINENO((yyval.nd), (yyvsp[0].nd));
}
-#line 7608 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7808 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 266:
-#line 2524 "mrbgems/mruby-compiler/core/parse.y"
+ case 270:
+#line 2562 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.stack) = p->cmdarg_stack;
CMDARG_PUSH(1);
}
-#line 7617 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7817 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 267:
-#line 2529 "mrbgems/mruby-compiler/core/parse.y"
+ case 271:
+#line 2567 "mrbgems/mruby-compiler/core/parse.y"
{
p->cmdarg_stack = (yyvsp[-1].stack);
(yyval.nd) = (yyvsp[0].nd);
}
-#line 7626 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7826 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 268:
-#line 2536 "mrbgems/mruby-compiler/core/parse.y"
+ case 272:
+#line 2574 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_block_arg(p, (yyvsp[0].nd));
}
-#line 7634 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7834 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 269:
-#line 2542 "mrbgems/mruby-compiler/core/parse.y"
+ case 273:
+#line 2580 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 7642 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7842 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 270:
-#line 2546 "mrbgems/mruby-compiler/core/parse.y"
+ case 274:
+#line 2584 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 7650 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7850 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 273:
-#line 2556 "mrbgems/mruby-compiler/core/parse.y"
+ case 277:
+#line 2594 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons((yyvsp[0].nd), 0);
NODE_LINENO((yyval.nd), (yyvsp[0].nd));
}
-#line 7660 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7860 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 274:
-#line 2562 "mrbgems/mruby-compiler/core/parse.y"
+ case 278:
+#line 2600 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons(new_splat(p, (yyvsp[0].nd)), 0);
NODE_LINENO((yyval.nd), (yyvsp[0].nd));
}
-#line 7670 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7870 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 275:
-#line 2568 "mrbgems/mruby-compiler/core/parse.y"
+ case 279:
+#line 2606 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 7679 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7879 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 276:
-#line 2573 "mrbgems/mruby-compiler/core/parse.y"
+ case 280:
+#line 2611 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd)));
}
-#line 7688 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7888 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 277:
-#line 2580 "mrbgems/mruby-compiler/core/parse.y"
+ case 281:
+#line 2618 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 7697 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7897 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 278:
-#line 2585 "mrbgems/mruby-compiler/core/parse.y"
+ case 282:
+#line 2623 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = push((yyvsp[-3].nd), new_splat(p, (yyvsp[0].nd)));
}
-#line 7706 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7906 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 279:
-#line 2590 "mrbgems/mruby-compiler/core/parse.y"
+ case 283:
+#line 2628 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = list1(new_splat(p, (yyvsp[0].nd)));
}
-#line 7715 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7915 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 287:
-#line 2604 "mrbgems/mruby-compiler/core/parse.y"
+ case 291:
+#line 2642 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_nvar(p, (yyvsp[0].num));
}
-#line 7723 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7923 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 288:
-#line 2608 "mrbgems/mruby-compiler/core/parse.y"
+ case 292:
+#line 2646 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_fcall(p, (yyvsp[0].id), 0);
}
-#line 7731 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7931 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 289:
-#line 2612 "mrbgems/mruby-compiler/core/parse.y"
+ case 293:
+#line 2650 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.stack) = p->cmdarg_stack;
p->cmdarg_stack = 0;
}
-#line 7740 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7940 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 290:
-#line 2618 "mrbgems/mruby-compiler/core/parse.y"
+ case 294:
+#line 2656 "mrbgems/mruby-compiler/core/parse.y"
{
p->cmdarg_stack = (yyvsp[-2].stack);
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 7749 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7949 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 291:
-#line 2623 "mrbgems/mruby-compiler/core/parse.y"
+ case 295:
+#line 2661 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.stack) = p->cmdarg_stack;
p->cmdarg_stack = 0;
}
-#line 7758 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7958 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 292:
-#line 2627 "mrbgems/mruby-compiler/core/parse.y"
+ case 296:
+#line 2665 "mrbgems/mruby-compiler/core/parse.y"
{p->lstate = EXPR_ENDARG;}
-#line 7764 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7964 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 293:
-#line 2628 "mrbgems/mruby-compiler/core/parse.y"
+ case 297:
+#line 2666 "mrbgems/mruby-compiler/core/parse.y"
{
p->cmdarg_stack = (yyvsp[-3].stack);
(yyval.nd) = (yyvsp[-2].nd);
}
-#line 7773 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7973 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 294:
-#line 2632 "mrbgems/mruby-compiler/core/parse.y"
+ case 298:
+#line 2670 "mrbgems/mruby-compiler/core/parse.y"
{p->lstate = EXPR_ENDARG;}
-#line 7779 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7979 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 295:
-#line 2633 "mrbgems/mruby-compiler/core/parse.y"
+ case 299:
+#line 2671 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_nil(p);
}
-#line 7787 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7987 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 296:
-#line 2637 "mrbgems/mruby-compiler/core/parse.y"
+ case 300:
+#line 2675 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 7795 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 7995 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 297:
-#line 2641 "mrbgems/mruby-compiler/core/parse.y"
+ case 301:
+#line 2679 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_colon2(p, (yyvsp[-2].nd), (yyvsp[0].id));
}
-#line 7803 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8003 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 298:
-#line 2645 "mrbgems/mruby-compiler/core/parse.y"
+ case 302:
+#line 2683 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_colon3(p, (yyvsp[0].id));
}
-#line 7811 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8011 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 299:
-#line 2649 "mrbgems/mruby-compiler/core/parse.y"
+ case 303:
+#line 2687 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_array(p, (yyvsp[-1].nd));
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7820 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8020 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 300:
-#line 2654 "mrbgems/mruby-compiler/core/parse.y"
+ case 304:
+#line 2692 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_hash(p, (yyvsp[-1].nd));
NODE_LINENO((yyval.nd), (yyvsp[-1].nd));
}
-#line 7829 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8029 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 301:
-#line 2659 "mrbgems/mruby-compiler/core/parse.y"
+ case 305:
+#line 2697 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_return(p, 0);
}
-#line 7837 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8037 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 302:
-#line 2663 "mrbgems/mruby-compiler/core/parse.y"
+ case 306:
+#line 2701 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_yield(p, (yyvsp[0].nd));
}
-#line 7845 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8045 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 303:
-#line 2667 "mrbgems/mruby-compiler/core/parse.y"
+ case 307:
+#line 2705 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_uni_op(p, cond((yyvsp[-1].nd)), "!");
}
-#line 7853 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8053 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 304:
-#line 2671 "mrbgems/mruby-compiler/core/parse.y"
+ case 308:
+#line 2709 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = call_uni_op(p, new_nil(p), "!");
}
-#line 7861 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8061 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 305:
-#line 2675 "mrbgems/mruby-compiler/core/parse.y"
+ case 309:
+#line 2713 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_fcall(p, (yyvsp[-1].id), cons(0, (yyvsp[0].nd)));
}
-#line 7869 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8069 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 307:
-#line 2680 "mrbgems/mruby-compiler/core/parse.y"
+ case 311:
+#line 2718 "mrbgems/mruby-compiler/core/parse.y"
{
call_with_block(p, (yyvsp[-1].nd), (yyvsp[0].nd));
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 7878 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8078 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 308:
-#line 2685 "mrbgems/mruby-compiler/core/parse.y"
+ case 312:
+#line 2723 "mrbgems/mruby-compiler/core/parse.y"
{
local_nest(p);
(yyval.num) = p->lpar_beg;
p->lpar_beg = ++p->paren_nest;
}
-#line 7888 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8088 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 309:
-#line 2691 "mrbgems/mruby-compiler/core/parse.y"
+ case 313:
+#line 2729 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.stack) = p->cmdarg_stack;
p->cmdarg_stack = 0;
}
-#line 7897 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8097 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 310:
-#line 2696 "mrbgems/mruby-compiler/core/parse.y"
+ case 314:
+#line 2734 "mrbgems/mruby-compiler/core/parse.y"
{
p->lpar_beg = (yyvsp[-3].num);
(yyval.nd) = new_lambda(p, (yyvsp[-2].nd), (yyvsp[0].nd));
@@ -7905,149 +8105,149 @@ yyreduce:
p->cmdarg_stack = (yyvsp[-1].stack);
CMDARG_LEXPOP();
}
-#line 7909 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8109 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 311:
-#line 2707 "mrbgems/mruby-compiler/core/parse.y"
+ case 315:
+#line 2745 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_if(p, cond((yyvsp[-4].nd)), (yyvsp[-2].nd), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-5].num));
}
-#line 7918 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8118 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 312:
-#line 2715 "mrbgems/mruby-compiler/core/parse.y"
+ case 316:
+#line 2753 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_unless(p, cond((yyvsp[-4].nd)), (yyvsp[-2].nd), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-5].num));
}
-#line 7927 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8127 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 313:
-#line 2719 "mrbgems/mruby-compiler/core/parse.y"
+ case 317:
+#line 2757 "mrbgems/mruby-compiler/core/parse.y"
{COND_PUSH(1);}
-#line 7933 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8133 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 314:
-#line 2719 "mrbgems/mruby-compiler/core/parse.y"
+ case 318:
+#line 2757 "mrbgems/mruby-compiler/core/parse.y"
{COND_POP();}
-#line 7939 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8139 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 315:
-#line 2722 "mrbgems/mruby-compiler/core/parse.y"
+ case 319:
+#line 2760 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_while(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-6].num));
}
-#line 7948 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8148 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 316:
-#line 2726 "mrbgems/mruby-compiler/core/parse.y"
+ case 320:
+#line 2764 "mrbgems/mruby-compiler/core/parse.y"
{COND_PUSH(1);}
-#line 7954 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8154 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 317:
-#line 2726 "mrbgems/mruby-compiler/core/parse.y"
+ case 321:
+#line 2764 "mrbgems/mruby-compiler/core/parse.y"
{COND_POP();}
-#line 7960 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8160 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 318:
-#line 2729 "mrbgems/mruby-compiler/core/parse.y"
+ case 322:
+#line 2767 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_until(p, cond((yyvsp[-4].nd)), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-6].num));
}
-#line 7969 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8169 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 319:
-#line 2736 "mrbgems/mruby-compiler/core/parse.y"
+ case 323:
+#line 2774 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_case(p, (yyvsp[-3].nd), (yyvsp[-1].nd));
}
-#line 7977 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8177 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 320:
-#line 2740 "mrbgems/mruby-compiler/core/parse.y"
+ case 324:
+#line 2778 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_case(p, 0, (yyvsp[-1].nd));
}
-#line 7985 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8185 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 321:
-#line 2744 "mrbgems/mruby-compiler/core/parse.y"
+ case 325:
+#line 2782 "mrbgems/mruby-compiler/core/parse.y"
{COND_PUSH(1);}
-#line 7991 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8191 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 322:
-#line 2746 "mrbgems/mruby-compiler/core/parse.y"
+ case 326:
+#line 2784 "mrbgems/mruby-compiler/core/parse.y"
{COND_POP();}
-#line 7997 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8197 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 323:
-#line 2749 "mrbgems/mruby-compiler/core/parse.y"
+ case 327:
+#line 2787 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_for(p, (yyvsp[-7].nd), (yyvsp[-4].nd), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-8].num));
}
-#line 8006 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8206 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 324:
-#line 2755 "mrbgems/mruby-compiler/core/parse.y"
+ case 328:
+#line 2793 "mrbgems/mruby-compiler/core/parse.y"
{
if (p->in_def || p->in_single)
yyerror(p, "class definition in method body");
(yyval.nd) = local_switch(p);
nvars_block(p);
}
-#line 8017 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8217 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 325:
-#line 2763 "mrbgems/mruby-compiler/core/parse.y"
+ case 329:
+#line 2801 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_class(p, (yyvsp[-4].nd), (yyvsp[-3].nd), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-5].num));
local_resume(p, (yyvsp[-2].nd));
nvars_unnest(p);
}
-#line 8028 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8228 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 326:
-#line 2771 "mrbgems/mruby-compiler/core/parse.y"
+ case 330:
+#line 2809 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.num) = p->in_def;
p->in_def = 0;
}
-#line 8037 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8237 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 327:
-#line 2776 "mrbgems/mruby-compiler/core/parse.y"
+ case 331:
+#line 2814 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(local_switch(p), nint(p->in_single));
nvars_block(p);
p->in_single = 0;
}
-#line 8047 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8247 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 328:
-#line 2783 "mrbgems/mruby-compiler/core/parse.y"
+ case 332:
+#line 2821 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_sclass(p, (yyvsp[-5].nd), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-7].num));
@@ -8056,44 +8256,44 @@ yyreduce:
p->in_def = (yyvsp[-4].num);
p->in_single = intn((yyvsp[-2].nd)->cdr);
}
-#line 8060 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8260 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 329:
-#line 2793 "mrbgems/mruby-compiler/core/parse.y"
+ case 333:
+#line 2831 "mrbgems/mruby-compiler/core/parse.y"
{
if (p->in_def || p->in_single)
yyerror(p, "module definition in method body");
(yyval.nd) = local_switch(p);
nvars_block(p);
}
-#line 8071 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8271 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 330:
-#line 2801 "mrbgems/mruby-compiler/core/parse.y"
+ case 334:
+#line 2839 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_module(p, (yyvsp[-3].nd), (yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-4].num));
local_resume(p, (yyvsp[-2].nd));
nvars_unnest(p);
}
-#line 8082 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8282 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 331:
-#line 2811 "mrbgems/mruby-compiler/core/parse.y"
+ case 335:
+#line 2849 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-3].nd);
defn_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[-1].nd));
nvars_unnest(p);
p->in_def--;
}
-#line 8093 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8293 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 332:
-#line 2821 "mrbgems/mruby-compiler/core/parse.y"
+ case 336:
+#line 2859 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-3].nd);
defs_setup(p, (yyval.nd), (yyvsp[-2].nd), (yyvsp[-1].nd));
@@ -8101,451 +8301,451 @@ yyreduce:
p->in_def--;
p->in_single--;
}
-#line 8105 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8305 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 333:
-#line 2829 "mrbgems/mruby-compiler/core/parse.y"
+ case 337:
+#line 2867 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_break(p, 0);
}
-#line 8113 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8313 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 334:
-#line 2833 "mrbgems/mruby-compiler/core/parse.y"
+ case 338:
+#line 2871 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_next(p, 0);
}
-#line 8121 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8321 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 335:
-#line 2837 "mrbgems/mruby-compiler/core/parse.y"
+ case 339:
+#line 2875 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_redo(p);
}
-#line 8129 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8329 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 336:
-#line 2841 "mrbgems/mruby-compiler/core/parse.y"
+ case 340:
+#line 2879 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_retry(p);
}
-#line 8137 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8337 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 337:
-#line 2847 "mrbgems/mruby-compiler/core/parse.y"
+ case 341:
+#line 2885 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
if (!(yyval.nd)) (yyval.nd) = new_nil(p);
}
-#line 8146 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8346 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 344:
-#line 2866 "mrbgems/mruby-compiler/core/parse.y"
+ case 348:
+#line 2904 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_if(p, cond((yyvsp[-3].nd)), (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8154 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8354 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 346:
-#line 2873 "mrbgems/mruby-compiler/core/parse.y"
+ case 350:
+#line 2911 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8162 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8362 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 347:
-#line 2879 "mrbgems/mruby-compiler/core/parse.y"
+ case 351:
+#line 2917 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1(list1((yyvsp[0].nd)));
}
-#line 8170 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8370 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 349:
-#line 2886 "mrbgems/mruby-compiler/core/parse.y"
+ case 353:
+#line 2924 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list3((yyvsp[0].nd),0,0);
}
-#line 8178 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8378 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 350:
-#line 2890 "mrbgems/mruby-compiler/core/parse.y"
+ case 354:
+#line 2928 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list3((yyvsp[-3].nd), new_arg(p, (yyvsp[0].id)), 0);
}
-#line 8186 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8386 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 351:
-#line 2894 "mrbgems/mruby-compiler/core/parse.y"
+ case 355:
+#line 2932 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list3((yyvsp[-5].nd), new_arg(p, (yyvsp[-2].id)), (yyvsp[0].nd));
}
-#line 8194 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8394 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 352:
-#line 2898 "mrbgems/mruby-compiler/core/parse.y"
+ case 356:
+#line 2936 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, 0);
(yyval.nd) = list3((yyvsp[-2].nd), nint(-1), 0);
}
-#line 8203 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8403 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 353:
-#line 2903 "mrbgems/mruby-compiler/core/parse.y"
+ case 357:
+#line 2941 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list3((yyvsp[-4].nd), nint(-1), (yyvsp[0].nd));
}
-#line 8211 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8411 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 354:
-#line 2907 "mrbgems/mruby-compiler/core/parse.y"
+ case 358:
+#line 2945 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list3(0, new_arg(p, (yyvsp[0].id)), 0);
}
-#line 8219 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8419 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 355:
-#line 2911 "mrbgems/mruby-compiler/core/parse.y"
+ case 359:
+#line 2949 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list3(0, new_arg(p, (yyvsp[-2].id)), (yyvsp[0].nd));
}
-#line 8227 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8427 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 356:
-#line 2915 "mrbgems/mruby-compiler/core/parse.y"
+ case 360:
+#line 2953 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, 0);
(yyval.nd) = list3(0, nint(-1), 0);
}
-#line 8236 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8436 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 357:
-#line 2920 "mrbgems/mruby-compiler/core/parse.y"
+ case 361:
+#line 2958 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, 0);
}
-#line 8244 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8444 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 358:
-#line 2924 "mrbgems/mruby-compiler/core/parse.y"
+ case 362:
+#line 2962 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list3(0, nint(-1), (yyvsp[0].nd));
}
-#line 8252 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8452 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 359:
-#line 2930 "mrbgems/mruby-compiler/core/parse.y"
+ case 363:
+#line 2968 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].nd), (yyvsp[0].id));
}
-#line 8260 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8460 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 360:
-#line 2934 "mrbgems/mruby-compiler/core/parse.y"
+ case 364:
+#line 2972 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id));
}
-#line 8268 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8468 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 361:
-#line 2938 "mrbgems/mruby-compiler/core/parse.y"
+ case 365:
+#line 2976 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].nd), (yyvsp[0].id));
}
-#line 8276 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8476 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 362:
-#line 2942 "mrbgems/mruby-compiler/core/parse.y"
+ case 366:
+#line 2980 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id));
}
-#line 8284 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8484 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 363:
-#line 2948 "mrbgems/mruby-compiler/core/parse.y"
+ case 367:
+#line 2986 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8292 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8492 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 364:
-#line 2952 "mrbgems/mruby-compiler/core/parse.y"
+ case 368:
+#line 2990 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args_tail(p, 0, 0, 0);
}
-#line 8300 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8500 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 365:
-#line 2958 "mrbgems/mruby-compiler/core/parse.y"
+ case 369:
+#line 2996 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
-#line 8308 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8508 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 366:
-#line 2962 "mrbgems/mruby-compiler/core/parse.y"
+ case 370:
+#line 3000 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8316 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8516 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 367:
-#line 2966 "mrbgems/mruby-compiler/core/parse.y"
+ case 371:
+#line 3004 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
}
-#line 8324 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8524 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 368:
-#line 2970 "mrbgems/mruby-compiler/core/parse.y"
+ case 372:
+#line 3008 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8332 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8532 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 369:
-#line 2974 "mrbgems/mruby-compiler/core/parse.y"
+ case 373:
+#line 3012 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
-#line 8340 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8540 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 370:
-#line 2978 "mrbgems/mruby-compiler/core/parse.y"
+ case 374:
+#line 3016 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, (yyvsp[-2].nd), 0, 0, 0, (yyvsp[0].nd));
}
-#line 8348 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8548 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 371:
-#line 2982 "mrbgems/mruby-compiler/core/parse.y"
+ case 375:
+#line 3020 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8356 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8556 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 372:
-#line 2986 "mrbgems/mruby-compiler/core/parse.y"
+ case 376:
+#line 3024 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd));
}
-#line 8364 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8564 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 373:
-#line 2990 "mrbgems/mruby-compiler/core/parse.y"
+ case 377:
+#line 3028 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
-#line 8372 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8572 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 374:
-#line 2994 "mrbgems/mruby-compiler/core/parse.y"
+ case 378:
+#line 3032 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8380 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8580 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 375:
-#line 2998 "mrbgems/mruby-compiler/core/parse.y"
+ case 379:
+#line 3036 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
}
-#line 8388 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8588 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 376:
-#line 3002 "mrbgems/mruby-compiler/core/parse.y"
+ case 380:
+#line 3040 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8396 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8596 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 377:
-#line 3006 "mrbgems/mruby-compiler/core/parse.y"
+ case 381:
+#line 3044 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
-#line 8404 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8604 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 378:
-#line 3010 "mrbgems/mruby-compiler/core/parse.y"
+ case 382:
+#line 3048 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8412 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8612 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 379:
-#line 3014 "mrbgems/mruby-compiler/core/parse.y"
+ case 383:
+#line 3052 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd));
}
-#line 8420 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8620 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 380:
-#line 3020 "mrbgems/mruby-compiler/core/parse.y"
+ case 384:
+#line 3058 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_blk(p, 0);
(yyval.nd) = 0;
}
-#line 8429 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8629 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 381:
-#line 3025 "mrbgems/mruby-compiler/core/parse.y"
+ case 385:
+#line 3063 "mrbgems/mruby-compiler/core/parse.y"
{
p->cmd_start = TRUE;
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8438 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8638 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 382:
-#line 3031 "mrbgems/mruby-compiler/core/parse.y"
+ case 386:
+#line 3069 "mrbgems/mruby-compiler/core/parse.y"
{local_add_blk(p, 0);}
-#line 8444 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8644 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 383:
-#line 3032 "mrbgems/mruby-compiler/core/parse.y"
+ case 387:
+#line 3070 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 8452 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8652 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 384:
-#line 3036 "mrbgems/mruby-compiler/core/parse.y"
+ case 388:
+#line 3074 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_blk(p, 0);
(yyval.nd) = 0;
}
-#line 8461 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8661 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 385:
-#line 3041 "mrbgems/mruby-compiler/core/parse.y"
+ case 389:
+#line 3079 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-2].nd);
}
-#line 8469 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8669 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 386:
-#line 3048 "mrbgems/mruby-compiler/core/parse.y"
+ case 390:
+#line 3086 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 8477 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8677 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 387:
-#line 3052 "mrbgems/mruby-compiler/core/parse.y"
+ case 391:
+#line 3090 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 8485 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8685 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 390:
-#line 3062 "mrbgems/mruby-compiler/core/parse.y"
+ case 394:
+#line 3100 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, (yyvsp[0].id));
new_bv(p, (yyvsp[0].id));
}
-#line 8494 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8694 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 392:
-#line 3070 "mrbgems/mruby-compiler/core/parse.y"
+ case 396:
+#line 3108 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-2].nd);
}
-#line 8502 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8702 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 393:
-#line 3074 "mrbgems/mruby-compiler/core/parse.y"
+ case 397:
+#line 3112 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8510 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8710 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 394:
-#line 3080 "mrbgems/mruby-compiler/core/parse.y"
+ case 398:
+#line 3118 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 8518 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8718 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 395:
-#line 3084 "mrbgems/mruby-compiler/core/parse.y"
+ case 399:
+#line 3122 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 8526 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8726 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 396:
-#line 3090 "mrbgems/mruby-compiler/core/parse.y"
+ case 400:
+#line 3128 "mrbgems/mruby-compiler/core/parse.y"
{
local_nest(p);
nvars_nest(p);
}
-#line 8535 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8735 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 397:
-#line 3097 "mrbgems/mruby-compiler/core/parse.y"
+ case 401:
+#line 3135 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd));
local_unnest(p);
nvars_unnest(p);
}
-#line 8545 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8745 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 398:
-#line 3105 "mrbgems/mruby-compiler/core/parse.y"
+ case 402:
+#line 3143 "mrbgems/mruby-compiler/core/parse.y"
{
if (typen((yyvsp[-1].nd)->car) == NODE_YIELD) {
yyerror(p, "block given to yield");
@@ -8555,159 +8755,159 @@ yyreduce:
}
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 8559 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8759 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 399:
-#line 3115 "mrbgems/mruby-compiler/core/parse.y"
+ case 403:
+#line 3153 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num));
}
-#line 8567 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8767 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 400:
-#line 3119 "mrbgems/mruby-compiler/core/parse.y"
+ case 404:
+#line 3157 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num));
call_with_block(p, (yyval.nd), (yyvsp[0].nd));
}
-#line 8576 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8776 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 401:
-#line 3124 "mrbgems/mruby-compiler/core/parse.y"
+ case 405:
+#line 3162 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-4].nd), (yyvsp[-2].id), (yyvsp[-1].nd), (yyvsp[-3].num));
call_with_block(p, (yyval.nd), (yyvsp[0].nd));
}
-#line 8585 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8785 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 402:
-#line 3131 "mrbgems/mruby-compiler/core/parse.y"
+ case 406:
+#line 3169 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_fcall(p, (yyvsp[-1].id), (yyvsp[0].nd));
}
-#line 8593 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8793 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 403:
-#line 3135 "mrbgems/mruby-compiler/core/parse.y"
+ case 407:
+#line 3173 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), (yyvsp[-2].num));
}
-#line 8601 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8801 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 404:
-#line 3139 "mrbgems/mruby-compiler/core/parse.y"
+ case 408:
+#line 3177 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-3].nd), (yyvsp[-1].id), (yyvsp[0].nd), tCOLON2);
}
-#line 8609 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8809 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 405:
-#line 3143 "mrbgems/mruby-compiler/core/parse.y"
+ case 409:
+#line 3181 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-2].nd), (yyvsp[0].id), 0, tCOLON2);
}
-#line 8617 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8817 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 406:
-#line 3147 "mrbgems/mruby-compiler/core/parse.y"
+ case 410:
+#line 3185 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM_2(p->mrb, call), (yyvsp[0].nd), (yyvsp[-1].num));
}
-#line 8625 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8825 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 407:
-#line 3151 "mrbgems/mruby-compiler/core/parse.y"
+ case 411:
+#line 3189 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM_2(p->mrb, call), (yyvsp[0].nd), tCOLON2);
}
-#line 8633 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8833 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 408:
-#line 3155 "mrbgems/mruby-compiler/core/parse.y"
+ case 412:
+#line 3193 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_super(p, (yyvsp[0].nd));
}
-#line 8641 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8841 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 409:
-#line 3159 "mrbgems/mruby-compiler/core/parse.y"
+ case 413:
+#line 3197 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_zsuper(p);
}
-#line 8649 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8849 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 410:
-#line 3163 "mrbgems/mruby-compiler/core/parse.y"
+ case 414:
+#line 3201 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.');
}
-#line 8657 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8857 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 411:
-#line 3169 "mrbgems/mruby-compiler/core/parse.y"
+ case 415:
+#line 3207 "mrbgems/mruby-compiler/core/parse.y"
{
local_nest(p);
nvars_nest(p);
(yyval.num) = p->lineno;
}
-#line 8667 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8867 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 412:
-#line 3176 "mrbgems/mruby-compiler/core/parse.y"
+ case 416:
+#line 3214 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-3].num));
local_unnest(p);
nvars_unnest(p);
}
-#line 8678 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8878 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 413:
-#line 3183 "mrbgems/mruby-compiler/core/parse.y"
+ case 417:
+#line 3221 "mrbgems/mruby-compiler/core/parse.y"
{
local_nest(p);
nvars_nest(p);
(yyval.num) = p->lineno;
}
-#line 8688 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8888 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 414:
-#line 3190 "mrbgems/mruby-compiler/core/parse.y"
+ case 418:
+#line 3228 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_block(p,(yyvsp[-2].nd),(yyvsp[-1].nd));
SET_LINENO((yyval.nd), (yyvsp[-3].num));
local_unnest(p);
nvars_unnest(p);
}
-#line 8699 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8899 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 415:
-#line 3201 "mrbgems/mruby-compiler/core/parse.y"
+ case 419:
+#line 3239 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = cons(cons((yyvsp[-3].nd), (yyvsp[-1].nd)), (yyvsp[0].nd));
}
-#line 8707 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8907 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 416:
-#line 3207 "mrbgems/mruby-compiler/core/parse.y"
+ case 420:
+#line 3245 "mrbgems/mruby-compiler/core/parse.y"
{
if ((yyvsp[0].nd)) {
(yyval.nd) = cons(cons(0, (yyvsp[0].nd)), 0);
@@ -8716,383 +8916,383 @@ yyreduce:
(yyval.nd) = 0;
}
}
-#line 8720 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8920 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 418:
-#line 3221 "mrbgems/mruby-compiler/core/parse.y"
+ case 422:
+#line 3259 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1(list3((yyvsp[-4].nd), (yyvsp[-3].nd), (yyvsp[-1].nd)));
if ((yyvsp[0].nd)) (yyval.nd) = append((yyval.nd), (yyvsp[0].nd));
}
-#line 8729 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8929 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 420:
-#line 3229 "mrbgems/mruby-compiler/core/parse.y"
+ case 424:
+#line 3267 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 8737 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8937 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 423:
-#line 3237 "mrbgems/mruby-compiler/core/parse.y"
+ case 427:
+#line 3275 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8745 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8945 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 425:
-#line 3244 "mrbgems/mruby-compiler/core/parse.y"
+ case 429:
+#line 3282 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8753 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8953 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 432:
-#line 3258 "mrbgems/mruby-compiler/core/parse.y"
+ case 436:
+#line 3296 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = concat_string(p, (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8761 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8961 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 435:
-#line 3266 "mrbgems/mruby-compiler/core/parse.y"
+ case 439:
+#line 3304 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8769 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8969 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 436:
-#line 3270 "mrbgems/mruby-compiler/core/parse.y"
+ case 440:
+#line 3308 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_dstr(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
}
-#line 8777 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8977 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 438:
-#line 3277 "mrbgems/mruby-compiler/core/parse.y"
+ case 442:
+#line 3315 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = append((yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8785 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8985 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 439:
-#line 3283 "mrbgems/mruby-compiler/core/parse.y"
+ case 443:
+#line 3321 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 8793 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 8993 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 440:
-#line 3287 "mrbgems/mruby-compiler/core/parse.y"
+ case 444:
+#line 3325 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = p->lex_strterm;
p->lex_strterm = NULL;
}
-#line 8802 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9002 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 441:
-#line 3293 "mrbgems/mruby-compiler/core/parse.y"
+ case 445:
+#line 3331 "mrbgems/mruby-compiler/core/parse.y"
{
p->lex_strterm = (yyvsp[-2].nd);
(yyval.nd) = list2((yyvsp[-3].nd), (yyvsp[-1].nd));
}
-#line 8811 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9011 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 442:
-#line 3298 "mrbgems/mruby-compiler/core/parse.y"
+ case 446:
+#line 3336 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1(new_literal_delim(p));
}
-#line 8819 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9019 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 443:
-#line 3302 "mrbgems/mruby-compiler/core/parse.y"
+ case 447:
+#line 3340 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1(new_literal_delim(p));
}
-#line 8827 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9027 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 444:
-#line 3308 "mrbgems/mruby-compiler/core/parse.y"
+ case 448:
+#line 3346 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8835 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9035 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 445:
-#line 3312 "mrbgems/mruby-compiler/core/parse.y"
+ case 449:
+#line 3350 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_dxstr(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
}
-#line 8843 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9043 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 446:
-#line 3318 "mrbgems/mruby-compiler/core/parse.y"
+ case 450:
+#line 3356 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 8851 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9051 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 447:
-#line 3322 "mrbgems/mruby-compiler/core/parse.y"
+ case 451:
+#line 3360 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_dregx(p, (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 8859 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9059 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 451:
-#line 3335 "mrbgems/mruby-compiler/core/parse.y"
+ case 455:
+#line 3373 "mrbgems/mruby-compiler/core/parse.y"
{
parser_heredoc_info * inf = parsing_heredoc_inf(p);
inf->doc = push(inf->doc, new_str(p, "", 0));
heredoc_end(p);
}
-#line 8869 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9069 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 452:
-#line 3341 "mrbgems/mruby-compiler/core/parse.y"
+ case 456:
+#line 3379 "mrbgems/mruby-compiler/core/parse.y"
{
heredoc_end(p);
}
-#line 8877 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9077 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 455:
-#line 3351 "mrbgems/mruby-compiler/core/parse.y"
+ case 459:
+#line 3389 "mrbgems/mruby-compiler/core/parse.y"
{
parser_heredoc_info * inf = parsing_heredoc_inf(p);
inf->doc = push(inf->doc, (yyvsp[0].nd));
heredoc_treat_nextline(p);
}
-#line 8887 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9087 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 456:
-#line 3357 "mrbgems/mruby-compiler/core/parse.y"
+ case 460:
+#line 3395 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = p->lex_strterm;
p->lex_strterm = NULL;
}
-#line 8896 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9096 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 457:
-#line 3363 "mrbgems/mruby-compiler/core/parse.y"
+ case 461:
+#line 3401 "mrbgems/mruby-compiler/core/parse.y"
{
parser_heredoc_info * inf = parsing_heredoc_inf(p);
p->lex_strterm = (yyvsp[-2].nd);
inf->doc = push(push(inf->doc, (yyvsp[-3].nd)), (yyvsp[-1].nd));
}
-#line 8906 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9106 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 458:
-#line 3371 "mrbgems/mruby-compiler/core/parse.y"
+ case 462:
+#line 3409 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_words(p, list1((yyvsp[0].nd)));
}
-#line 8914 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9114 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 459:
-#line 3375 "mrbgems/mruby-compiler/core/parse.y"
+ case 463:
+#line 3413 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_words(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
}
-#line 8922 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9122 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 460:
-#line 3382 "mrbgems/mruby-compiler/core/parse.y"
+ case 464:
+#line 3420 "mrbgems/mruby-compiler/core/parse.y"
{
p->lstate = EXPR_ENDARG;
(yyval.nd) = new_sym(p, (yyvsp[0].id));
}
-#line 8931 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9131 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 461:
-#line 3387 "mrbgems/mruby-compiler/core/parse.y"
+ case 465:
+#line 3425 "mrbgems/mruby-compiler/core/parse.y"
{
p->lstate = EXPR_ENDARG;
(yyval.nd) = new_dsym(p, new_dstr(p, push((yyvsp[-1].nd), (yyvsp[0].nd))));
}
-#line 8940 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9140 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 462:
-#line 3394 "mrbgems/mruby-compiler/core/parse.y"
+ case 466:
+#line 3432 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.id) = (yyvsp[0].id);
}
-#line 8948 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9148 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 467:
-#line 3404 "mrbgems/mruby-compiler/core/parse.y"
+ case 471:
+#line 3442 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.id) = new_strsym(p, (yyvsp[0].nd));
}
-#line 8956 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9156 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 468:
-#line 3408 "mrbgems/mruby-compiler/core/parse.y"
+ case 472:
+#line 3446 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.id) = new_strsym(p, (yyvsp[0].nd));
}
-#line 8964 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9164 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 469:
-#line 3414 "mrbgems/mruby-compiler/core/parse.y"
+ case 473:
+#line 3452 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_symbols(p, list1((yyvsp[0].nd)));
}
-#line 8972 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9172 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 470:
-#line 3418 "mrbgems/mruby-compiler/core/parse.y"
+ case 474:
+#line 3456 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_symbols(p, push((yyvsp[-1].nd), (yyvsp[0].nd)));
}
-#line 8980 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9180 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 473:
-#line 3426 "mrbgems/mruby-compiler/core/parse.y"
+ case 477:
+#line 3464 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = negate_lit(p, (yyvsp[0].nd));
}
-#line 8988 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9188 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 474:
-#line 3430 "mrbgems/mruby-compiler/core/parse.y"
+ case 478:
+#line 3468 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = negate_lit(p, (yyvsp[0].nd));
}
-#line 8996 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9196 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 475:
-#line 3436 "mrbgems/mruby-compiler/core/parse.y"
+ case 479:
+#line 3474 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_lvar(p, (yyvsp[0].id));
}
-#line 9004 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9204 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 476:
-#line 3440 "mrbgems/mruby-compiler/core/parse.y"
+ case 480:
+#line 3478 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_ivar(p, (yyvsp[0].id));
}
-#line 9012 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9212 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 477:
-#line 3444 "mrbgems/mruby-compiler/core/parse.y"
+ case 481:
+#line 3482 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_gvar(p, (yyvsp[0].id));
}
-#line 9020 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9220 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 478:
-#line 3448 "mrbgems/mruby-compiler/core/parse.y"
+ case 482:
+#line 3486 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_cvar(p, (yyvsp[0].id));
}
-#line 9028 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9228 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 479:
-#line 3452 "mrbgems/mruby-compiler/core/parse.y"
+ case 483:
+#line 3490 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_const(p, (yyvsp[0].id));
}
-#line 9036 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9236 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 480:
-#line 3458 "mrbgems/mruby-compiler/core/parse.y"
+ case 484:
+#line 3496 "mrbgems/mruby-compiler/core/parse.y"
{
assignable(p, (yyvsp[0].nd));
}
-#line 9044 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9244 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 481:
-#line 3462 "mrbgems/mruby-compiler/core/parse.y"
+ case 485:
+#line 3500 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "can't assign to numbered parameter");
}
-#line 9052 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9252 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 482:
-#line 3468 "mrbgems/mruby-compiler/core/parse.y"
+ case 486:
+#line 3506 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = var_reference(p, (yyvsp[0].nd));
}
-#line 9060 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9260 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 483:
-#line 3472 "mrbgems/mruby-compiler/core/parse.y"
+ case 487:
+#line 3510 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_nil(p);
}
-#line 9068 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9268 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 484:
-#line 3476 "mrbgems/mruby-compiler/core/parse.y"
+ case 488:
+#line 3514 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_self(p);
}
-#line 9076 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9276 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 485:
-#line 3480 "mrbgems/mruby-compiler/core/parse.y"
+ case 489:
+#line 3518 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_true(p);
}
-#line 9084 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9284 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 486:
-#line 3484 "mrbgems/mruby-compiler/core/parse.y"
+ case 490:
+#line 3522 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_false(p);
}
-#line 9092 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9292 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 487:
-#line 3488 "mrbgems/mruby-compiler/core/parse.y"
+ case 491:
+#line 3526 "mrbgems/mruby-compiler/core/parse.y"
{
const char *fn = mrb_sym_name_len(p->mrb, p->filename_sym, NULL);
if (!fn) {
@@ -9100,22 +9300,22 @@ yyreduce:
}
(yyval.nd) = new_str(p, fn, strlen(fn));
}
-#line 9104 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9304 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 488:
-#line 3496 "mrbgems/mruby-compiler/core/parse.y"
+ case 492:
+#line 3534 "mrbgems/mruby-compiler/core/parse.y"
{
char buf[16];
dump_int(p->lineno, buf);
(yyval.nd) = new_int(p, buf, 10, 0);
}
-#line 9115 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9315 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 489:
-#line 3503 "mrbgems/mruby-compiler/core/parse.y"
+ case 493:
+#line 3541 "mrbgems/mruby-compiler/core/parse.y"
{
#ifdef MRB_UTF8_STRING
const char *enc = "UTF-8";
@@ -9124,46 +9324,46 @@ yyreduce:
#endif
(yyval.nd) = new_str(p, enc, strlen(enc));
}
-#line 9128 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9328 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 492:
-#line 3518 "mrbgems/mruby-compiler/core/parse.y"
+ case 496:
+#line 3556 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 9136 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9336 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 493:
-#line 3522 "mrbgems/mruby-compiler/core/parse.y"
+ case 497:
+#line 3560 "mrbgems/mruby-compiler/core/parse.y"
{
p->lstate = EXPR_BEG;
p->cmd_start = TRUE;
}
-#line 9145 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9345 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 494:
-#line 3527 "mrbgems/mruby-compiler/core/parse.y"
+ case 498:
+#line 3565 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 9153 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9353 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 497:
-#line 3543 "mrbgems/mruby-compiler/core/parse.y"
+ case 501:
+#line 3581 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
p->lstate = EXPR_BEG;
p->cmd_start = TRUE;
}
-#line 9163 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9363 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 498:
-#line 3549 "mrbgems/mruby-compiler/core/parse.y"
+ case 502:
+#line 3587 "mrbgems/mruby-compiler/core/parse.y"
{
#if 1
/* til real keyword args implemented */
@@ -9181,11 +9381,11 @@ yyreduce:
new_args_tail(p, 0, new_kw_rest_args(p, nsym(k)), b));
#endif
}
-#line 9185 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9385 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 499:
-#line 3567 "mrbgems/mruby-compiler/core/parse.y"
+ case 503:
+#line 3605 "mrbgems/mruby-compiler/core/parse.y"
{
#if 1
/* til real keyword args implemented */
@@ -9203,504 +9403,504 @@ yyreduce:
new_args_tail(p, 0, new_kw_rest_args(p, nsym(k)), b));
#endif
}
-#line 9207 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9407 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 501:
-#line 3588 "mrbgems/mruby-compiler/core/parse.y"
+ case 505:
+#line 3626 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 9215 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9415 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 502:
-#line 3594 "mrbgems/mruby-compiler/core/parse.y"
+ case 506:
+#line 3632 "mrbgems/mruby-compiler/core/parse.y"
{
local_nest(p);
}
-#line 9223 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9423 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 503:
-#line 3600 "mrbgems/mruby-compiler/core/parse.y"
+ case 507:
+#line 3638 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p)));
local_unnest(p);
}
-#line 9233 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9433 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 504:
-#line 3606 "mrbgems/mruby-compiler/core/parse.y"
+ case 508:
+#line 3644 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0);
local_unnest(p);
}
-#line 9242 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9442 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 505:
-#line 3613 "mrbgems/mruby-compiler/core/parse.y"
+ case 509:
+#line 3651 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_kw_arg(p, (yyvsp[-1].id), cons((yyvsp[0].nd), locals_node(p)));
local_unnest(p);
}
-#line 9251 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9451 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 506:
-#line 3618 "mrbgems/mruby-compiler/core/parse.y"
+ case 510:
+#line 3656 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_kw_arg(p, (yyvsp[0].id), 0);
local_unnest(p);
}
-#line 9260 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9460 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 507:
-#line 3625 "mrbgems/mruby-compiler/core/parse.y"
+ case 511:
+#line 3663 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 9268 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9468 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 508:
-#line 3629 "mrbgems/mruby-compiler/core/parse.y"
+ case 512:
+#line 3667 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9276 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9476 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 509:
-#line 3635 "mrbgems/mruby-compiler/core/parse.y"
+ case 513:
+#line 3673 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 9284 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9484 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 510:
-#line 3639 "mrbgems/mruby-compiler/core/parse.y"
+ case 514:
+#line 3677 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9292 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9492 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 513:
-#line 3649 "mrbgems/mruby-compiler/core/parse.y"
+ case 517:
+#line 3687 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_kw_rest_args(p, nsym((yyvsp[0].id)));
}
-#line 9300 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9500 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 514:
-#line 3653 "mrbgems/mruby-compiler/core/parse.y"
+ case 518:
+#line 3691 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_kw_rest_args(p, 0);
}
-#line 9308 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9508 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 515:
-#line 3659 "mrbgems/mruby-compiler/core/parse.y"
+ case 519:
+#line 3697 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args_tail(p, (yyvsp[-3].nd), (yyvsp[-1].nd), (yyvsp[0].id));
}
-#line 9316 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9516 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 516:
-#line 3663 "mrbgems/mruby-compiler/core/parse.y"
+ case 520:
+#line 3701 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args_tail(p, (yyvsp[-1].nd), 0, (yyvsp[0].id));
}
-#line 9324 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9524 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 517:
-#line 3667 "mrbgems/mruby-compiler/core/parse.y"
+ case 521:
+#line 3705 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args_tail(p, 0, (yyvsp[-1].nd), (yyvsp[0].id));
}
-#line 9332 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9532 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 518:
-#line 3671 "mrbgems/mruby-compiler/core/parse.y"
+ case 522:
+#line 3709 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args_tail(p, 0, 0, (yyvsp[0].id));
}
-#line 9340 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9540 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 519:
-#line 3677 "mrbgems/mruby-compiler/core/parse.y"
+ case 523:
+#line 3715 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
}
-#line 9348 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9548 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 520:
-#line 3681 "mrbgems/mruby-compiler/core/parse.y"
+ case 524:
+#line 3719 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args_tail(p, 0, 0, 0);
}
-#line 9356 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9556 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 521:
-#line 3687 "mrbgems/mruby-compiler/core/parse.y"
+ case 525:
+#line 3725 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
-#line 9364 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9564 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 522:
-#line 3691 "mrbgems/mruby-compiler/core/parse.y"
+ case 526:
+#line 3729 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, (yyvsp[-7].nd), (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 9372 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9572 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 523:
-#line 3695 "mrbgems/mruby-compiler/core/parse.y"
+ case 527:
+#line 3733 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, (yyvsp[-3].nd), (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
}
-#line 9380 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9580 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 524:
-#line 3699 "mrbgems/mruby-compiler/core/parse.y"
+ case 528:
+#line 3737 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, (yyvsp[-5].nd), (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 9388 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9588 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 525:
-#line 3703 "mrbgems/mruby-compiler/core/parse.y"
+ case 529:
+#line 3741 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
-#line 9396 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9596 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 526:
-#line 3707 "mrbgems/mruby-compiler/core/parse.y"
+ case 530:
+#line 3745 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, (yyvsp[-5].nd), 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 9404 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9604 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 527:
-#line 3711 "mrbgems/mruby-compiler/core/parse.y"
+ case 531:
+#line 3749 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, (yyvsp[-1].nd), 0, 0, 0, (yyvsp[0].nd));
}
-#line 9412 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9612 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 528:
-#line 3715 "mrbgems/mruby-compiler/core/parse.y"
+ case 532:
+#line 3753 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
-#line 9420 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9620 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 529:
-#line 3719 "mrbgems/mruby-compiler/core/parse.y"
+ case 533:
+#line 3757 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, 0, (yyvsp[-5].nd), (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 9428 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9628 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 530:
-#line 3723 "mrbgems/mruby-compiler/core/parse.y"
+ case 534:
+#line 3761 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, 0, (yyvsp[-1].nd), 0, 0, (yyvsp[0].nd));
}
-#line 9436 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9636 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 531:
-#line 3727 "mrbgems/mruby-compiler/core/parse.y"
+ case 535:
+#line 3765 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, 0, (yyvsp[-3].nd), 0, (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 9444 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9644 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 532:
-#line 3731 "mrbgems/mruby-compiler/core/parse.y"
+ case 536:
+#line 3769 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, 0, 0, (yyvsp[-1].id), 0, (yyvsp[0].nd));
}
-#line 9452 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9652 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 533:
-#line 3735 "mrbgems/mruby-compiler/core/parse.y"
+ case 537:
+#line 3773 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, 0, 0, (yyvsp[-3].id), (yyvsp[-1].nd), (yyvsp[0].nd));
}
-#line 9460 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9660 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 534:
-#line 3739 "mrbgems/mruby-compiler/core/parse.y"
+ case 538:
+#line 3777 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_args(p, 0, 0, 0, 0, (yyvsp[0].nd));
}
-#line 9468 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9668 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 535:
-#line 3743 "mrbgems/mruby-compiler/core/parse.y"
+ case 539:
+#line 3781 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, intern_op(and));
(yyval.nd) = new_args(p, 0, 0, 0, 0, 0);
}
-#line 9477 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9677 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 536:
-#line 3750 "mrbgems/mruby-compiler/core/parse.y"
+ case 540:
+#line 3788 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "formal argument cannot be a constant");
(yyval.nd) = 0;
}
-#line 9486 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9686 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 537:
-#line 3755 "mrbgems/mruby-compiler/core/parse.y"
+ case 541:
+#line 3793 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "formal argument cannot be an instance variable");
(yyval.nd) = 0;
}
-#line 9495 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9695 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 538:
-#line 3760 "mrbgems/mruby-compiler/core/parse.y"
+ case 542:
+#line 3798 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "formal argument cannot be a global variable");
(yyval.nd) = 0;
}
-#line 9504 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9704 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 539:
-#line 3765 "mrbgems/mruby-compiler/core/parse.y"
+ case 543:
+#line 3803 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "formal argument cannot be a class variable");
(yyval.nd) = 0;
}
-#line 9513 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9713 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 540:
-#line 3770 "mrbgems/mruby-compiler/core/parse.y"
+ case 544:
+#line 3808 "mrbgems/mruby-compiler/core/parse.y"
{
yyerror(p, "formal argument cannot be a numbered parameter");
(yyval.nd) = 0;
}
-#line 9522 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9722 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 541:
-#line 3777 "mrbgems/mruby-compiler/core/parse.y"
+ case 545:
+#line 3815 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.id) = 0;
}
-#line 9530 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9730 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 542:
-#line 3781 "mrbgems/mruby-compiler/core/parse.y"
+ case 546:
+#line 3819 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, (yyvsp[0].id));
(yyval.id) = (yyvsp[0].id);
}
-#line 9539 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9739 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 543:
-#line 3788 "mrbgems/mruby-compiler/core/parse.y"
+ case 547:
+#line 3826 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_arg(p, (yyvsp[0].id));
}
-#line 9547 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9747 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 544:
-#line 3792 "mrbgems/mruby-compiler/core/parse.y"
+ case 548:
+#line 3830 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = local_switch(p);
}
-#line 9555 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9755 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 545:
-#line 3796 "mrbgems/mruby-compiler/core/parse.y"
+ case 549:
+#line 3834 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = new_masgn_param(p, (yyvsp[-1].nd), p->locals->car);
local_resume(p, (yyvsp[-2].nd));
local_add_f(p, 0);
}
-#line 9565 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9765 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 546:
-#line 3804 "mrbgems/mruby-compiler/core/parse.y"
+ case 550:
+#line 3842 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 9573 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9773 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 547:
-#line 3808 "mrbgems/mruby-compiler/core/parse.y"
+ case 551:
+#line 3846 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9581 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9781 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 548:
-#line 3814 "mrbgems/mruby-compiler/core/parse.y"
+ case 552:
+#line 3852 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, (yyvsp[-1].id));
local_nest(p);
(yyval.id) = (yyvsp[-1].id);
}
-#line 9591 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9791 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 549:
-#line 3822 "mrbgems/mruby-compiler/core/parse.y"
+ case 553:
+#line 3860 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons(nsym((yyvsp[-1].id)), cons((yyvsp[0].nd), locals_node(p)));
local_unnest(p);
}
-#line 9601 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9801 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 550:
-#line 3830 "mrbgems/mruby-compiler/core/parse.y"
+ case 554:
+#line 3868 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons(nsym((yyvsp[-1].id)), cons((yyvsp[0].nd), locals_node(p)));
local_unnest(p);
}
-#line 9611 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9811 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 551:
-#line 3838 "mrbgems/mruby-compiler/core/parse.y"
+ case 555:
+#line 3876 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 9619 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9819 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 552:
-#line 3842 "mrbgems/mruby-compiler/core/parse.y"
+ case 556:
+#line 3880 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9627 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9827 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 553:
-#line 3848 "mrbgems/mruby-compiler/core/parse.y"
+ case 557:
+#line 3886 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
}
-#line 9635 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9835 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 554:
-#line 3852 "mrbgems/mruby-compiler/core/parse.y"
+ case 558:
+#line 3890 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9643 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9843 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 557:
-#line 3862 "mrbgems/mruby-compiler/core/parse.y"
+ case 561:
+#line 3900 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, (yyvsp[0].id));
(yyval.id) = (yyvsp[0].id);
}
-#line 9652 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9852 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 558:
-#line 3867 "mrbgems/mruby-compiler/core/parse.y"
+ case 562:
+#line 3905 "mrbgems/mruby-compiler/core/parse.y"
{
local_add_f(p, intern_op(mul));
(yyval.id) = -1;
}
-#line 9661 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9861 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 561:
-#line 3878 "mrbgems/mruby-compiler/core/parse.y"
+ case 565:
+#line 3916 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.id) = (yyvsp[0].id);
}
-#line 9669 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9869 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 562:
-#line 3884 "mrbgems/mruby-compiler/core/parse.y"
+ case 566:
+#line 3922 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.id) = (yyvsp[0].id);
}
-#line 9677 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9877 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 563:
-#line 3888 "mrbgems/mruby-compiler/core/parse.y"
+ case 567:
+#line 3926 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.id) = 0;
}
-#line 9685 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9885 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 564:
-#line 3894 "mrbgems/mruby-compiler/core/parse.y"
+ case 568:
+#line 3932 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[0].nd);
if (!(yyval.nd)) (yyval.nd) = new_nil(p);
}
-#line 9694 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9894 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 565:
-#line 3898 "mrbgems/mruby-compiler/core/parse.y"
+ case 569:
+#line 3936 "mrbgems/mruby-compiler/core/parse.y"
{p->lstate = EXPR_BEG;}
-#line 9700 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9900 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 566:
-#line 3899 "mrbgems/mruby-compiler/core/parse.y"
+ case 570:
+#line 3937 "mrbgems/mruby-compiler/core/parse.y"
{
if ((yyvsp[-1].nd) == 0) {
yyerror(p, "can't define singleton method for ().");
@@ -9723,55 +9923,55 @@ yyreduce:
}
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 9727 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9927 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 568:
-#line 3925 "mrbgems/mruby-compiler/core/parse.y"
+ case 572:
+#line 3963 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = (yyvsp[-1].nd);
}
-#line 9735 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9935 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 569:
-#line 3931 "mrbgems/mruby-compiler/core/parse.y"
+ case 573:
+#line 3969 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = list1((yyvsp[0].nd));
NODE_LINENO((yyval.nd), (yyvsp[0].nd));
}
-#line 9744 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9944 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 570:
-#line 3936 "mrbgems/mruby-compiler/core/parse.y"
+ case 574:
+#line 3974 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = push((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9752 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9952 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 573:
-#line 3946 "mrbgems/mruby-compiler/core/parse.y"
+ case 577:
+#line 3984 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[-2].nd));
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons((yyvsp[-2].nd), (yyvsp[0].nd));
}
-#line 9762 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9962 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 574:
-#line 3952 "mrbgems/mruby-compiler/core/parse.y"
+ case 578:
+#line 3990 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons(new_sym(p, (yyvsp[-2].id)), (yyvsp[0].nd));
}
-#line 9771 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9971 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 575:
-#line 3957 "mrbgems/mruby-compiler/core/parse.y"
+ case 579:
+#line 3995 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
if (typen((yyvsp[-2].nd)->car) == NODE_DSTR) {
@@ -9781,67 +9981,67 @@ yyreduce:
(yyval.nd) = cons(new_sym(p, new_strsym(p, (yyvsp[-2].nd))), (yyvsp[0].nd));
}
}
-#line 9785 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9985 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 576:
-#line 3967 "mrbgems/mruby-compiler/core/parse.y"
+ case 580:
+#line 4005 "mrbgems/mruby-compiler/core/parse.y"
{
void_expr_error(p, (yyvsp[0].nd));
(yyval.nd) = cons(new_kw_rest_args(p, 0), (yyvsp[0].nd));
}
-#line 9794 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 9994 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 589:
-#line 3994 "mrbgems/mruby-compiler/core/parse.y"
+ case 593:
+#line 4032 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.num) = '.';
}
-#line 9802 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 10002 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 590:
-#line 3998 "mrbgems/mruby-compiler/core/parse.y"
+ case 594:
+#line 4036 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.num) = 0;
}
-#line 9810 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 10010 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 592:
-#line 4005 "mrbgems/mruby-compiler/core/parse.y"
+ case 596:
+#line 4043 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.num) = tCOLON2;
}
-#line 9818 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 10018 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 601:
-#line 4026 "mrbgems/mruby-compiler/core/parse.y"
+ case 605:
+#line 4064 "mrbgems/mruby-compiler/core/parse.y"
{yyerrok;}
-#line 9824 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 10024 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 604:
-#line 4032 "mrbgems/mruby-compiler/core/parse.y"
+ case 608:
+#line 4070 "mrbgems/mruby-compiler/core/parse.y"
{
p->lineno += (yyvsp[0].num);
p->column = 0;
}
-#line 9833 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 10033 "mrbgems/mruby-compiler/core/y.tab.c"
break;
- case 607:
-#line 4043 "mrbgems/mruby-compiler/core/parse.y"
+ case 611:
+#line 4081 "mrbgems/mruby-compiler/core/parse.y"
{
(yyval.nd) = 0;
}
-#line 9841 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 10041 "mrbgems/mruby-compiler/core/y.tab.c"
break;
-#line 9845 "mrbgems/mruby-compiler/core/y.tab.c"
+#line 10045 "mrbgems/mruby-compiler/core/y.tab.c"
default: break;
}
@@ -10073,7 +10273,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 4047 "mrbgems/mruby-compiler/core/parse.y"
+#line 4085 "mrbgems/mruby-compiler/core/parse.y"
#define pylval (*((YYSTYPE*)(p->ylval)))
diff --git a/mrbgems/mruby-complex/src/complex.c b/mrbgems/mruby-complex/src/complex.c
index fe66e0e37..2a2f9c49b 100644
--- a/mrbgems/mruby-complex/src/complex.c
+++ b/mrbgems/mruby-complex/src/complex.c
@@ -184,7 +184,7 @@ complex_add(mrb_state *mrb, mrb_value x)
default:
{
- mrb_float z = mrb_to_flo(mrb, y);
+ mrb_float z = mrb_as_float(mrb, y);
return mrb_complex_new(mrb, p1->real+z, p1->imaginary);
}
}
@@ -205,7 +205,7 @@ complex_sub(mrb_state *mrb, mrb_value x)
default:
{
- mrb_float z = mrb_to_flo(mrb, y);
+ mrb_float z = mrb_as_float(mrb, y);
return mrb_complex_new(mrb, p1->real-z, p1->imaginary);
}
}
@@ -227,16 +227,12 @@ complex_mul(mrb_state *mrb, mrb_value x)
default:
{
- mrb_float z = mrb_to_flo(mrb, y);
+ mrb_float z = mrb_as_float(mrb, y);
return mrb_complex_new(mrb, p1->real*z, p1->imaginary*z);
}
}
}
-#ifndef MRB_NO_FLOAT
-mrb_float mrb_div_flo(mrb_float, mrb_float);
-#endif
-
/* Arithmetic on (significand, exponent) pairs avoids premature overflow in
complex division */
struct float_pair {
@@ -273,7 +269,7 @@ static void
div_pair(struct float_pair *q, struct float_pair const *a,
struct float_pair const *b)
{
- q->s = mrb_div_flo(a->s, b->s);
+ q->s = mrb_div_float(a->s, b->s);
q->x = a->x - b->x;
}
@@ -285,8 +281,8 @@ complex_div(mrb_state *mrb, mrb_value self)
a = complex_ptr(mrb, self);
if (mrb_type(rhs) != MRB_TT_COMPLEX) {
- mrb_float f = mrb_to_flo(mrb, rhs);
- return complex_new(mrb, mrb_div_flo(a->real, f), mrb_div_flo(a->imaginary, f));
+ mrb_float f = mrb_as_float(mrb, rhs);
+ return complex_new(mrb, mrb_div_float(a->real, f), mrb_div_float(a->imaginary, f));
}
struct float_pair ar, ai, br, bi;
@@ -356,7 +352,7 @@ cpx_int_div(mrb_state *mrb, mrb_value x)
x = complex_new(mrb, (mrb_float)a, 0);
return complex_div(mrb, x);
default:
- return mrb_float_value(mrb, mrb_div_flo((mrb_float)a, mrb_to_flo(mrb, y)));
+ return mrb_float_value(mrb, mrb_div_float((mrb_float)a, mrb_as_float(mrb, y)));
}
}
@@ -381,7 +377,7 @@ cpx_int_quo(mrb_state *mrb, mrb_value x)
x = complex_new(mrb, (mrb_float)a, 0);
return complex_div(mrb, x);
default:
- return mrb_float_value(mrb, mrb_div_flo((mrb_float)a, mrb_to_flo(mrb, y)));
+ return mrb_float_value(mrb, mrb_div_float((mrb_float)a, mrb_as_float(mrb, y)));
}
}
@@ -395,10 +391,10 @@ cpx_flo_div(mrb_state *mrb, mrb_value x)
case MRB_TT_COMPLEX:
return complex_div(mrb, complex_new(mrb, a, 0));
case MRB_TT_FLOAT:
- a = mrb_div_flo(a, mrb_float(y));
+ a = mrb_div_float(a, mrb_float(y));
return mrb_float_value(mrb, a);
default:
- a = mrb_div_flo(a, mrb_to_flo(mrb, y));
+ a = mrb_div_float(a, mrb_as_float(mrb, y));
return mrb_float_value(mrb, a);
}
}
@@ -429,10 +425,10 @@ void mrb_mruby_complex_gem_init(mrb_state *mrb)
mrb_define_method(mrb, comp, "/", complex_div, MRB_ARGS_REQ(1));
mrb_define_method(mrb, comp, "quo", complex_div, MRB_ARGS_REQ(1));
mrb_define_method(mrb, comp, "==", complex_eq, MRB_ARGS_REQ(1));
- mrb_define_method(mrb, mrb->integer_class, "/", cpx_int_div, MRB_ARGS_REQ(1)); /* overrride */
- mrb_define_method(mrb, mrb->integer_class, "quo", cpx_int_quo, MRB_ARGS_REQ(1)); /* overrride */
- mrb_define_method(mrb, mrb->float_class, "/", cpx_flo_div, MRB_ARGS_REQ(1)); /* overrride */
- mrb_define_method(mrb, mrb->float_class, "quo", cpx_flo_div, MRB_ARGS_REQ(1)); /* overrride */
+ mrb_define_method(mrb, mrb->integer_class, "/", cpx_int_div, MRB_ARGS_REQ(1)); /* override */
+ mrb_define_method(mrb, mrb->integer_class, "quo", cpx_int_quo, MRB_ARGS_REQ(1)); /* override */
+ mrb_define_method(mrb, mrb->float_class, "/", cpx_flo_div, MRB_ARGS_REQ(1)); /* override */
+ mrb_define_method(mrb, mrb->float_class, "quo", cpx_flo_div, MRB_ARGS_REQ(1)); /* override */
}
void
diff --git a/mrbgems/mruby-error/src/exception.c b/mrbgems/mruby-error/src/exception.c
index ca26b8819..ffa7d53bf 100644
--- a/mrbgems/mruby-error/src/exception.c
+++ b/mrbgems/mruby-error/src/exception.c
@@ -31,7 +31,7 @@ mrb_ensure(mrb_state *mrb, mrb_func_t body, mrb_value b_data, mrb_func_t ensure,
mrb_gc_arena_restore(mrb, ai);
mrb_gc_protect(mrb, result);
if (error) {
- mrb_exc_raise(mrb, result); /* rethrow catched exceptions */
+ mrb_exc_raise(mrb, result); /* rethrow caught exceptions */
}
return result;
}
diff --git a/mrbgems/mruby-eval/src/eval.c b/mrbgems/mruby-eval/src/eval.c
index 508f5ffcb..dc0017e1c 100644
--- a/mrbgems/mruby-eval/src/eval.c
+++ b/mrbgems/mruby-eval/src/eval.c
@@ -11,6 +11,7 @@
struct REnv *mrb_env_new(mrb_state *mrb, struct mrb_context *c, mrb_callinfo *ci, int nstacks, mrb_value *stack, struct RClass *tc);
mrb_value mrb_exec_irep(mrb_state *mrb, mrb_value self, struct RProc *p, mrb_func_t posthook);
mrb_value mrb_obj_instance_eval(mrb_state *mrb, mrb_value self);
+mrb_value mrb_mod_module_eval(mrb_state*, mrb_value);
void mrb_codedump_all(mrb_state*, struct RProc*);
void mrb_proc_merge_lvar(mrb_state *mrb, mrb_irep *irep, struct REnv *env, int num, const mrb_sym *lv, const mrb_value *stack);
@@ -221,11 +222,41 @@ f_instance_eval(mrb_state *mrb, mrb_value self)
}
}
+static mrb_value
+f_class_eval(mrb_state *mrb, mrb_value self)
+{
+ mrb_value b;
+ mrb_int argc; const mrb_value *argv;
+
+ mrb_get_args(mrb, "*!&", &argv, &argc, &b);
+
+ if (mrb_nil_p(b)) {
+ const char *s;
+ mrb_int len;
+ const char *file = NULL;
+ mrb_int line = 1;
+ struct RProc *proc;
+
+ mrb_get_args(mrb, "s|zi", &s, &len, &file, &line);
+ proc = create_proc_from_string(mrb, s, len, mrb_nil_value(), file, line);
+ MRB_PROC_SET_TARGET_CLASS(proc, mrb_class_ptr(self));
+ mrb_assert(!MRB_PROC_CFUNC_P(proc));
+ mrb_vm_ci_target_class_set(mrb->c->ci, mrb_class_ptr(self));
+ return exec_irep(mrb, self, proc, NULL);
+ }
+ else {
+ mrb_get_args(mrb, "&", &b);
+ return mrb_mod_module_eval(mrb, self);
+ }
+}
+
void
mrb_mruby_eval_gem_init(mrb_state* mrb)
{
mrb_define_module_function(mrb, mrb->kernel_module, "eval", f_eval, MRB_ARGS_ARG(1, 3));
mrb_define_method_id(mrb, mrb_class_get_id(mrb, MRB_SYM(BasicObject)), MRB_SYM(instance_eval), f_instance_eval, MRB_ARGS_OPT(3)|MRB_ARGS_BLOCK());
+ mrb_define_method_id(mrb, mrb_class_get_id(mrb, MRB_SYM(Module)), MRB_SYM(module_eval), f_class_eval, MRB_ARGS_OPT(3)|MRB_ARGS_BLOCK());
+ mrb_define_method_id(mrb, mrb_class_get_id(mrb, MRB_SYM(Module)), MRB_SYM(class_eval), f_class_eval, MRB_ARGS_OPT(3)|MRB_ARGS_BLOCK());
}
void
diff --git a/mrbgems/mruby-eval/test/eval.rb b/mrbgems/mruby-eval/test/eval.rb
index e95171223..524b0b959 100644
--- a/mrbgems/mruby-eval/test/eval.rb
+++ b/mrbgems/mruby-eval/test/eval.rb
@@ -151,3 +151,11 @@ assert('Access numbered parameter from eval') do
hoge.fuga(3) { _1 + eval("_1") }
}
end
+
+assert('Module#class_eval with string') do
+ c = Class.new
+ c.class_eval "def foo() 42; end"
+ cc = c.new
+ assert_true cc.respond_to?(:foo)
+ assert_equal 42, c.new.foo
+end
diff --git a/mrbgems/mruby-io/src/file.c b/mrbgems/mruby-io/src/file.c
index 03a6a070d..b9e1eca03 100644
--- a/mrbgems/mruby-io/src/file.c
+++ b/mrbgems/mruby-io/src/file.c
@@ -497,7 +497,7 @@ mrb_file_truncate(mrb_state *mrb, mrb_value self)
mrb_value lenv = mrb_get_arg1(mrb);
fd = mrb_io_fileno(mrb, self);
- length = mrb_int(mrb, lenv);
+ length = mrb_as_int(mrb, lenv);
if (mrb_ftruncate(fd, length) != 0) {
mrb_raise(mrb, E_IO_ERROR, "ftruncate failed");
}
diff --git a/mrbgems/mruby-io/src/io.c b/mrbgems/mruby-io/src/io.c
index 234d7b1fc..0c79660a8 100644
--- a/mrbgems/mruby-io/src/io.c
+++ b/mrbgems/mruby-io/src/io.c
@@ -169,7 +169,7 @@ mrb_io_mode_to_flags(mrb_state *mrb, mrb_value mode)
}
else {
int flags = 0;
- mrb_int flags0 = mrb_int(mrb, mode);
+ mrb_int flags0 = mrb_as_int(mrb, mode);
switch (flags0 & MRB_O_ACCMODE) {
case MRB_O_RDONLY:
@@ -1415,7 +1415,7 @@ mrb_io_sync(mrb_state *mrb, mrb_value self)
static off_t
value2off(mrb_state *mrb, mrb_value offv)
{
- return (off_t)mrb_int(mrb, offv);
+ return (off_t)mrb_as_int(mrb, offv);
}
/*
diff --git a/mrbgems/mruby-kernel-ext/src/kernel.c b/mrbgems/mruby-kernel-ext/src/kernel.c
index 7afa6fa5f..15b4c5f72 100644
--- a/mrbgems/mruby-kernel-ext/src/kernel.c
+++ b/mrbgems/mruby-kernel-ext/src/kernel.c
@@ -8,57 +8,58 @@
static mrb_value
mrb_f_caller(mrb_state *mrb, mrb_value self)
{
- mrb_value bt, v, length;
+ mrb_value bt, v;
mrb_int bt_len, argc, lev, n;
+ argc = mrb_get_args(mrb, "|oi", &v, &n);
+
bt = mrb_get_backtrace(mrb);
bt_len = RARRAY_LEN(bt);
- argc = mrb_get_args(mrb, "|oo", &v, &length);
switch (argc) {
- case 0:
- lev = 1;
- n = bt_len - lev;
- break;
- case 1:
- if (mrb_range_p(v)) {
- mrb_int beg, len;
- if (mrb_range_beg_len(mrb, v, &beg, &len, bt_len, TRUE) == MRB_RANGE_OK) {
- lev = beg;
- n = len;
- }
- else {
- return mrb_nil_value();
- }
+ case 0:
+ lev = 1;
+ n = bt_len - 1;
+ break;
+ case 1:
+ if (mrb_range_p(v)) {
+ mrb_int beg, len;
+ if (mrb_range_beg_len(mrb, v, &beg, &len, bt_len, TRUE) == MRB_RANGE_OK) {
+ lev = beg;
+ n = len;
}
else {
- lev = mrb_int(mrb, v);
- if (lev < 0) {
- mrb_raisef(mrb, E_ARGUMENT_ERROR, "negative level (%v)", v);
- }
- n = bt_len - lev;
+ return mrb_nil_value();
}
- break;
- case 2:
- lev = mrb_int(mrb, v);
- n = mrb_int(mrb, length);
+ }
+ else {
+ lev = mrb_as_int(mrb, v);
if (lev < 0) {
mrb_raisef(mrb, E_ARGUMENT_ERROR, "negative level (%v)", v);
}
- if (n < 0) {
- mrb_raisef(mrb, E_ARGUMENT_ERROR, "negative size (%v)", length);
- }
- break;
- default:
- lev = n = 0;
- break;
+ n = bt_len - lev;
+ }
+ break;
+ case 2:
+ lev = mrb_as_int(mrb, v);
+ break;
+ default:
+ /* not reached */
+ lev = n = 0;
+ break;
}
-
- if (n == 0) {
+ if (lev >= bt_len) return mrb_nil_value();
+ if (lev < 0) {
+ mrb_raisef(mrb, E_ARGUMENT_ERROR, "negative level (%v)", v);
+ }
+ if (n < 0) {
+ mrb_raisef(mrb, E_ARGUMENT_ERROR, "negative size (%d)", n);
+ }
+ if (n == 0 || bt_len <= lev) {
return mrb_ary_new(mrb);
}
-
- return mrb_funcall_id(mrb, bt, MRB_OPSYM(aref), 2, mrb_fixnum_value(lev), mrb_fixnum_value(n));
+ if (bt_len <= n + lev) n = bt_len - lev - 1;
+ return mrb_ary_new_from_values(mrb, n, RARRAY_PTR(bt)+lev+1);
}
/*
@@ -131,7 +132,7 @@ mrb_f_float(mrb_state *mrb, mrb_value self)
{
mrb_value arg = mrb_get_arg1(mrb);
- return mrb_Float(mrb, arg);
+ return mrb_to_float(mrb, arg);
}
#endif
diff --git a/mrbgems/mruby-metaprog/test/metaprog.rb b/mrbgems/mruby-metaprog/test/metaprog.rb
index d63913020..4d2651702 100644
--- a/mrbgems/mruby-metaprog/test/metaprog.rb
+++ b/mrbgems/mruby-metaprog/test/metaprog.rb
@@ -104,6 +104,17 @@ assert('Kernel#global_variables', '15.3.1.3.14') do
assert_equal(1, variables2.size - variables1.size)
end
+assert('Kernel#local_variables', '15.3.1.3.28') do
+ assert_equal Array, local_variables.class
+
+ def local_var_list
+ a = "hello"
+ local_variables
+ end
+
+ assert_equal [:a], local_var_list
+end
+
assert('Kernel.local_variables', '15.3.1.2.7') do
a, b = 0, 1
a += b
diff --git a/mrbgems/mruby-numeric-ext/src/numeric_ext.c b/mrbgems/mruby-numeric-ext/src/numeric_ext.c
index dbc7f39d9..00b13174f 100644
--- a/mrbgems/mruby-numeric-ext/src/numeric_ext.c
+++ b/mrbgems/mruby-numeric-ext/src/numeric_ext.c
@@ -15,7 +15,7 @@ mrb_int_allbits(mrb_state *mrb, mrb_value self)
mrb_int n, m;
mrb_get_args(mrb, "i", &m);
- n = mrb_int(mrb, self);
+ n = mrb_as_int(mrb, self);
return mrb_bool_value((n & m) == m);
}
@@ -31,7 +31,7 @@ mrb_int_anybits(mrb_state *mrb, mrb_value self)
mrb_int n, m;
mrb_get_args(mrb, "i", &m);
- n = mrb_int(mrb, self);
+ n = mrb_as_int(mrb, self);
return mrb_bool_value((n & m) != 0);
}
@@ -47,7 +47,7 @@ mrb_int_nobits(mrb_state *mrb, mrb_value self)
mrb_int n, m;
mrb_get_args(mrb, "i", &m);
- n = mrb_int(mrb, self);
+ n = mrb_as_int(mrb, self);
return mrb_bool_value((n & m) == 0);
}
diff --git a/mrbgems/mruby-pack/README.md b/mrbgems/mruby-pack/README.md
index efa51cc1b..717c13ddc 100644
--- a/mrbgems/mruby-pack/README.md
+++ b/mrbgems/mruby-pack/README.md
@@ -8,7 +8,7 @@ mruby-pack provides `Array#pack` and `String#unpack` for mruby.
Add the line below into your build configuration:
```
- conf.gem :github => 'iij/mruby-pack'
+ conf.gem :core => 'mruby-pack'
```
There is no dependency on other mrbgems.
diff --git a/mrbgems/mruby-pack/src/pack.c b/mrbgems/mruby-pack/src/pack.c
index e52171d6b..6c2a06fde 100644
--- a/mrbgems/mruby-pack/src/pack.c
+++ b/mrbgems/mruby-pack/src/pack.c
@@ -23,13 +23,14 @@ struct tmpl {
int idx;
};
-enum {
+enum pack_dir {
PACK_DIR_CHAR, /* C */
PACK_DIR_SHORT, /* S */
PACK_DIR_LONG, /* L */
PACK_DIR_QUAD, /* Q */
//PACK_DIR_INT, /* i */
//PACK_DIR_VAX,
+ PACK_DIR_BER, /* w */
PACK_DIR_UTF8, /* U */
//PACK_DIR_BER,
PACK_DIR_DOUBLE, /* E */
@@ -37,30 +38,33 @@ enum {
PACK_DIR_STR, /* A */
PACK_DIR_HEX, /* h */
PACK_DIR_BASE64, /* m */
+ PACK_DIR_QENC, /* M */
PACK_DIR_NUL, /* x */
+ PACK_DIR_BACK, /* X */
+ PACK_DIR_ABS, /* @ */
PACK_DIR_INVALID
};
-enum {
+enum pack_type {
PACK_TYPE_INTEGER,
PACK_TYPE_FLOAT,
PACK_TYPE_STRING,
PACK_TYPE_NONE
};
-#define PACK_FLAG_s 0x00000001 /* native size ("_" "!") */
-#define PACK_FLAG_a 0x00000002 /* null padding ("a") */
-#define PACK_FLAG_Z 0x00000004 /* append nul char ("z") */
-#define PACK_FLAG_SIGNED 0x00000008 /* native size ("_" "!") */
-#define PACK_FLAG_GT 0x00000010 /* big endian (">") */
-#define PACK_FLAG_LT 0x00000020 /* little endian ("<") */
-#define PACK_FLAG_WIDTH 0x00000040 /* "count" is "width" */
-#define PACK_FLAG_LSB 0x00000080 /* LSB / low nibble first */
-#define PACK_FLAG_COUNT2 0x00000100 /* "count" is special... */
-#define PACK_FLAG_LITTLEENDIAN 0x00000200 /* little endian actually */
+#define PACK_FLAG_s 0x00000001 /* native size ("_" "!") */
+#define PACK_FLAG_a 0x00000002 /* null padding ("a") */
+#define PACK_FLAG_Z 0x00000004 /* append nul char ("z") */
+#define PACK_FLAG_SIGNED 0x00000008 /* native size ("_" "!") */
+#define PACK_FLAG_GT 0x00000010 /* big endian (">") */
+#define PACK_FLAG_LT 0x00000020 /* little endian ("<") */
+#define PACK_FLAG_WIDTH 0x00000040 /* "count" is "width" */
+#define PACK_FLAG_LSB 0x00000080 /* LSB / low nibble first */
+#define PACK_FLAG_COUNT2 0x00000100 /* "count" is special... */
+#define PACK_FLAG_LITTLEENDIAN 0x00000200 /* little endian actually */
-#define PACK_BASE64_IGNORE 0xff
-#define PACK_BASE64_PADDING 0xfe
+#define PACK_BASE64_IGNORE 0xff
+#define PACK_BASE64_PADDING 0xfe
const static unsigned char base64chars[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
@@ -76,7 +80,7 @@ hex2int(unsigned char ch)
else if (ch >= 'a' && ch <= 'f')
return 10 + (ch - 'a');
else
- return 0;
+ return -1;
}
static void
@@ -375,6 +379,46 @@ unpack_q(mrb_state *mrb, const unsigned char *src, int srclen, mrb_value ary, un
return 8;
}
+static int
+pack_w(mrb_state *mrb, mrb_value o, mrb_value str, mrb_int sidx, unsigned int flags)
+{
+ mrb_int n = mrb_integer(o);
+ mrb_int i;
+ char *p;
+
+ if (n < 0) {
+ mrb_raise(mrb, E_ARGUMENT_ERROR, "can't compress negative numbers");
+ }
+ for (i=1; i<sizeof(mrb_int)+1; i++) {
+ mrb_int mask = ~((1L<<(7*i))-1);
+ if ((n & mask) == 0) break;
+ }
+ str = str_len_ensure(mrb, str, sidx + i);
+ p = RSTRING_PTR(str);
+ for (mrb_int j=i; j>0; p++,j--) {
+ mrb_int x = (n>>(7*(j-1)))&0x7f;
+ *p = (char)x;
+ if (j > 1) *p |= 0x80;
+ }
+ return i;
+}
+
+static int
+unpack_w(mrb_state *mrb, const unsigned char *src, int srclen, mrb_value ary, unsigned int flags)
+{
+ mrb_int i, n = 0;
+ const unsigned char *p = src;
+ const unsigned char *e = p + srclen;
+
+ for (i=1; p<e; p++,i++) {
+ n <<= 7;
+ n |= *p & 0x7f;
+ if ((*p & 0x80) == 0) break;
+ }
+ mrb_ary_push(mrb, ary, mrb_int_value(mrb, n));
+ return i;
+}
+
#ifndef MRB_NO_FLOAT
static int
pack_double(mrb_state *mrb, mrb_value o, mrb_value str, mrb_int sidx, unsigned int flags)
@@ -504,7 +548,7 @@ unpack_float(mrb_state *mrb, const unsigned char * src, int srclen, mrb_value ar
#endif
static int
-pack_utf8(mrb_state *mrb, mrb_value o, mrb_value str, mrb_int sidx, long count, unsigned int flags)
+pack_utf8(mrb_state *mrb, mrb_value o, mrb_value str, mrb_int sidx, int count, unsigned int flags)
{
char utf8[4];
int len = 0;
@@ -621,7 +665,7 @@ unpack_utf8(mrb_state *mrb, const unsigned char * src, int srclen, mrb_value ary
}
static int
-pack_a(mrb_state *mrb, mrb_value src, mrb_value dst, mrb_int didx, long count, unsigned int flags)
+pack_a(mrb_state *mrb, mrb_value src, mrb_value dst, mrb_int didx, int count, unsigned int flags)
{
mrb_int copylen, slen, padlen;
char *dptr, *dptr0, pad, *sptr;
@@ -659,7 +703,7 @@ pack_a(mrb_state *mrb, mrb_value src, mrb_value dst, mrb_int didx, long count, u
}
static int
-unpack_a(mrb_state *mrb, const void *src, int slen, mrb_value ary, long count, unsigned int flags)
+unpack_a(mrb_state *mrb, const void *src, int slen, mrb_value ary, int count, unsigned int flags)
{
mrb_value dst;
const char *cp, *sptr;
@@ -693,7 +737,7 @@ unpack_a(mrb_state *mrb, const void *src, int slen, mrb_value ary, long count, u
static int
-pack_h(mrb_state *mrb, mrb_value src, mrb_value dst, mrb_int didx, long count, unsigned int flags)
+pack_h(mrb_state *mrb, mrb_value src, mrb_value dst, mrb_int didx, int count, unsigned int flags)
{
unsigned int a, ashift, b, bshift;
long slen;
@@ -724,10 +768,12 @@ pack_h(mrb_state *mrb, mrb_value src, mrb_value dst, mrb_int didx, long count, u
a = b = 0;
if (slen > 0) {
a = hex2int(*sptr++);
+ if (a < 0) break;
slen--;
}
if (slen > 0) {
b = hex2int(*sptr++);
+ if (b < 0) break;
slen--;
}
*dptr++ = (a << ashift) + (b << bshift);
@@ -783,9 +829,8 @@ unpack_h(mrb_state *mrb, const void *src, int slen, mrb_value ary, int count, un
return (int)(sptr - sptr0);
}
-
static int
-pack_m(mrb_state *mrb, mrb_value src, mrb_value dst, mrb_int didx, long count, unsigned int flags)
+pack_m(mrb_state *mrb, mrb_value src, mrb_value dst, mrb_int didx, int count)
{
mrb_int dstlen;
unsigned long l;
@@ -851,7 +896,7 @@ pack_m(mrb_state *mrb, mrb_value src, mrb_value dst, mrb_int didx, long count, u
}
static int
-unpack_m(mrb_state *mrb, const void *src, int slen, mrb_value ary, unsigned int flags)
+unpack_m(mrb_state *mrb, const void *src, int slen, mrb_value ary)
{
mrb_value dst;
int dlen;
@@ -874,13 +919,13 @@ unpack_m(mrb_state *mrb, const void *src, int slen, mrb_value ary, unsigned int
if (slen-- == 0)
goto done;
c = *sptr++;
- if (c >= sizeof(base64_dec_tab))
- continue;
- ch[i] = base64_dec_tab[c];
- if (ch[i] == PACK_BASE64_PADDING) {
- ch[i] = 0;
- padding++;
- }
+ if (c >= sizeof(base64_dec_tab))
+ continue;
+ ch[i] = base64_dec_tab[c];
+ if (ch[i] == PACK_BASE64_PADDING) {
+ ch[i] = 0;
+ padding++;
+ }
} while (c >= sizeof(base64_dec_tab) || ch[i] == PACK_BASE64_IGNORE);
}
@@ -907,25 +952,117 @@ done:
}
static int
-pack_x(mrb_state *mrb, mrb_value src, mrb_value dst, mrb_int didx, long count, unsigned int flags)
+pack_M(mrb_state *mrb, mrb_value src, mrb_value dst, mrb_int didx, int count)
+{
+ static const char hex_table[] = "0123456789ABCDEF";
+ char buff[1024];
+ char *s = RSTRING_PTR(src);
+ char *send = s + RSTRING_LEN(src);
+ int i = 0, n = 0, prev = EOF;
+ int dlen = 0;
+
+ if (count <= 1) count = 72;
+ while (s < send) {
+ if ((*s > 126) ||
+ (*s < 32 && *s != '\n' && *s != '\t') ||
+ (*s == '=')) {
+ buff[i++] = '=';
+ buff[i++] = hex_table[(*s & 0xf0) >> 4];
+ buff[i++] = hex_table[*s & 0x0f];
+ n += 3;
+ prev = EOF;
+ }
+ else if (*s == '\n') {
+ if (prev == ' ' || prev == '\t') {
+ buff[i++] = '=';
+ buff[i++] = *s;
+ }
+ buff[i++] = *s;
+ n = 0;
+ prev = *s;
+ }
+ else {
+ buff[i++] = *s;
+ n++;
+ prev = *s;
+ }
+ if (n > count) {
+ buff[i++] = '=';
+ buff[i++] = '\n';
+ n = 0;
+ prev = '\n';
+ }
+ if (i > 1024 - 5) {
+ str_len_ensure(mrb, dst, didx+i);
+ memcpy(RSTRING_PTR(dst), buff, i);
+ dlen += i;
+ i = 0;
+ }
+ s++;
+ }
+ if (n > 0) {
+ buff[i++] = '=';
+ buff[i++] = '\n';
+ }
+ if (i > 0) {
+ str_len_ensure(mrb, dst, didx+i);
+ memcpy(RSTRING_PTR(dst), buff, i);
+ dlen += i;
+ }
+ return dlen;
+}
+
+static int
+unpack_M(mrb_state *mrb, const void *src, int slen, mrb_value ary)
+{
+ mrb_value buf = mrb_str_new(mrb, 0, slen);
+ const char *s = (const char*)src, *ss = s;
+ const char *send = s + slen;
+ char *ptr = RSTRING_PTR(buf);
+ int c1, c2;
+
+ while (s < send) {
+ if (*s == '=') {
+ if (++s == send) break;
+ if (s+1 < send && *s == '\r' && *(s+1) == '\n')
+ s++;
+ if (*s != '\n') {
+ if ((c1 = hex2int(*s)) == -1) break;
+ if (++s == send) break;
+ if ((c2 = hex2int(*s)) == -1) break;
+ *ptr++ = (char)(c1 << 4 | c2);
+ }
+ }
+ else {
+ *ptr++ = *s;
+ }
+ s++;
+ ss = s;
+ }
+ buf = mrb_str_resize(mrb, buf, (mrb_int)(ptr - RSTRING_PTR(buf)));
+ mrb_str_cat(mrb, buf, ss, send-ss);
+ mrb_ary_push(mrb, ary, buf);
+ return slen;
+}
+
+static int
+pack_x(mrb_state *mrb, mrb_value dst, mrb_int didx, int count)
{
long i;
- if (count < 0) return 0;
dst = str_len_ensure(mrb, dst, didx + count);
for (i = 0; i < count; i++) {
RSTRING_PTR(dst)[didx + i] = '\0';
}
return count;
}
-static int
-unpack_x(mrb_state *mrb, const void *src, int slen, mrb_value ary, int count, unsigned int flags)
+
+static void
+check_x(mrb_state *mrb, int a, int count, char c)
{
- if (count < 0) return slen;
- if (slen < count) {
- mrb_raise(mrb, E_ARGUMENT_ERROR, "x outside of string");
+ if (a < count) {
+ mrb_raisef(mrb, E_ARGUMENT_ERROR, "%c outside of string", c);
}
- return count;
}
static void
@@ -942,10 +1079,12 @@ has_tmpl(const struct tmpl *tmpl)
}
static void
-read_tmpl(mrb_state *mrb, struct tmpl *tmpl, int *dirp, int *typep, int *sizep, int *countp, unsigned int *flagsp)
+read_tmpl(mrb_state *mrb, struct tmpl *tmpl, enum pack_dir *dirp, enum pack_type *typep, int *sizep, int *countp, unsigned int *flagsp)
{
mrb_int t, tlen;
- int ch, dir, type, size = 0;
+ int ch, size = 0;
+ enum pack_dir dir;
+ enum pack_type type;
int count = 1;
unsigned int flags = 0;
const char *tptr;
@@ -1052,11 +1191,21 @@ alias:
size = 4;
flags |= PACK_FLAG_SIGNED;
break;
+ case 'w':
+ dir = PACK_DIR_BER;
+ type = PACK_TYPE_INTEGER;
+ flags |= PACK_FLAG_SIGNED;
+ break;
case 'm':
dir = PACK_DIR_BASE64;
type = PACK_TYPE_STRING;
flags |= PACK_FLAG_WIDTH | PACK_FLAG_COUNT2;
break;
+ case 'M':
+ dir = PACK_DIR_QENC;
+ type = PACK_TYPE_STRING;
+ flags |= PACK_FLAG_WIDTH | PACK_FLAG_COUNT2;
+ break;
case 'N': /* = "L>" */
dir = PACK_DIR_LONG;
type = PACK_TYPE_INTEGER;
@@ -1111,11 +1260,23 @@ alias:
dir = PACK_DIR_NUL;
type = PACK_TYPE_NONE;
break;
+ case 'X':
+ dir = PACK_DIR_BACK;
+ type = PACK_TYPE_NONE;
+ break;
+ case '@':
+ dir = PACK_DIR_ABS;
+ type = PACK_TYPE_NONE;
+ break;
case 'Z':
dir = PACK_DIR_STR;
type = PACK_TYPE_STRING;
flags |= PACK_FLAG_WIDTH | PACK_FLAG_COUNT2 | PACK_FLAG_Z;
break;
+ case 'p': case 'P':
+ case '%':
+ mrb_raisef(mrb, E_ARGUMENT_ERROR, "%c is not supported", (char)t);
+ break;
default:
dir = PACK_DIR_INVALID;
type = PACK_TYPE_NONE;
@@ -1124,19 +1285,21 @@ alias:
/* read suffix [0-9*_!<>] */
while (tmpl->idx < tlen) {
- ch = tptr[tmpl->idx++];
+ ch = tptr[tmpl->idx];
if (ISDIGIT(ch)) {
- count = ch - '0';
- while (tmpl->idx < tlen && ISDIGIT(tptr[tmpl->idx])) {
- int ch = tptr[tmpl->idx++] - '0';
- if (count+ch > INT_MAX/10) {
- mrb_raise(mrb, E_RUNTIME_ERROR, "too big template length");
- }
- count = count * 10 + ch;
+ char *e;
+ mrb_int n = mrb_int_read(tptr+tmpl->idx, tptr+tlen, &e);
+ if (e == NULL || n > INT_MAX) {
+ mrb_raise(mrb, E_RUNTIME_ERROR, "too big template length");
}
- continue; /* special case */
+ count = (int)n;
+ tmpl->idx = e - tptr;
+ continue;
} else if (ch == '*') {
- count = -1;
+ if (type == PACK_TYPE_NONE)
+ count = 0;
+ else
+ count = -1;
} else if (ch == '_' || ch == '!' || ch == '<' || ch == '>') {
if (strchr("sSiIlLqQ", (int)t) == NULL) {
mrb_raisef(mrb, E_ARGUMENT_ERROR, "'%c' allowed only after types sSiIlLqQ", ch);
@@ -1148,10 +1311,11 @@ alias:
} else if (ch == '>') {
flags |= PACK_FLAG_GT;
}
- } else {
- tmpl->idx--;
+ }
+ else {
break;
}
+ tmpl->idx++;
}
if ((flags & PACK_FLAG_LT) || (!(flags & PACK_FLAG_GT) && littleendian)) {
@@ -1173,7 +1337,9 @@ mrb_pack_pack(mrb_state *mrb, mrb_value ary)
struct tmpl tmpl;
int count;
unsigned int flags;
- int dir, ridx, size, type;
+ enum pack_dir dir;
+ enum pack_type type;
+ int ridx, size;
prepare_tmpl(mrb, &tmpl);
@@ -1186,8 +1352,22 @@ mrb_pack_pack(mrb_state *mrb, mrb_value ary)
if (dir == PACK_DIR_INVALID)
continue;
else if (dir == PACK_DIR_NUL) {
- ridx += pack_x(mrb, mrb_nil_value(), result, ridx, count, flags);
- if (ridx < 0) goto overflow;
+ grow:
+ if (ridx > INT_MAX - count) goto overflow;
+ ridx += pack_x(mrb, result, ridx, count);
+ continue;
+ }
+ else if (dir == PACK_DIR_BACK) {
+ check_x(mrb, ridx, count, 'X');
+ ridx -= count;
+ continue;
+ }
+ else if (dir == PACK_DIR_ABS) {
+ count -= ridx;
+ if (count > 0) goto grow;
+ count = -count;
+ check_x(mrb, ridx, count, '@');
+ ridx -= count;
continue;
}
@@ -1205,7 +1385,7 @@ mrb_pack_pack(mrb_state *mrb, mrb_value ary)
#ifndef MRB_NO_FLOAT
else if (type == PACK_TYPE_FLOAT) {
if (!mrb_float_p(o)) {
- mrb_float f = mrb_to_flo(mrb, o);
+ mrb_float f = mrb_as_float(mrb, o);
o = mrb_float_value(mrb, f);
}
}
@@ -1229,8 +1409,14 @@ mrb_pack_pack(mrb_state *mrb, mrb_value ary)
case PACK_DIR_QUAD:
ridx += pack_q(mrb, o, result, ridx, flags);
break;
+ case PACK_DIR_BER:
+ ridx += pack_w(mrb, o, result, ridx, flags);
+ break;
case PACK_DIR_BASE64:
- ridx += pack_m(mrb, o, result, ridx, count, flags);
+ ridx += pack_m(mrb, o, result, ridx, count);
+ break;
+ case PACK_DIR_QENC:
+ ridx += pack_M(mrb, o, result, ridx, count);
break;
case PACK_DIR_HEX:
ridx += pack_h(mrb, o, result, ridx, count, flags);
@@ -1278,7 +1464,9 @@ pack_unpack(mrb_state *mrb, mrb_value str, int single)
struct tmpl tmpl;
int count;
unsigned int flags;
- int dir, size, type;
+ enum pack_dir dir;
+ enum pack_type type;
+ int size;
int srcidx, srclen;
const unsigned char *sptr;
@@ -1294,7 +1482,18 @@ pack_unpack(mrb_state *mrb, mrb_value str, int single)
if (dir == PACK_DIR_INVALID)
continue;
else if (dir == PACK_DIR_NUL) {
- srcidx += unpack_x(mrb, sptr, srclen - srcidx, result, count, flags);
+ check_x(mrb, srclen-srcidx, count, 'x');
+ srcidx += count;
+ continue;
+ }
+ else if (dir == PACK_DIR_BACK) {
+ check_x(mrb, srcidx, count, 'X');
+ srcidx -= count;
+ continue;
+ }
+ else if (dir == PACK_DIR_ABS) {
+ check_x(mrb, srclen, count, '@');
+ srcidx = count;
continue;
}
@@ -1308,7 +1507,12 @@ pack_unpack(mrb_state *mrb, mrb_value str, int single)
srcidx += unpack_a(mrb, sptr, srclen - srcidx, result, count, flags);
break;
case PACK_DIR_BASE64:
- srcidx += unpack_m(mrb, sptr, srclen - srcidx, result, flags);
+ srcidx += unpack_m(mrb, sptr, srclen - srcidx, result);
+ break;
+ case PACK_DIR_QENC:
+ srcidx += unpack_M(mrb, sptr, srclen - srcidx, result);
+ break;
+ default:
break;
}
continue;
@@ -1336,6 +1540,9 @@ pack_unpack(mrb_state *mrb, mrb_value str, int single)
case PACK_DIR_QUAD:
srcidx += unpack_q(mrb, sptr, srclen - srcidx, result, flags);
break;
+ case PACK_DIR_BER:
+ srcidx += unpack_w(mrb, sptr, srclen - srcidx, result, flags);
+ break;
#ifndef MRB_NO_FLOAT
case PACK_DIR_FLOAT:
srcidx += unpack_float(mrb, sptr, srclen - srcidx, result, flags);
diff --git a/mrbgems/mruby-pack/test/pack.rb b/mrbgems/mruby-pack/test/pack.rb
index a248174a5..16db6607b 100644
--- a/mrbgems/mruby-pack/test/pack.rb
+++ b/mrbgems/mruby-pack/test/pack.rb
@@ -10,78 +10,59 @@ def assert_pack tmpl, packed, unpacked
end
# pack & unpack 'm' (base64)
-assert('[""].pack("m")') do
+assert('pack("m")') do
assert_pack "m", "", [""]
-end
-
-assert('["\0"].pack("m")') do
assert_pack "m", "AA==\n", ["\0"]
-end
-
-assert('["\0\0"].pack("m")') do
assert_pack "m", "AAA=\n", ["\0\0"]
-end
-
-assert('["\0\0\0"].pack("m")') do
assert_pack "m", "AAAA\n", ["\0\0\0"]
-end
-
-assert('["abc..xyzABC..XYZ"].pack("m")') do
assert_pack "m", "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJT\nVFVWV1hZWg==\n", ["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"]
-end
-assert('"YWJ...".unpack("m") should "abc..xyzABC..XYZ"') do
ary = ["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"]
assert_equal ary, "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJT\nVFVWV1hZWg==\n".unpack("m")
assert_equal ary, "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWg==\n".unpack("m")
-end
-assert('["A", "B"].pack') do
assert_equal "QQ==\n", ["A", "B"].pack("m50")
assert_equal ["A"], "QQ==\n".unpack("m50")
assert_equal "QQ==Qg==", ["A", "B"].pack("m0 m0")
assert_equal ["A", "B"], "QQ==Qg==".unpack("m10 m10")
+ assert_pack "m0", "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWg==", ["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"]
end
-assert('["abc..xyzABC..XYZ"].pack("m0")') do
- assert_pack "m0", "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWg==", ["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"]
+# pack & unpack 'M' (Quoted-printable)
+assert('pack("M")') do
+ assert_pack "M", "123=\n", ["123"]
+ assert_pack "M", "=3D\n", ["=\n"]
+ assert_pack "M", "=E3=81=82=\n", ["あ"]
+
+ assert_equal ["123"], "123=\n".unpack("M")
+ assert_equal ["=\n"], "=3D\n".unpack("M")
+ assert_equal ["あ"], "=E3=81=82=\n".unpack("M")
end
# pack & unpack 'H'
-assert('["3031"].pack("H*")') do
+assert('pack("H")') do
assert_pack "H*", "01", ["3031"]
-end
-
-assert('["10"].pack("H*")') do
assert_pack "H*", "\020", ["10"]
end
-assert('[0,1,127,128,255].pack("C*")') do
+assert('pack("C")') do
assert_pack "C*", "\x00\x01\x7F\x80\xFF", [0, 1, 127, 128, 255]
end
-# pack "a"
-assert('["abc"].pack("a")') do
+assert('pack("a")') do
assert_equal "a", ["abc"].pack("a")
assert_equal "abc", ["abc"].pack("a*")
assert_equal "abc\0", ["abc"].pack("a4")
-end
-# upack "a"
-assert('["abc"].pack("a")') do
assert_equal ["abc\0"], "abc\0".unpack("a4")
assert_equal ["abc "], "abc ".unpack("a4")
end
-# pack "A"
-assert('["abc"].pack("A")') do
+assert('pack("A")') do
assert_equal "a", ["abc"].pack("A")
assert_equal "abc", ["abc"].pack("A*")
assert_equal "abc ", ["abc"].pack("A4")
-end
-# upack "A"
-assert('["abc"].pack("A")') do
assert_equal ["abc"], "abc\0".unpack("A4")
assert_equal ["abc"], "abc ".unpack("A4")
end
@@ -143,6 +124,12 @@ assert 'pack/unpack "I"' do
assert_pack 'I', str, [12345]
end
+assert 'pack/unpack "w"' do
+ for x in [0,1,127,128,16383,16384,65535,65536]
+ assert_equal [x], [x].pack("w").unpack("w")
+ end
+end
+
assert 'pack/unpack "U"' do
assert_equal [], "".unpack("U")
assert_equal [], "".unpack("U*")
diff --git a/mrbgems/mruby-range-ext/src/range.c b/mrbgems/mruby-range-ext/src/range.c
index 7b919eb90..2d021f31f 100644
--- a/mrbgems/mruby-range-ext/src/range.c
+++ b/mrbgems/mruby-range-ext/src/range.c
@@ -81,7 +81,7 @@ range_size(mrb_state *mrb, mrb_value range)
beg = RANGE_BEG(r);
end = RANGE_END(r);
- if ((mrb_fixnum_p(beg) || mrb_float_p(beg)) && mrb_nil_p(end)) {
+ if ((mrb_integer_p(beg) || mrb_float_p(beg)) && mrb_nil_p(end)) {
return mrb_float_value(mrb, INFINITY);
}
@@ -136,7 +136,7 @@ range_size(mrb_state *mrb, mrb_value range)
beg = RANGE_BEG(r);
end = RANGE_END(r);
- if (mrb_fixnum_p(beg) && mrb_nil_p(end)) {
+ if (mrb_integer_p(beg) && mrb_nil_p(end)) {
return mrb_nil_value();
}
@@ -147,7 +147,7 @@ range_size(mrb_state *mrb, mrb_value range)
mrb_int b = mrb_integer(end);
mrb_int c = b - a + excl;
- return mrb_fixnum_value(c);
+ return mrb_int_value(mrb, c);
}
return mrb_nil_value();
}
diff --git a/mrbgems/mruby-rational/src/rational.c b/mrbgems/mruby-rational/src/rational.c
index 2dfabe504..2cbd88131 100644
--- a/mrbgems/mruby-rational/src/rational.c
+++ b/mrbgems/mruby-rational/src/rational.c
@@ -255,20 +255,20 @@ rational_s_new(mrb_state *mrb, mrb_value self)
}
else {
mrb_float numf = (mrb_float)numerator;
- mrb_float denomf = mrb_to_flo(mrb, denomv);
+ mrb_float denomf = mrb_as_float(mrb, denomv);
return rational_new_f(mrb, numf/denomf);
}
}
else {
- mrb_float numf = mrb_to_flo(mrb, numv);
+ mrb_float numf = mrb_as_float(mrb, numv);
mrb_float denomf;
if (mrb_integer_p(denomv)) {
denomf = (mrb_float)mrb_integer(denomv);
}
else {
- denomf = mrb_to_flo(mrb, denomv);
+ denomf = mrb_as_float(mrb, denomv);
}
return rational_new_f(mrb, numf/denomf);
}
@@ -278,7 +278,7 @@ rational_s_new(mrb_state *mrb, mrb_value self)
#ifndef MRB_NO_FLOAT
static mrb_float
-rat_to_flo(struct mrb_rational *p)
+rat_float(struct mrb_rational *p)
{
mrb_float f;
@@ -296,7 +296,7 @@ static mrb_value
rational_to_f(mrb_state *mrb, mrb_value self)
{
struct mrb_rational *p = rational_ptr(mrb, self);
- return mrb_float_value(mrb, rat_to_flo(p));
+ return mrb_float_value(mrb, rat_float(p));
}
#endif
@@ -346,8 +346,8 @@ rational_m(mrb_state *mrb, mrb_value self)
return rational_new_i(mrb, mrb_integer(a), mrb_integer(b));
}
else {
- mrb_float x = mrb_to_flo(mrb, a);
- mrb_float y = mrb_to_flo(mrb, b);
+ mrb_float x = mrb_as_float(mrb, a);
+ mrb_float y = mrb_as_float(mrb, b);
return rational_new_f(mrb, x/y);
}
#endif
@@ -436,7 +436,7 @@ rational_cmp(mrb_state *mrb, mrb_value x)
#ifndef MRB_NO_FLOAT
case MRB_TT_FLOAT:
{
- mrb_float a = rat_to_flo(p1), b = mrb_to_flo(mrb, y);
+ mrb_float a = rat_float(p1), b = mrb_as_float(mrb, y);
if (a > b)
return mrb_fixnum_value(1);
else if (a < b)
@@ -458,7 +458,7 @@ rational_cmp(mrb_state *mrb, mrb_value x)
#endif
#ifdef MRB_USE_COMPLEX
case MRB_TT_COMPLEX:
- x = mrb_complex_new(mrb, rat_to_flo(p1), 0);
+ x = mrb_complex_new(mrb, rat_float(p1), 0);
return mrb_funcall_id(mrb, x, MRB_OPSYM(cmp), 1, y);
#endif
default:
@@ -480,10 +480,6 @@ rational_minus(mrb_state *mrb, mrb_value x)
return rational_new(mrb, -n, p->denominator);
}
-#ifndef MRB_NO_FLOAT
-mrb_float mrb_div_flo(mrb_float, mrb_float);
-#endif
-
static mrb_value
rational_add(mrb_state *mrb, mrb_value x)
{
@@ -514,7 +510,7 @@ rational_add(mrb_state *mrb, mrb_value x)
case MRB_TT_FLOAT:
{
mrb_float z = p1->numerator + mrb_float(y) * p1->denominator;
- return mrb_float_value(mrb, mrb_div_flo(z, (mrb_float)p1->denominator));
+ return mrb_float_value(mrb, mrb_div_float(z, (mrb_float)p1->denominator));
}
#endif
@@ -551,7 +547,7 @@ rational_sub(mrb_state *mrb, mrb_value x)
#if defined(MRB_USE_COMPLEX)
case MRB_TT_COMPLEX:
- x = mrb_complex_new(mrb, rat_to_flo(p1), 0);
+ x = mrb_complex_new(mrb, rat_float(p1), 0);
return mrb_funcall_id(mrb, x, MRB_OPSYM(sub), 1, y);
#endif
@@ -559,8 +555,8 @@ rational_sub(mrb_state *mrb, mrb_value x)
case MRB_TT_FLOAT:
default:
{
- mrb_float z = p1->numerator - mrb_to_flo(mrb, y) * p1->denominator;
- return mrb_float_value(mrb, mrb_div_flo(z, (mrb_float)p1->denominator));
+ mrb_float z = p1->numerator - mrb_as_float(mrb, y) * p1->denominator;
+ return mrb_float_value(mrb, mrb_div_float(z, (mrb_float)p1->denominator));
}
#else
default:
@@ -596,7 +592,7 @@ rational_mul(mrb_state *mrb, mrb_value x)
case MRB_TT_FLOAT:
{
mrb_float z = p1->numerator * mrb_float(y);
- return mrb_float_value(mrb, mrb_div_flo(z, (mrb_float)p1->denominator));
+ return mrb_float_value(mrb, mrb_div_float(z, (mrb_float)p1->denominator));
}
#endif
@@ -630,7 +626,7 @@ mrb_rational_div(mrb_state *mrb, mrb_value x)
#if defined(MRB_USE_COMPLEX)
case MRB_TT_COMPLEX:
- x = mrb_complex_new(mrb, rat_to_flo(p1), 0);
+ x = mrb_complex_new(mrb, rat_float(p1), 0);
return mrb_funcall_id(mrb, x, MRB_OPSYM(div), 1, y);
#endif
@@ -638,8 +634,8 @@ mrb_rational_div(mrb_state *mrb, mrb_value x)
#ifndef MRB_NO_FLOAT
case MRB_TT_FLOAT:
{
- mrb_float z = mrb_div_flo((mrb_float)p1->numerator, mrb_to_flo(mrb, y));
- return mrb_float_value(mrb, mrb_div_flo(z, (mrb_float)p1->denominator));
+ mrb_float z = mrb_div_float((mrb_float)p1->numerator, mrb_as_float(mrb, y));
+ return mrb_float_value(mrb, mrb_div_float(z, (mrb_float)p1->denominator));
}
#else
mrb_raise(mrb, E_TYPE_ERROR, "non integer division");
@@ -656,7 +652,7 @@ mrb_int mrb_div_int(mrb_state *, mrb_int, mrb_int);
* redefine Integer#/
*/
static mrb_value
-rat_int_div(mrb_state *mrb, mrb_value x)
+rational_int_div(mrb_state *mrb, mrb_value x)
{
mrb_value y = mrb_get_arg1(mrb);
mrb_int a = mrb_integer(x);
@@ -673,7 +669,7 @@ rat_int_div(mrb_state *mrb, mrb_value x)
case MRB_TT_FLOAT:
mrb_raise(mrb, E_TYPE_ERROR, "non integer multiplication");
#else
- return mrb_float_value(mrb, mrb_div_flo((mrb_float)a, mrb_to_flo(mrb, y)));
+ return mrb_float_value(mrb, mrb_div_float((mrb_float)a, mrb_as_float(mrb, y)));
#endif
}
}
@@ -684,7 +680,7 @@ rat_int_div(mrb_state *mrb, mrb_value x)
*/
static mrb_value
-rat_int_quo(mrb_state *mrb, mrb_value x)
+rational_int_quo(mrb_state *mrb, mrb_value x)
{
mrb_value y = mrb_get_arg1(mrb);
mrb_int a = mrb_integer(x);
@@ -700,7 +696,7 @@ rat_int_quo(mrb_state *mrb, mrb_value x)
#ifdef MRB_NO_FLOAT
mrb_raise(mrb, E_TYPE_ERROR, "non integer multiplication");
#else
- return mrb_float_value(mrb, mrb_div_flo((mrb_float)a, mrb_to_flo(mrb, y)));
+ return mrb_float_value(mrb, mrb_div_float((mrb_float)a, mrb_as_float(mrb, y)));
#endif
}
}
@@ -732,8 +728,8 @@ void mrb_mruby_rational_gem_init(mrb_state *mrb)
mrb_define_method(mrb, rat, "quo", rational_div, MRB_ARGS_REQ(1));
mrb_define_method(mrb, mrb->integer_class, "to_r", fix_to_r, MRB_ARGS_NONE());
#ifndef MRB_USE_COMPLEX
- mrb_define_method(mrb, mrb->integer_class, "/", rat_int_div, MRB_ARGS_REQ(1)); /* overrride */
- mrb_define_method(mrb, mrb->integer_class, "quo", rat_int_quo, MRB_ARGS_REQ(1)); /* overrride */
+ mrb_define_method(mrb, mrb->integer_class, "/", rational_int_div, MRB_ARGS_REQ(1)); /* override */
+ mrb_define_method(mrb, mrb->integer_class, "quo", rational_int_quo, MRB_ARGS_REQ(1)); /* override */
#endif
mrb_define_method(mrb, mrb->kernel_module, "Rational", rational_m, MRB_ARGS_ARG(1,1));
}
diff --git a/mrbgems/mruby-sleep/mrbgem.rake b/mrbgems/mruby-sleep/mrbgem.rake
index 7a303b81c..024106a48 100644
--- a/mrbgems/mruby-sleep/mrbgem.rake
+++ b/mrbgems/mruby-sleep/mrbgem.rake
@@ -1,5 +1,5 @@
MRuby::Gem::Specification.new('mruby-sleep') do |spec|
spec.license = 'MIT'
spec.authors = ['MATSUMOTO Ryosuke', 'mruby developers']
- spec.version = '0.0.1'
+ spec.summary = 'Kernel#sleep and Kernel#usleep'
end
diff --git a/mrbgems/mruby-socket/src/socket.c b/mrbgems/mruby-socket/src/socket.c
index 28418fa12..c7de66d41 100644
--- a/mrbgems/mruby-socket/src/socket.c
+++ b/mrbgems/mruby-socket/src/socket.c
@@ -65,52 +65,52 @@
#ifdef _WIN32
static const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt)
{
- if (af == AF_INET)
- {
- struct sockaddr_in in;
- memset(&in, 0, sizeof(in));
- in.sin_family = AF_INET;
- memcpy(&in.sin_addr, src, sizeof(struct in_addr));
- getnameinfo((struct sockaddr *)&in, sizeof(struct
- sockaddr_in), dst, cnt, NULL, 0, NI_NUMERICHOST);
- return dst;
- }
- else if (af == AF_INET6)
- {
- struct sockaddr_in6 in;
- memset(&in, 0, sizeof(in));
- in.sin6_family = AF_INET6;
- memcpy(&in.sin6_addr, src, sizeof(struct in_addr6));
- getnameinfo((struct sockaddr *)&in, sizeof(struct
- sockaddr_in6), dst, cnt, NULL, 0, NI_NUMERICHOST);
- return dst;
- }
- return NULL;
+ if (af == AF_INET)
+ {
+ struct sockaddr_in in;
+ memset(&in, 0, sizeof(in));
+ in.sin_family = AF_INET;
+ memcpy(&in.sin_addr, src, sizeof(struct in_addr));
+ getnameinfo((struct sockaddr *)&in, sizeof(struct
+ sockaddr_in), dst, cnt, NULL, 0, NI_NUMERICHOST);
+ return dst;
+ }
+ else if (af == AF_INET6)
+ {
+ struct sockaddr_in6 in;
+ memset(&in, 0, sizeof(in));
+ in.sin6_family = AF_INET6;
+ memcpy(&in.sin6_addr, src, sizeof(struct in_addr6));
+ getnameinfo((struct sockaddr *)&in, sizeof(struct
+ sockaddr_in6), dst, cnt, NULL, 0, NI_NUMERICHOST);
+ return dst;
+ }
+ return NULL;
}
static int inet_pton(int af, const char *src, void *dst)
{
- struct addrinfo hints, *res, *ressave;
+ struct addrinfo hints, *res, *ressave;
- memset(&hints, 0, sizeof(struct addrinfo));
- hints.ai_family = af;
+ memset(&hints, 0, sizeof(struct addrinfo));
+ hints.ai_family = af;
- if (getaddrinfo(src, NULL, &hints, &res) != 0)
- {
- printf("Couldn't resolve host %s\n", src);
- return -1;
- }
+ if (getaddrinfo(src, NULL, &hints, &res) != 0)
+ {
+ printf("Couldn't resolve host %s\n", src);
+ return -1;
+ }
- ressave = res;
+ ressave = res;
- while (res)
- {
- memcpy(dst, res->ai_addr, res->ai_addrlen);
- res = res->ai_next;
- }
+ while (res)
+ {
+ memcpy(dst, res->ai_addr, res->ai_addrlen);
+ res = res->ai_next;
+ }
- freeaddrinfo(ressave);
- return 0;
+ freeaddrinfo(ressave);
+ return 0;
}
#endif
@@ -142,7 +142,7 @@ mrb_addrinfo_getaddrinfo(mrb_state *mrb, mrb_value klass)
if (mrb_string_p(service)) {
servname = RSTRING_CSTR(mrb, service);
} else if (mrb_integer_p(service)) {
- servname = RSTRING_PTR(mrb_fixnum_to_str(mrb, service, 10));
+ servname = RSTRING_PTR(mrb_integer_to_str(mrb, service, 10));
} else if (mrb_nil_p(service)) {
servname = NULL;
} else {
@@ -574,7 +574,7 @@ mrb_ipsocket_recvfrom(mrb_state *mrb, mrb_value self)
buf = mrb_str_new_capa(mrb, maxlen);
socklen = sizeof(ss);
n = recvfrom(fd, RSTRING_PTR(buf), (fsize_t)maxlen, (int)flags,
- (struct sockaddr *)&ss, &socklen);
+ (struct sockaddr *)&ss, &socklen);
if (n == -1) {
mrb_sys_fail(mrb, "recvfrom");
}
@@ -938,8 +938,8 @@ mrb_mruby_socket_gem_init(mrb_state* mrb)
constants = mrb_define_module_under(mrb, sock, "Constants");
#define define_const(SYM) \
- do { \
- mrb_define_const(mrb, constants, #SYM, mrb_int_value(mrb, SYM)); \
+ do { \
+ mrb_define_const(mrb, constants, #SYM, mrb_int_value(mrb, SYM)); \
} while (0)
#include "const.cstub"
diff --git a/mrbgems/mruby-sprintf/src/sprintf.c b/mrbgems/mruby-sprintf/src/sprintf.c
index 839ee4dc4..ea9d74d95 100644
--- a/mrbgems/mruby-sprintf/src/sprintf.c
+++ b/mrbgems/mruby-sprintf/src/sprintf.c
@@ -21,9 +21,6 @@
#define EXTENDSIGN(n, l) (((~0U << (n)) >> (((n)*(l)) % BITSPERDIG)) & ~(~0U << (n)))
mrb_value mrb_str_format(mrb_state *, mrb_int, const mrb_value *, mrb_value);
-#ifndef MRB_NO_FLOAT
-static void fmt_setup(char*,size_t,int,int,mrb_int,mrb_int);
-#endif
static char*
remove_sign_bits(char *str, int base)
@@ -71,35 +68,24 @@ sign_bits(int base, const char *p)
return c;
}
-static mrb_value
-mrb_fix2binstr(mrb_state *mrb, mrb_value x, int base)
+static char *
+mrb_uint_to_cstr(char *buf, size_t len, mrb_int num, int base)
{
- char buf[66], *b = buf + sizeof buf;
- mrb_int num = mrb_integer(x);
- const int mask = base -1;
+ char *b = buf + len - 1;
+ const int mask = base-1;
int shift;
-#ifdef MRB_INT64
- uint64_t val = (uint64_t)num;
-#else
- uint32_t val = (uint32_t)num;
-#endif
+ mrb_uint val = (uint64_t)num;
char d;
- switch (base) {
- case 2:
- shift = 1;
- break;
- case 8:
- shift = 3;
- break;
- case 16:
- shift = 4;
- break;
- default:
- mrb_raisef(mrb, E_ARGUMENT_ERROR, "invalid radix %d", base);
- }
if (num == 0) {
- return mrb_str_new_lit(mrb, "0");
+ buf[0] = '0'; buf[1] = '\0';
+ return buf;
+ }
+ switch (base) {
+ case 16: d = 'f'; shift = 4; break;
+ case 8: d = '7'; shift = 3; break;
+ case 2: d = '1'; shift = 1; break;
+ default: return NULL;
}
*--b = '\0';
do {
@@ -108,19 +94,12 @@ mrb_fix2binstr(mrb_state *mrb, mrb_value x, int base)
if (num < 0) {
b = remove_sign_bits(b, base);
- switch (base) {
- case 16: d = 'f'; break;
- case 8: d = '7'; break;
- case 2: d = '1'; break;
- default: d = 0; break;
- }
-
if (d && *b != d) {
*--b = d;
}
}
- return mrb_str_new_cstr(mrb, b);
+ return b;
}
#define FNONE 0
@@ -133,7 +112,52 @@ mrb_fix2binstr(mrb_state *mrb, mrb_value x, int base)
#define FPREC 64
#define FPREC0 128
-#define CHECK(l) do {\
+#ifndef MRB_NO_FLOAT
+static int
+fmt_float(char *buf, size_t buf_size, char fmt, int flags, mrb_int width, int prec, mrb_float f)
+{
+ char sign = '\0';
+ int left_align = 0;
+ int zero_pad = 0;
+
+ if (flags & FSHARP) fmt |= 0x80;
+ if (flags & FPLUS) sign = '+';
+ if (flags & FMINUS) left_align = 1;
+ if (flags & FZERO) zero_pad = 1;
+ if (flags & FSPACE) sign = ' ';
+
+ int len = mrb_format_float(f, buf, buf_size, fmt, prec, sign);
+
+ // buf[0] < '0' returns true if the first character is space, + or -
+ // buf[1] < '9' matches a digit, and doesn't match when we get back +nan or +inf
+ if (buf[0] < '0' && buf[1] <= '9' && zero_pad) {
+ buf++;
+ width--;
+ len--;
+ }
+ if (*buf < '0' || *buf >= '9') {
+ // For inf or nan, we don't want to zero pad.
+ zero_pad = 0;
+ }
+ if (len >= width) {
+ return len;
+ }
+ buf[width] = '\0';
+ if (left_align) {
+ memset(&buf[len], ' ', width - len);
+ return width;
+ }
+ memmove(&buf[width - len], buf, len);
+ if (zero_pad) {
+ memset(buf, '0', width - len);
+ } else {
+ memset(buf, ' ', width - len);
+ }
+ return width;
+}
+#endif
+
+#define CHECK(l) do { \
while ((l) >= bsiz - blen) {\
if (bsiz > MRB_INT_MAX/2) mrb_raise(mrb, E_ARGUMENT_ERROR, "too big specifier"); \
bsiz*=2;\
@@ -221,7 +245,6 @@ check_name_arg(mrb_state *mrb, int posarg, const char *name, size_t len)
#define GETASTER(num) do { \
mrb_value tmp_v; \
t = p++; \
- n = 0; \
GETNUM(n, val); \
if (*p == '$') { \
tmp_v = GETPOSARG(n); \
@@ -230,27 +253,17 @@ check_name_arg(mrb_state *mrb, int posarg, const char *name, size_t len)
tmp_v = GETNEXTARG(); \
p = t; \
} \
- num = mrb_int(mrb, tmp_v); \
+ num = mrb_as_int(mrb, tmp_v); \
} while (0)
static const char *
-get_num(mrb_state *mrb, const char *p, const char *end, mrb_int *valp)
+get_num(mrb_state *mrb, const char *p, const char *end, int *valp)
{
- mrb_int next_n = *valp;
- for (; p < end && ISDIGIT(*p); p++) {
- if (mrb_int_mul_overflow(10, next_n, &next_n)) {
- return NULL;
- }
- if (MRB_INT_MAX - (*p - '0') < next_n) {
- return NULL;
- }
- next_n += *p - '0';
- }
- if (p >= end) {
- mrb_raise(mrb, E_ARGUMENT_ERROR, "malformed format string - %%*[0-9]");
- }
- *valp = next_n;
- return p;
+ char *e;
+ mrb_int n = mrb_int_read(p, end, &e);
+ if (e == NULL || n > INT_MAX) return NULL;
+ *valp = (int)n;
+ return e;
}
static void
@@ -326,10 +339,6 @@ get_hash(mrb_state *mrb, mrb_value *hash, mrb_int argc, const mrb_value *argv)
* | equal to the precision, or in dd.dddd form otherwise.
* | The precision specifies the number of significant digits.
* G | Equivalent to 'g', but use an uppercase 'E' in exponent form.
- * a | Convert floating-point argument as [-]0xh.hhhhp[+-]dd,
- * | which is consisted from optional sign, "0x", fraction part
- * | as hexadecimal, "p", and exponential part as decimal.
- * A | Equivalent to 'a', but use uppercase 'X' and 'P'.
*
* Field | Other Format
* ------+--------------------------------------------------------------
@@ -364,7 +373,7 @@ get_hash(mrb_state *mrb, mrb_value *hash, mrb_int argc, const mrb_value *argv)
* | | For the conversions 'x', 'X', 'b' and 'B'
* | | on non-zero, prefix the result with "0x",
* | | "0X", "0b" and "0B", respectively.
- * | | For 'a', 'A', 'e', 'E', 'f', 'g', and 'G',
+ * | | For 'e', 'E', 'f', 'g', and 'G',
* | | force a decimal point to be added,
* | | even if no digits follow.
* | | For 'g' and 'G', do not remove trailing zeros.
@@ -547,50 +556,6 @@ mrb_f_sprintf(mrb_state *mrb, mrb_value obj)
}
}
-static int
-mrb_int2str(char *buf, size_t len, mrb_int n)
-{
-#ifdef MRB_NO_STDIO
- char *bufend = buf + len;
- char *p = bufend - 1;
-
- if (len < 1) return -1;
-
- *p -- = '\0';
- len --;
-
- if (n < 0) {
- if (len < 1) return -1;
-
- *p -- = '-';
- len --;
- n = -n;
- }
-
- if (n > 0) {
- for (; n > 0; len --, n /= 10) {
- if (len < 1) return -1;
-
- *p -- = '0' + (n % 10);
- }
- p ++;
- }
- else if (len > 0) {
- *p = '0';
- len --;
- }
- else {
- return -1;
- }
-
- memmove(buf, p, bufend - p);
-
- return bufend - p - 1;
-#else
- return snprintf(buf, len, "%" MRB_PRId, n);
-#endif /* MRB_NO_STDIO */
-}
-
mrb_value
mrb_str_format(mrb_state *mrb, mrb_int argc, const mrb_value *argv, mrb_value fmt)
{
@@ -599,9 +564,9 @@ mrb_str_format(mrb_state *mrb, mrb_int argc, const mrb_value *argv, mrb_value fm
mrb_int blen;
mrb_int bsiz;
mrb_value result;
- mrb_int n;
- mrb_int width;
- mrb_int prec;
+ int n;
+ int width;
+ int prec;
int nextarg = 1;
int posarg = 0;
mrb_value nextvalue;
@@ -688,7 +653,6 @@ retry:
case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
- n = 0;
GETNUM(n, width);
if (*p == '$') {
if (!mrb_undef_p(nextvalue)) {
@@ -745,7 +709,6 @@ retry:
}
flags |= FPREC|FPREC0;
- prec = 0;
p++;
if (*p == '*') {
GETASTER(prec);
@@ -755,7 +718,6 @@ retry:
p++;
goto retry;
}
-
GETNUM(prec, precision);
goto retry;
@@ -898,9 +860,8 @@ retry:
switch (mrb_type(val)) {
#ifndef MRB_NO_FLOAT
case MRB_TT_FLOAT:
- val = mrb_flo_to_fixnum(mrb, val);
- if (mrb_integer_p(val)) goto bin_retry;
- break;
+ val = mrb_float_to_integer(mrb, val);
+ goto bin_retry;
#endif
case MRB_TT_STRING:
val = mrb_str_to_inum(mrb, val, 0, TRUE);
@@ -909,8 +870,8 @@ retry:
v = mrb_integer(val);
break;
default:
- val = mrb_Integer(mrb, val);
- goto bin_retry;
+ v = mrb_as_int(mrb, val);
+ break;
}
switch (*p) {
@@ -946,21 +907,15 @@ retry:
sc = '-';
width--;
}
- mrb_assert(base == 10);
- mrb_int2str(nbuf, sizeof(nbuf)-1, v);
- s = nbuf;
+ s = mrb_int_to_cstr(nbuf, sizeof(nbuf), v, base);
if (v < 0) s++; /* skip minus sign */
}
else {
- s = nbuf;
+ /* print as unsigned */
+ s = mrb_uint_to_cstr(nbuf, sizeof(nbuf), v, base);
if (v < 0) {
dots = 1;
- val = mrb_fix2binstr(mrb, mrb_int_value(mrb, v), base);
}
- else {
- val = mrb_fixnum_to_str(mrb, mrb_int_value(mrb, v), base);
- }
- strncpy(++s, RSTRING_PTR(val), sizeof(nbuf)-2);
}
{
size_t size;
@@ -1053,15 +1008,12 @@ retry:
case 'g':
case 'G':
case 'e':
- case 'E':
- case 'a':
- case 'A': {
+ case 'E': {
mrb_value val = GETARG();
double fval;
mrb_int need = 6;
- char fbuf[64];
- fval = mrb_float(mrb_Float(mrb, val));
+ fval = mrb_as_float(mrb, val);
if (!isfinite(fval)) {
const char *expr;
const mrb_int elen = 3;
@@ -1121,8 +1073,7 @@ retry:
need += 20;
CHECK(need);
- fmt_setup(fbuf, sizeof(fbuf), *p, flags, width, prec);
- n = mrb_float_to_cstr(mrb, &buf[blen], need, fbuf, fval);
+ n = fmt_float(&buf[blen], need, *p, flags, width, prec, fval);
if (n < 0 || n >= need) {
mrb_raise(mrb, E_RUNTIME_ERROR, "formatting error");
}
@@ -1149,35 +1100,6 @@ retry:
return result;
}
-#ifndef MRB_NO_FLOAT
-static void
-fmt_setup(char *buf, size_t size, int c, int flags, mrb_int width, mrb_int prec)
-{
- char *end = buf + size;
- int n;
-
- *buf++ = '%';
- if (flags & FSHARP) *buf++ = '#';
- if (flags & FPLUS) *buf++ = '+';
- if (flags & FMINUS) *buf++ = '-';
- if (flags & FZERO) *buf++ = '0';
- if (flags & FSPACE) *buf++ = ' ';
-
- if (flags & FWIDTH) {
- n = mrb_int2str(buf, end - buf, width);
- buf += n;
- }
-
- if (flags & FPREC) {
- *buf ++ = '.';
- n = mrb_int2str(buf, end - buf, prec);
- buf += n;
- }
-
- *buf++ = c;
- *buf = '\0';
-}
-#endif
void
mrb_mruby_sprintf_gem_init(mrb_state *mrb)
diff --git a/mrbgems/mruby-sprintf/test/sprintf.rb b/mrbgems/mruby-sprintf/test/sprintf.rb
index 0a8166bae..aedc2787a 100644
--- a/mrbgems/mruby-sprintf/test/sprintf.rb
+++ b/mrbgems/mruby-sprintf/test/sprintf.rb
@@ -10,11 +10,11 @@ assert('String#%') do
assert_equal 15, ("%b" % (1<<14)).size
skip unless Object.const_defined?(:Float)
assert_equal "1.0", "%3.1f" % 1.01
- assert_equal " 1234567.12", "% 4.2f" % 1234567.123456789
- assert_equal "1234567.12", "%-4.2f" % 1234567.123456789
- assert_equal "+1234567.12", "%+4.2f" % 1234567.123456789
- assert_equal "1234567.12", "%04.2f" % 1234567.123456789
- assert_equal "00000000001234567.12", "%020.2f" % 1234567.123456789
+ assert_equal " 12345.12", "% 4.2f" % 12345.1234
+ assert_equal "12345.12", "%-4.2f" % 12345.12345
+ assert_equal "+12345.12", "%+4.2f" % 12345.1234
+ assert_equal "12345.12", "%04.2f" % 12345.12345
+ assert_equal "0012345.12", "%010.2f" % 12345.1234
end
assert('String#% with inf') do
diff --git a/mrbgems/mruby-string-ext/mrblib/string.rb b/mrbgems/mruby-string-ext/mrblib/string.rb
index ff113dd95..84d566fda 100644
--- a/mrbgems/mruby-string-ext/mrblib/string.rb
+++ b/mrbgems/mruby-string-ext/mrblib/string.rb
@@ -465,8 +465,6 @@ class String
end
def __upto_endless(&block)
- return to_enum(:__upto_endless) unless block
-
len = self.length
# both edges are all digits
bi = self.to_i(10)
diff --git a/mrbgems/mruby-string-ext/src/string.c b/mrbgems/mruby-string-ext/src/string.c
index 09cbf7995..158cb5193 100644
--- a/mrbgems/mruby-string-ext/src/string.c
+++ b/mrbgems/mruby-string-ext/src/string.c
@@ -35,7 +35,7 @@ str_casecmp_p(const char *s1, mrb_int len1, const char *s2, mrb_int len2)
static mrb_value
int_chr_binary(mrb_state *mrb, mrb_value num)
{
- mrb_int cp = mrb_int(mrb, num);
+ mrb_int cp = mrb_as_int(mrb, num);
char c;
mrb_value str;
@@ -262,7 +262,7 @@ enum tr_pattern_type {
<range> ::= <ch> '-' <ch>
*/
struct tr_pattern {
- uint8_t type; // 1:in-order, 2:range
+ uint8_t type; // 1:in-order, 2:range
mrb_bool flag_reverse : 1;
mrb_bool flag_on_heap : 1;
uint16_t n;
@@ -329,9 +329,9 @@ tr_parse_pattern(mrb_state *mrb, struct tr_pattern *ret, const mrb_value v_patte
mrb_int len;
while (i < pattern_length) {
- if ((i+2) < pattern_length && pattern[i] != '\\' && pattern[i+1] == '-')
+ if ((i+2) < pattern_length && pattern[i] != '\\' && pattern[i+1] == '-')
break;
- i++;
+ i++;
}
len = i - start_pos;
@@ -375,7 +375,7 @@ tr_find_character(const struct tr_pattern *pat, const char *pat_str, int ch)
if (pat->type == TR_IN_ORDER) {
int i;
for (i = 0; i < pat->n; i++) {
- if (pat_str[pat->val.start_pos + i] == ch) ret = n_sum + i;
+ if (pat_str[pat->val.start_pos + i] == ch) ret = n_sum + i;
}
}
else if (pat->type == TR_RANGE) {
@@ -509,7 +509,7 @@ str_tr(mrb_state *mrb, mrb_value str, mrb_value p1, mrb_value p2, mrb_bool squee
if (n >= 0) {
flag_changed = TRUE;
if (rep == NULL) {
- j--;
+ j--;
}
else {
mrb_int c = tr_get_character(rep, RSTRING_PTR(p2), n);
@@ -521,8 +521,8 @@ str_tr(mrb_state *mrb, mrb_value str, mrb_value p1, mrb_value p2, mrb_bool squee
if (c > 0x80) {
mrb_raisef(mrb, E_ARGUMENT_ERROR, "character (%i) out of range", c);
}
- lastch = c;
- s[i] = (char)c;
+ lastch = c;
+ s[i] = (char)c;
}
}
}
diff --git a/mrbgems/mruby-struct/src/struct.c b/mrbgems/mruby-struct/src/struct.c
index 54afefd74..df76d7a33 100644
--- a/mrbgems/mruby-struct/src/struct.c
+++ b/mrbgems/mruby-struct/src/struct.c
@@ -435,7 +435,7 @@ mrb_struct_aref(mrb_state *mrb, mrb_value s)
if (mrb_symbol_p(idx)) {
return struct_aref_sym(mrb, s, mrb_symbol(idx));
}
- return struct_aref_int(mrb, s, mrb_int(mrb, idx));
+ return struct_aref_int(mrb, s, mrb_as_int(mrb, idx));
}
static mrb_value
@@ -499,7 +499,7 @@ mrb_struct_aset(mrb_state *mrb, mrb_value s)
return mrb_struct_aset_sym(mrb, s, mrb_symbol(idx), val);
}
- i = mrb_int(mrb, idx);
+ i = mrb_as_int(mrb, idx);
if (i < 0) i = RSTRUCT_LEN(s) + i;
if (i < 0) {
mrb_raisef(mrb, E_INDEX_ERROR,
diff --git a/mrbgems/mruby-test/driver.c b/mrbgems/mruby-test/driver.c
index 958e87dd1..23f172198 100644
--- a/mrbgems/mruby-test/driver.c
+++ b/mrbgems/mruby-test/driver.c
@@ -220,9 +220,9 @@ mrb_init_test_driver(mrb_state *mrb, mrb_bool verbose)
mrbtest = mrb_define_module(mrb, "Mrbtest");
- mrb_define_const(mrb, mrbtest, "FIXNUM_MAX", mrb_fixnum_value(MRB_INT_MAX));
- mrb_define_const(mrb, mrbtest, "FIXNUM_MIN", mrb_fixnum_value(MRB_INT_MIN));
- mrb_define_const(mrb, mrbtest, "FIXNUM_BIT", mrb_fixnum_value(MRB_INT_BIT));
+ mrb_define_const(mrb, mrbtest, "FIXNUM_MAX", mrb_int_value(mrb, MRB_INT_MAX));
+ mrb_define_const(mrb, mrbtest, "FIXNUM_MIN", mrb_int_value(mrb, MRB_INT_MIN));
+ mrb_define_const(mrb, mrbtest, "FIXNUM_BIT", mrb_int_value(mrb, MRB_INT_BIT));
#ifndef MRB_NO_FLOAT
#ifdef MRB_USE_FLOAT32
diff --git a/mrbgems/mruby-time/src/time.c b/mrbgems/mruby-time/src/time.c
index 2a5e9dd6b..299d4d7e1 100644
--- a/mrbgems/mruby-time/src/time.c
+++ b/mrbgems/mruby-time/src/time.c
@@ -85,8 +85,12 @@ double round(double x) {
/** end of Time class configuration */
-#ifndef NO_GETTIMEOFDAY
-# ifdef _WIN32
+#if (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) && defined(CLOCK_REALTIME)
+# define USE_CLOCK_GETTIME
+#endif
+
+#if !defined(NO_GETTIMEOFDAY)
+# if defined(_WIN32) && !defined(USE_CLOCK_GETTIME)
# define WIN32_LEAN_AND_MEAN /* don't include winsock.h */
# include <windows.h>
# define gettimeofday my_gettimeofday
@@ -389,7 +393,7 @@ current_mrb_time(mrb_state *mrb)
sec = ts.tv_sec;
usec = ts.tv_nsec / 1000;
}
-#elif (defined(_POSIX_TIMERS) && _POSIX_TIMERS > 0) && defined(CLOCK_REALTIME)
+#elif defined(USE_CLOCK_GETTIME)
{
struct timespec ts;
clock_gettime(CLOCK_REALTIME, &ts);
diff --git a/mrblib/array.rb b/mrblib/array.rb
index 18b729128..6b4f74b96 100644
--- a/mrblib/array.rb
+++ b/mrblib/array.rb
@@ -4,7 +4,6 @@
#
# ISO 15.2.12
class Array
-
##
# Calls the given block for each element of +self+
# and pass the respective element.
@@ -193,13 +192,6 @@ class Array
return block.call if ret.nil? && block
ret
end
-end
-
-##
-# Array is enumerable
-class Array
- # ISO 15.2.12.3
- include Enumerable
##
# Sort all elements and replace +self+ with these
@@ -276,4 +268,10 @@ class Array
def to_a
self
end
+ alias entries to_a
+
+ ##
+ # Array is enumerable
+ # ISO 15.2.12.3
+ include Enumerable
end
diff --git a/mrblib/hash.rb b/mrblib/hash.rb
index 085536c6c..ac70f4c70 100644
--- a/mrblib/hash.rb
+++ b/mrblib/hash.rb
@@ -4,6 +4,12 @@
# ISO 15.2.13
class Hash
##
+ # Hash is enumerable
+ #
+ # ISO 15.2.13.3
+ include Enumerable
+
+ ##
# Equality---Two hashes are equal if they each contain the same number
# of keys and if each key-value pair is equal to (according to
# <code>Object#==</code>) the corresponding elements in the other
@@ -297,11 +303,3 @@ class Hash
h
end
end
-
-##
-# Hash is enumerable
-#
-# ISO 15.2.13.3
-class Hash
- include Enumerable
-end
diff --git a/mrblib/range.rb b/mrblib/range.rb
index 36886d50c..f808053ca 100644
--- a/mrblib/range.rb
+++ b/mrblib/range.rb
@@ -3,6 +3,11 @@
#
# ISO 15.2.14
class Range
+ ##
+ # Range is enumerable
+ #
+ # ISO 15.2.14.3
+ include Enumerable
##
# Calls the given block for each element of +self+
@@ -15,7 +20,7 @@ class Range
val = self.begin
last = self.end
- if val.kind_of?(Fixnum) && last.nil?
+ if val.kind_of?(Integer) && last.nil?
i = val
while true
block.call(i)
@@ -74,16 +79,19 @@ class Range
h
end
+ ##
+ # call-seq:
+ # rng.to_a -> array
+ # rng.entries -> array
+ #
+ # Returns an array containing the items in the range.
+ #
+ # (1..7).to_a #=> [1, 2, 3, 4, 5, 6, 7]
+ # (1..).to_a #=> RangeError: cannot convert endless range to an array
def to_a
- raise RangeError, "cannot convert endless range to an array" if self.last.nil?
+ a = __num_to_a
+ return a if a
super
end
-end
-
-##
-# Range is enumerable
-#
-# ISO 15.2.14.3
-class Range
- include Enumerable
+ alias entries to_a
end
diff --git a/scripts/ci/pre-commit/sort-codespell-wordlist.sh b/scripts/ci/pre-commit/sort-codespell-wordlist.sh
new file mode 100755
index 000000000..e5250f0a9
--- /dev/null
+++ b/scripts/ci/pre-commit/sort-codespell-wordlist.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+CODESPELL_WORDLIST="codespell.txt"
+temp_file=$(mktemp)
+sort <"${CODESPELL_WORDLIST}" | uniq >"${temp_file}"
+cat "${temp_file}" >"${CODESPELL_WORDLIST}"
+rm "${temp_file}"
diff --git a/src/array.c b/src/array.c
index 739b2b3e1..6a3034962 100644
--- a/src/array.c
+++ b/src/array.c
@@ -591,6 +591,7 @@ mrb_ary_shift_m(mrb_state *mrb, mrb_value self)
};
ary_modify_check(mrb, a);
if (len == 0 || n == 0) return mrb_ary_new(mrb);
+ if (n < 0) mrb_raise(mrb, E_ARGUMENT_ERROR, "negative array shift");
if (n > len) n = len;
val = mrb_ary_new_from_values(mrb, n, ARY_PTR(a));
if (ARY_SHARED_P(a)) {
@@ -693,19 +694,6 @@ mrb_ary_unshift_m(mrb_state *mrb, mrb_value self)
return self;
}
-MRB_API mrb_value
-mrb_ary_ref(mrb_state *mrb, mrb_value ary, mrb_int n)
-{
- struct RArray *a = mrb_ary_ptr(ary);
- mrb_int len = ARY_LEN(a);
-
- /* range check */
- if (n < 0) n += len;
- if (n < 0 || len <= n) return mrb_nil_value();
-
- return ARY_PTR(a)[n];
-}
-
MRB_API void
mrb_ary_set(mrb_state *mrb, mrb_value ary, mrb_int n, mrb_value val)
{
@@ -1190,15 +1178,16 @@ mrb_ary_empty_p(mrb_state *mrb, mrb_value self)
}
MRB_API mrb_value
-mrb_ary_entry(mrb_value ary, mrb_int offset)
+mrb_ary_entry(mrb_value ary, mrb_int n)
{
- if (offset < 0) {
- offset += RARRAY_LEN(ary);
- }
- if (offset < 0 || RARRAY_LEN(ary) <= offset) {
- return mrb_nil_value();
- }
- return RARRAY_PTR(ary)[offset];
+ struct RArray *a = mrb_ary_ptr(ary);
+ mrb_int len = ARY_LEN(a);
+
+ /* range check */
+ if (n < 0) n += len;
+ if (n < 0 || len <= n) return mrb_nil_value();
+
+ return ARY_PTR(a)[n];
}
static mrb_value
diff --git a/src/backtrace.c b/src/backtrace.c
index 6e7e66f8c..7ff1cea6c 100644
--- a/src/backtrace.c
+++ b/src/backtrace.c
@@ -32,44 +32,63 @@ mrb_value mrb_unpack_backtrace(mrb_state *mrb, mrb_value backtrace);
static void
each_backtrace(mrb_state *mrb, ptrdiff_t ciidx, each_backtrace_func func, void *data)
{
- ptrdiff_t i;
- int n = 0;
-
if (ciidx >= mrb->c->ciend - mrb->c->cibase)
ciidx = 10; /* ciidx is broken... */
- for (i=ciidx; i >= 0; i--) {
+ for (ptrdiff_t i=ciidx; i >= 0; i--) {
struct backtrace_location loc;
mrb_callinfo *ci;
- const mrb_irep *irep;
+ const mrb_irep *irep = 0;
const mrb_code *pc;
uint32_t idx;
ci = &mrb->c->cibase[i];
- if (!ci->proc) continue;
- if (MRB_PROC_CFUNC_P(ci->proc)) continue;
-
- irep = ci->proc->body.irep;
- if (!irep) continue;
-
- if (mrb->c->cibase[i].pc) {
- pc = &mrb->c->cibase[i].pc[-1];
+ if (!ci->proc || MRB_PROC_CFUNC_P(ci->proc)) {
+ loc.lineno = -1;
+ idx = 0;
}
else {
- continue;
+ irep = ci->proc->body.irep;
+ if (!irep) continue;
+ if (mrb->c->cibase[i].pc) {
+ pc = &mrb->c->cibase[i].pc[-1];
+ }
+ else {
+ continue;
+ }
+ idx = (uint32_t)(pc - irep->iseq);
+ loc.lineno = mrb_debug_get_line(mrb, irep, idx);
+ }
+ loc.method_id = ci->mid;
+ if (loc.lineno == -1) {
+ for (ptrdiff_t j=i-1; j >= 0; j--) {
+ ci = &mrb->c->cibase[j];
+
+ if (!ci->proc) continue;
+ if (MRB_PROC_CFUNC_P(ci->proc)) continue;
+
+ irep = ci->proc->body.irep;
+ if (!irep) continue;
+
+ if (mrb->c->cibase[j].pc) {
+ pc = &mrb->c->cibase[j].pc[-1];
+ }
+ else {
+ continue;
+ }
+
+ idx = (uint32_t)(pc - irep->iseq);
+ loc.lineno = mrb_debug_get_line(mrb, irep, idx);
+ if (loc.lineno > 0) break;
+ }
}
-
- idx = (uint32_t)(pc - irep->iseq);
- loc.lineno = mrb_debug_get_line(mrb, irep, idx);
- if (n++ == 0 && loc.lineno == -1 && ci->acc < 0) continue;
loc.filename = mrb_debug_get_filename(mrb, irep, idx);
if (!loc.filename) {
loc.filename = "(unknown)";
}
- loc.method_id = ci->mid;
func(mrb, &loc, data);
}
}
@@ -85,7 +104,9 @@ print_backtrace(mrb_state *mrb, struct RObject *exc, mrb_value backtrace)
FILE *stream = stderr;
if (n != 0) {
- fprintf(stream, "trace (most recent call last):\n");
+ if (n > 1) {
+ fprintf(stream, "trace (most recent call last):\n");
+ }
for (i=n-1,loc=&RARRAY_PTR(backtrace)[i]; i>0; i--,loc--) {
if (mrb_string_p(*loc)) {
fprintf(stream, "\t[%d] %.*s\n",
diff --git a/src/cdump.c b/src/cdump.c
new file mode 100644
index 000000000..9b7040e58
--- /dev/null
+++ b/src/cdump.c
@@ -0,0 +1,445 @@
+/*
+** dump.c - mruby binary dumper (mrbc binary format)
+**
+** See Copyright Notice in mruby.h
+*/
+
+#include <mruby.h>
+#include <mruby/string.h>
+#include <mruby/dump.h>
+#include <mruby/irep.h>
+#include <mruby/debug.h>
+
+#include <string.h>
+
+#ifndef MRB_NO_STDIO
+
+#ifndef MRB_NO_FLOAT
+#include <mruby/endian.h>
+#define MRB_FLOAT_FMT "%.17g"
+#endif
+
+static int
+cdump_pool(mrb_state *mrb, const mrb_pool_value *p, FILE *fp)
+{
+ if (p->tt & IREP_TT_NFLAG) { /* number */
+ switch (p->tt) {
+#ifdef MRB_64BIT
+ case IREP_TT_INT64:
+ if (p->u.i64 < INT32_MIN || INT32_MAX < p->u.i64) {
+ fprintf(fp, "{IREP_TT_INT64, {.i64=%" PRId64 "}},\n", p->u.i64);
+ }
+ else {
+ fprintf(fp, "{IREP_TT_INT32, {.i32=%" PRId32 "}},\n", (int32_t)p->u.i64);
+ }
+ break;
+#endif
+ case IREP_TT_INT32:
+ fprintf(fp, "{IREP_TT_INT32, {.i32=%" PRId32 "}},\n", p->u.i32);
+ break;
+ case IREP_TT_FLOAT:
+#ifndef MRB_NO_FLOAT
+ if (p->u.f == 0) {
+ fprintf(fp, "{IREP_TT_FLOAT, {.f=%#.1f}},\n", p->u.f);
+ }
+ else {
+ fprintf(fp, "{IREP_TT_FLOAT, {.f=" MRB_FLOAT_FMT "}},\n", p->u.f);
+ }
+#endif
+ break;
+ case IREP_TT_BIGINT:
+ {
+ const char *s = p->u.str;
+ int len = s[0]+2;
+ fputs("{IREP_TT_BIGINT, {\"", fp);
+ for (int i=0; i<len; i++) {
+ fprintf(fp, "\\x%02x", (int)s[i]&0xff);
+ }
+ fputs("\"}},\n", fp);
+ }
+ break;
+ }
+ }
+ else { /* string */
+ int i, len = p->tt>>2;
+ const char *s = p->u.str;
+ fprintf(fp, "{IREP_TT_STR|(%d<<2), {\"", len);
+ for (i=0; i<len; i++) {
+ fprintf(fp, "\\x%02x", (int)s[i]&0xff);
+ }
+ fputs("\"}},\n", fp);
+ }
+ return MRB_DUMP_OK;
+}
+
+static mrb_bool
+sym_name_word_p(const char *name, mrb_int len)
+{
+ if (len == 0) return FALSE;
+ if (name[0] != '_' && !ISALPHA(name[0])) return FALSE;
+ for (int i = 1; i < len; i++) {
+ if (name[i] != '_' && !ISALNUM(name[i])) return FALSE;
+ }
+ return TRUE;
+}
+
+static mrb_bool
+sym_name_with_equal_p(const char *name, mrb_int len)
+{
+ return len >= 2 && name[len-1] == '=' && sym_name_word_p(name, len-1);
+}
+
+static mrb_bool
+sym_name_with_question_mark_p(const char *name, mrb_int len)
+{
+ return len >= 2 && name[len-1] == '?' && sym_name_word_p(name, len-1);
+}
+
+static mrb_bool
+sym_name_with_bang_p(const char *name, mrb_int len)
+{
+ return len >= 2 && name[len-1] == '!' && sym_name_word_p(name, len-1);
+}
+
+static mrb_bool
+sym_name_ivar_p(const char *name, mrb_int len)
+{
+ return len >= 2 && name[0] == '@' && sym_name_word_p(name+1, len-1);
+}
+
+static mrb_bool
+sym_name_cvar_p(const char *name, mrb_int len)
+{
+ return len >= 3 && name[0] == '@' && sym_name_ivar_p(name+1, len-1);
+}
+
+#define OPERATOR_SYMBOL(sym_name, name) {name, sym_name, sizeof(sym_name)-1}
+struct operator_symbol {
+ const char *name;
+ const char *sym_name;
+ uint16_t sym_name_len;
+};
+static const struct operator_symbol operator_table[] = {
+ OPERATOR_SYMBOL("!", "not"),
+ OPERATOR_SYMBOL("%", "mod"),
+ OPERATOR_SYMBOL("&", "and"),
+ OPERATOR_SYMBOL("*", "mul"),
+ OPERATOR_SYMBOL("+", "add"),
+ OPERATOR_SYMBOL("-", "sub"),
+ OPERATOR_SYMBOL("/", "div"),
+ OPERATOR_SYMBOL("<", "lt"),
+ OPERATOR_SYMBOL(">", "gt"),
+ OPERATOR_SYMBOL("^", "xor"),
+ OPERATOR_SYMBOL("`", "tick"),
+ OPERATOR_SYMBOL("|", "or"),
+ OPERATOR_SYMBOL("~", "neg"),
+ OPERATOR_SYMBOL("!=", "neq"),
+ OPERATOR_SYMBOL("!~", "nmatch"),
+ OPERATOR_SYMBOL("&&", "andand"),
+ OPERATOR_SYMBOL("**", "pow"),
+ OPERATOR_SYMBOL("+@", "plus"),
+ OPERATOR_SYMBOL("-@", "minus"),
+ OPERATOR_SYMBOL("<<", "lshift"),
+ OPERATOR_SYMBOL("<=", "le"),
+ OPERATOR_SYMBOL("==", "eq"),
+ OPERATOR_SYMBOL("=~", "match"),
+ OPERATOR_SYMBOL(">=", "ge"),
+ OPERATOR_SYMBOL(">>", "rshift"),
+ OPERATOR_SYMBOL("[]", "aref"),
+ OPERATOR_SYMBOL("||", "oror"),
+ OPERATOR_SYMBOL("<=>", "cmp"),
+ OPERATOR_SYMBOL("===", "eqq"),
+ OPERATOR_SYMBOL("[]=", "aset"),
+};
+
+static const char*
+sym_operator_name(const char *sym_name, mrb_int len)
+{
+ mrb_sym table_size = sizeof(operator_table)/sizeof(struct operator_symbol);
+ if (operator_table[table_size-1].sym_name_len < len) return NULL;
+
+ mrb_sym start, idx;
+ int cmp;
+ const struct operator_symbol *op_sym;
+ for (start = 0; table_size != 0; table_size/=2) {
+ idx = start+table_size/2;
+ op_sym = &operator_table[idx];
+ cmp = (int)len-(int)op_sym->sym_name_len;
+ if (cmp == 0) {
+ cmp = memcmp(sym_name, op_sym->sym_name, len);
+ if (cmp == 0) return op_sym->name;
+ }
+ if (0 < cmp) {
+ start = ++idx;
+ --table_size;
+ }
+ }
+ return NULL;
+}
+
+static const char*
+sym_var_name(mrb_state *mrb, const char *initname, const char *key, int n)
+{
+ char buf[32];
+ mrb_value s = mrb_str_new_cstr(mrb, initname);
+ mrb_str_cat_lit(mrb, s, "_");
+ mrb_str_cat_cstr(mrb, s, key);
+ mrb_str_cat_lit(mrb, s, "_");
+ snprintf(buf, sizeof(buf), "%d", n);
+ mrb_str_cat_cstr(mrb, s, buf);
+ return RSTRING_PTR(s);
+}
+
+static int
+cdump_sym(mrb_state *mrb, mrb_sym sym, const char *var_name, int idx, mrb_value init_syms_code, FILE *fp)
+{
+ if (sym == 0) return MRB_DUMP_INVALID_ARGUMENT;
+
+ mrb_int len;
+ const char *name = mrb_sym_name_len(mrb, sym, &len), *op_name;
+ if (!name) return MRB_DUMP_INVALID_ARGUMENT;
+ if (sym_name_word_p(name, len)) {
+ fprintf(fp, "MRB_SYM(%s)", name);
+ }
+ else if (sym_name_with_equal_p(name, len)) {
+ fprintf(fp, "MRB_SYM_E(%.*s)", (int)(len-1), name);
+ }
+ else if (sym_name_with_question_mark_p(name, len)) {
+ fprintf(fp, "MRB_SYM_Q(%.*s)", (int)(len-1), name);
+ }
+ else if (sym_name_with_bang_p(name, len)) {
+ fprintf(fp, "MRB_SYM_B(%.*s)", (int)(len-1), name);
+ }
+ else if (sym_name_ivar_p(name, len)) {
+ fprintf(fp, "MRB_IVSYM(%s)", name+1);
+ }
+ else if (sym_name_cvar_p(name, len)) {
+ fprintf(fp, "MRB_CVSYM(%s)", name+2);
+ }
+ else if ((op_name = sym_operator_name(name, len))) {
+ fprintf(fp, "MRB_OPSYM(%s)", op_name);
+ }
+ else {
+ char buf[32];
+ mrb_value name_obj = mrb_str_new(mrb, name, len);
+ mrb_str_cat_lit(mrb, init_syms_code, " ");
+ mrb_str_cat_cstr(mrb, init_syms_code, var_name);
+ snprintf(buf, sizeof(buf), "[%d] = ", idx);
+ mrb_str_cat_cstr(mrb, init_syms_code, buf);
+ mrb_str_cat_lit(mrb, init_syms_code, "mrb_intern_lit(mrb, ");
+ mrb_str_cat_str(mrb, init_syms_code, mrb_str_dump(mrb, name_obj));
+ mrb_str_cat_lit(mrb, init_syms_code, ");\n");
+ fputs("0", fp);
+ }
+ fputs(", ", fp);
+ return MRB_DUMP_OK;
+}
+
+static int
+cdump_syms(mrb_state *mrb, const char *name, const char *key, int n, int syms_len, const mrb_sym *syms, mrb_value init_syms_code, FILE *fp)
+{
+ int ai = mrb_gc_arena_save(mrb);
+ mrb_int code_len = RSTRING_LEN(init_syms_code);
+ const char *var_name = sym_var_name(mrb, name, key, n);
+ fprintf(fp, "mrb_DEFINE_SYMS_VAR(%s, %d, (", var_name, syms_len);
+ for (int i=0; i<syms_len; i++) {
+ cdump_sym(mrb, syms[i], var_name, i, init_syms_code, fp);
+ }
+ fputs("), ", fp);
+ if (code_len == RSTRING_LEN(init_syms_code)) fputs("const", fp);
+ fputs(");\n", fp);
+ mrb_gc_arena_restore(mrb, ai);
+ return MRB_DUMP_OK;
+}
+
+//Handle the simple/common case of debug_info:
+// - 1 file associated with a single irep
+// - mrb_debug_line_ary format only
+static int
+simple_debug_info(mrb_irep_debug_info *info)
+{
+ if (!info ||
+ info->flen != 1 ||
+ info->files[0]->line_type != mrb_debug_line_ary) {
+ return 0;
+ }
+ return 1;
+}
+
+//Adds debug information to c-structs and
+//adds filenames in init_syms_code block
+static int
+cdump_debug(mrb_state *mrb, const char *name, int n, mrb_irep_debug_info *info,
+ mrb_value init_syms_code, FILE *fp)
+{
+ char buffer[256];
+ const char *filename;
+ mrb_int file_len;
+ int len, i;
+
+ if (!simple_debug_info(info))
+ return MRB_DUMP_INVALID_IREP;
+
+ len = info->files[0]->line_entry_count;
+
+ filename = mrb_sym_name_len(mrb, info->files[0]->filename_sym, &file_len);
+ snprintf(buffer, sizeof(buffer), " %s_debug_file_%d.filename_sym = mrb_intern_lit(mrb,\"",
+ name, n);
+ mrb_str_cat_cstr(mrb, init_syms_code, buffer);
+ mrb_str_cat_cstr(mrb, init_syms_code, filename);
+ mrb_str_cat_cstr(mrb, init_syms_code, "\");\n");
+
+ fprintf(fp, "static uint16_t %s_debug_lines_%d[%d] = {", name, n, len);
+ for (i=0; i<len; i++) {
+ if (i%10 == 0) fputs("\n", fp);
+ fprintf(fp, "0x%04x,", info->files[0]->lines.ary[i]);
+ }
+ fputs("};\n", fp);
+
+ fprintf(fp, "static mrb_irep_debug_info_file %s_debug_file_%d = {\n", name, n);
+ fprintf(fp, "%d, %d, %d, mrb_debug_line_ary, {%s_debug_lines_%d}};\n",
+ info->files[0]->start_pos,
+ info->files[0]->filename_sym,
+ info->files[0]->line_entry_count,
+ name,n);
+ fprintf(fp, "static mrb_irep_debug_info_file *%s_debug_file_%d_ = &%s_debug_file_%d;\n", name, n, name, n);
+
+ fprintf(fp, "static mrb_irep_debug_info %s_debug_%d = {\n", name, n);
+ fprintf(fp, "%d, %d, &%s_debug_file_%d_};\n", info->pc_count, info->flen, name, n);
+
+ return MRB_DUMP_OK;
+}
+
+static int
+cdump_irep_struct(mrb_state *mrb, const mrb_irep *irep, uint8_t flags, FILE *fp, const char *name, int n, mrb_value init_syms_code, int *mp)
+{
+ int i, len;
+ int max = *mp;
+ int debug_available = 0;
+
+ /* dump reps */
+ if (irep->reps) {
+ for (i=0,len=irep->rlen; i<len; i++) {
+ *mp += len;
+ if (cdump_irep_struct(mrb, irep->reps[i], flags, fp, name, max+i, init_syms_code, mp) != MRB_DUMP_OK)
+ return MRB_DUMP_INVALID_ARGUMENT;
+ }
+ fprintf(fp, "static const mrb_irep *%s_reps_%d[%d] = {\n", name, n, len);
+ for (i=0,len=irep->rlen; i<len; i++) {
+ fprintf(fp, " &%s_irep_%d,\n", name, max+i);
+ }
+ fputs("};\n", fp);
+ }
+ /* dump pool */
+ if (irep->pool) {
+ len=irep->plen;
+ fprintf(fp, "static const mrb_pool_value %s_pool_%d[%d] = {\n", name, n, len);
+ for (i=0; i<len; i++) {
+ if (cdump_pool(mrb, &irep->pool[i], fp) != MRB_DUMP_OK)
+ return MRB_DUMP_INVALID_ARGUMENT;
+ }
+ fputs("};\n", fp);
+ }
+ /* dump syms */
+ if (irep->syms) {
+ cdump_syms(mrb, name, "syms", n, irep->slen, irep->syms, init_syms_code, fp);
+ }
+ /* dump iseq */
+ len=irep->ilen+sizeof(struct mrb_irep_catch_handler)*irep->clen;
+ fprintf(fp, "static const mrb_code %s_iseq_%d[%d] = {", name, n, len);
+ for (i=0; i<len; i++) {
+ if (i%20 == 0) fputs("\n", fp);
+ fprintf(fp, "0x%02x,", irep->iseq[i]);
+ }
+ fputs("};\n", fp);
+ /* dump lv */
+ if (irep->lv) {
+ cdump_syms(mrb, name, "lv", n, irep->nlocals-1, irep->lv, init_syms_code, fp);
+ }
+ /* dump debug */
+ if (flags & MRB_DUMP_DEBUG_INFO) {
+ if(cdump_debug(mrb, name, n, irep->debug_info,
+ init_syms_code, fp) == MRB_DUMP_OK) {
+ debug_available = 1;
+ }
+ }
+
+
+ /* dump irep */
+ fprintf(fp, "static const mrb_irep %s_irep_%d = {\n", name, n);
+ fprintf(fp, " %d,%d,%d,\n", irep->nlocals, irep->nregs, irep->clen);
+ fprintf(fp, " MRB_IREP_STATIC,%s_iseq_%d,\n", name, n);
+ if (irep->pool) {
+ fprintf(fp, " %s_pool_%d,", name, n);
+ }
+ else {
+ fputs( " NULL,", fp);
+ }
+ if (irep->syms) {
+ fprintf(fp, "%s_syms_%d,", name, n);
+ }
+ else {
+ fputs( "NULL,", fp);
+ }
+ if (irep->reps) {
+ fprintf(fp, "%s_reps_%d,\n", name, n);
+ }
+ else {
+ fputs( "NULL,\n", fp);
+ }
+ if (irep->lv) {
+ fprintf(fp, " %s_lv_%d,\n", name, n);
+ }
+ else {
+ fputs( " NULL,\t\t\t\t\t/* lv */\n", fp);
+ }
+ if(debug_available) {
+ fprintf(fp, " &%s_debug_%d,\n", name, n);
+ }
+ else {
+ fputs(" NULL,\t\t\t\t\t/* debug_info */\n", fp);
+ }
+ fprintf(fp, " %d,%d,%d,%d,0\n};\n", irep->ilen, irep->plen, irep->slen, irep->rlen);
+
+ return MRB_DUMP_OK;
+}
+
+int
+mrb_dump_irep_cstruct(mrb_state *mrb, const mrb_irep *irep, uint8_t flags, FILE *fp, const char *initname)
+{
+ if (fp == NULL || initname == NULL || initname[0] == '\0') {
+ return MRB_DUMP_INVALID_ARGUMENT;
+ }
+ if (fprintf(fp, "#include <mruby.h>\n"
+ "#include <mruby/irep.h>\n"
+ "#include <mruby/debug.h>\n"
+ "#include <mruby/proc.h>\n"
+ "#include <mruby/presym.h>\n"
+ "\n") < 0) {
+ return MRB_DUMP_WRITE_FAULT;
+ }
+ fputs("#define mrb_BRACED(...) {__VA_ARGS__}\n", fp);
+ fputs("#define mrb_DEFINE_SYMS_VAR(name, len, syms, qualifier) \\\n", fp);
+ fputs(" static qualifier mrb_sym name[len] = mrb_BRACED syms\n", fp);
+ fputs("\n", fp);
+ mrb_value init_syms_code = mrb_str_new_capa(mrb, 0);
+ int max = 1;
+ int n = cdump_irep_struct(mrb, irep, flags, fp, initname, 0, init_syms_code, &max);
+ if (n != MRB_DUMP_OK) return n;
+ fprintf(fp,
+ "%s\n"
+ "const struct RProc %s[] = {{\n",
+ (flags & MRB_DUMP_STATIC) ? "static"
+ : "#ifdef __cplusplus\n"
+ "extern\n"
+ "#endif",
+ initname);
+ fprintf(fp, "NULL,NULL,MRB_TT_PROC,MRB_GC_RED,0,{&%s_irep_0},NULL,{NULL},\n}};\n", initname);
+ fputs("static void\n", fp);
+ fprintf(fp, "%s_init_syms(mrb_state *mrb)\n", initname);
+ fputs("{\n", fp);
+ fputs(RSTRING_PTR(init_syms_code), fp);
+ fputs("}\n", fp);
+ return MRB_DUMP_OK;
+}
+#endif
diff --git a/src/class.c b/src/class.c
index dfd25b371..30e2b2603 100644
--- a/src/class.c
+++ b/src/class.c
@@ -1151,7 +1151,7 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
p = va_arg(ap, mrb_float*);
if (i < argc) {
- *p = mrb_to_flo(mrb, argv[i++]);
+ *p = mrb_as_float(mrb, argv[i]); i++;
}
}
break;
@@ -1162,7 +1162,7 @@ mrb_get_args(mrb_state *mrb, const char *format, ...)
p = va_arg(ap, mrb_int*);
if (i < argc) {
- *p = mrb_integer(mrb_to_int(mrb, argv[i++]));
+ *p = mrb_as_int(mrb, argv[i]); i++;
}
}
break;
@@ -2197,6 +2197,7 @@ mrb_obj_class(mrb_state *mrb, mrb_value obj)
MRB_API void
mrb_alias_method(mrb_state *mrb, struct RClass *c, mrb_sym a, mrb_sym b)
{
+ if (a == b) return;
mrb_method_t m = mrb_method_search(mrb, c, b);
if (!MRB_METHOD_CFUNC_P(m)) {
@@ -2216,6 +2217,7 @@ mrb_alias_method(mrb_state *mrb, struct RClass *c, mrb_sym a, mrb_sym b)
}
p->e.env = e;
p->flags |= MRB_PROC_ENVSET;
+ mrb_field_write_barrier(mrb, (struct RBasic*)p, (struct RBasic*)e);
}
}
mrb_define_method_raw(mrb, c, a, m);
diff --git a/src/codedump.c b/src/codedump.c
index f382bb7eb..0556d724d 100644
--- a/src/codedump.c
+++ b/src/codedump.c
@@ -140,11 +140,11 @@ codedump(mrb_state *mrb, const mrb_irep *irep)
CASE(OP_LOADL, BB);
op_loadl:
switch (irep->pool[b].tt) {
- case IREP_TT_FLOAT:
#ifndef MRB_NO_FLOAT
+ case IREP_TT_FLOAT:
printf("OP_LOADL\tR%d\tL(%d)\t; %f", a, b, (double)irep->pool[b].u.f);
-#endif
break;
+#endif
case IREP_TT_INT32:
printf("OP_LOADL\tR%d\tL(%d)\t; %" PRId32, a, b, irep->pool[b].u.i32);
break;
diff --git a/src/dump.c b/src/dump.c
index 91edf17d3..0b4200795 100644
--- a/src/dump.c
+++ b/src/dump.c
@@ -1,5 +1,5 @@
/*
-** dump.c - mruby binary dumper (mrbc binary format)
+** cdump.c - mruby binary dumper (in C)
**
** See Copyright Notice in mruby.h
*/
@@ -14,7 +14,6 @@
#ifndef MRB_NO_FLOAT
#include <mruby/endian.h>
-#define MRB_FLOAT_FMT "%.17g"
#endif
static size_t get_irep_record_size_1(mrb_state *mrb, const mrb_irep *irep);
@@ -929,428 +928,4 @@ mrb_dump_irep_cfunc(mrb_state *mrb, const mrb_irep *irep, uint8_t flags, FILE *f
return result;
}
-static int
-dump_pool(mrb_state *mrb, const mrb_pool_value *p, FILE *fp)
-{
- if (p->tt & IREP_TT_NFLAG) { /* number */
- switch (p->tt) {
-#ifdef MRB_64BIT
- case IREP_TT_INT64:
- if (p->u.i64 < INT32_MIN || INT32_MAX < p->u.i64) {
- fprintf(fp, "{IREP_TT_INT64, {.i64=%" PRId64 "}},\n", p->u.i64);
- }
- else {
- fprintf(fp, "{IREP_TT_INT32, {.i32=%" PRId32 "}},\n", (int32_t)p->u.i64);
- }
- break;
-#endif
- case IREP_TT_INT32:
- fprintf(fp, "{IREP_TT_INT32, {.i32=%" PRId32 "}},\n", p->u.i32);
- break;
- case IREP_TT_FLOAT:
-#ifndef MRB_NO_FLOAT
- if (p->u.f == 0) {
- fprintf(fp, "{IREP_TT_FLOAT, {.f=%#.1f}},\n", p->u.f);
- }
- else {
- fprintf(fp, "{IREP_TT_FLOAT, {.f=" MRB_FLOAT_FMT "}},\n", p->u.f);
- }
-#endif
- break;
- case IREP_TT_BIGINT:
- {
- const char *s = p->u.str;
- int len = s[0]+2;
- fputs("{IREP_TT_BIGINT, {\"", fp);
- for (int i=0; i<len; i++) {
- fprintf(fp, "\\x%02x", (int)s[i]&0xff);
- }
- fputs("\"}},\n", fp);
- }
- break;
- }
- }
- else { /* string */
- int i, len = p->tt>>2;
- const char *s = p->u.str;
- fprintf(fp, "{IREP_TT_STR|(%d<<2), {\"", len);
- for (i=0; i<len; i++) {
- fprintf(fp, "\\x%02x", (int)s[i]&0xff);
- }
- fputs("\"}},\n", fp);
- }
- return MRB_DUMP_OK;
-}
-
-static mrb_bool
-sym_name_word_p(const char *name, mrb_int len)
-{
- if (len == 0) return FALSE;
- if (name[0] != '_' && !ISALPHA(name[0])) return FALSE;
- for (int i = 1; i < len; i++) {
- if (name[i] != '_' && !ISALNUM(name[i])) return FALSE;
- }
- return TRUE;
-}
-
-static mrb_bool
-sym_name_with_equal_p(const char *name, mrb_int len)
-{
- return len >= 2 && name[len-1] == '=' && sym_name_word_p(name, len-1);
-}
-
-static mrb_bool
-sym_name_with_question_mark_p(const char *name, mrb_int len)
-{
- return len >= 2 && name[len-1] == '?' && sym_name_word_p(name, len-1);
-}
-
-static mrb_bool
-sym_name_with_bang_p(const char *name, mrb_int len)
-{
- return len >= 2 && name[len-1] == '!' && sym_name_word_p(name, len-1);
-}
-
-static mrb_bool
-sym_name_ivar_p(const char *name, mrb_int len)
-{
- return len >= 2 && name[0] == '@' && sym_name_word_p(name+1, len-1);
-}
-
-static mrb_bool
-sym_name_cvar_p(const char *name, mrb_int len)
-{
- return len >= 3 && name[0] == '@' && sym_name_ivar_p(name+1, len-1);
-}
-
-#define OPERATOR_SYMBOL(sym_name, name) {name, sym_name, sizeof(sym_name)-1}
-struct operator_symbol {
- const char *name;
- const char *sym_name;
- uint16_t sym_name_len;
-};
-static const struct operator_symbol operator_table[] = {
- OPERATOR_SYMBOL("!", "not"),
- OPERATOR_SYMBOL("%", "mod"),
- OPERATOR_SYMBOL("&", "and"),
- OPERATOR_SYMBOL("*", "mul"),
- OPERATOR_SYMBOL("+", "add"),
- OPERATOR_SYMBOL("-", "sub"),
- OPERATOR_SYMBOL("/", "div"),
- OPERATOR_SYMBOL("<", "lt"),
- OPERATOR_SYMBOL(">", "gt"),
- OPERATOR_SYMBOL("^", "xor"),
- OPERATOR_SYMBOL("`", "tick"),
- OPERATOR_SYMBOL("|", "or"),
- OPERATOR_SYMBOL("~", "neg"),
- OPERATOR_SYMBOL("!=", "neq"),
- OPERATOR_SYMBOL("!~", "nmatch"),
- OPERATOR_SYMBOL("&&", "andand"),
- OPERATOR_SYMBOL("**", "pow"),
- OPERATOR_SYMBOL("+@", "plus"),
- OPERATOR_SYMBOL("-@", "minus"),
- OPERATOR_SYMBOL("<<", "lshift"),
- OPERATOR_SYMBOL("<=", "le"),
- OPERATOR_SYMBOL("==", "eq"),
- OPERATOR_SYMBOL("=~", "match"),
- OPERATOR_SYMBOL(">=", "ge"),
- OPERATOR_SYMBOL(">>", "rshift"),
- OPERATOR_SYMBOL("[]", "aref"),
- OPERATOR_SYMBOL("||", "oror"),
- OPERATOR_SYMBOL("<=>", "cmp"),
- OPERATOR_SYMBOL("===", "eqq"),
- OPERATOR_SYMBOL("[]=", "aset"),
-};
-
-static const char*
-sym_operator_name(const char *sym_name, mrb_int len)
-{
- mrb_sym table_size = sizeof(operator_table)/sizeof(struct operator_symbol);
- if (operator_table[table_size-1].sym_name_len < len) return NULL;
-
- mrb_sym start, idx;
- int cmp;
- const struct operator_symbol *op_sym;
- for (start = 0; table_size != 0; table_size/=2) {
- idx = start+table_size/2;
- op_sym = &operator_table[idx];
- cmp = (int)len-(int)op_sym->sym_name_len;
- if (cmp == 0) {
- cmp = memcmp(sym_name, op_sym->sym_name, len);
- if (cmp == 0) return op_sym->name;
- }
- if (0 < cmp) {
- start = ++idx;
- --table_size;
- }
- }
- return NULL;
-}
-
-static const char*
-sym_var_name(mrb_state *mrb, const char *initname, const char *key, int n)
-{
- char buf[32];
- mrb_value s = mrb_str_new_cstr(mrb, initname);
- mrb_str_cat_lit(mrb, s, "_");
- mrb_str_cat_cstr(mrb, s, key);
- mrb_str_cat_lit(mrb, s, "_");
- snprintf(buf, sizeof(buf), "%d", n);
- mrb_str_cat_cstr(mrb, s, buf);
- return RSTRING_PTR(s);
-}
-
-static int
-dump_sym(mrb_state *mrb, mrb_sym sym, const char *var_name, int idx, mrb_value init_syms_code, FILE *fp)
-{
- if (sym == 0) return MRB_DUMP_INVALID_ARGUMENT;
-
- mrb_int len;
- const char *name = mrb_sym_name_len(mrb, sym, &len), *op_name;
- if (!name) return MRB_DUMP_INVALID_ARGUMENT;
- if (sym_name_word_p(name, len)) {
- fprintf(fp, "MRB_SYM(%s)", name);
- }
- else if (sym_name_with_equal_p(name, len)) {
- fprintf(fp, "MRB_SYM_E(%.*s)", (int)(len-1), name);
- }
- else if (sym_name_with_question_mark_p(name, len)) {
- fprintf(fp, "MRB_SYM_Q(%.*s)", (int)(len-1), name);
- }
- else if (sym_name_with_bang_p(name, len)) {
- fprintf(fp, "MRB_SYM_B(%.*s)", (int)(len-1), name);
- }
- else if (sym_name_ivar_p(name, len)) {
- fprintf(fp, "MRB_IVSYM(%s)", name+1);
- }
- else if (sym_name_cvar_p(name, len)) {
- fprintf(fp, "MRB_CVSYM(%s)", name+2);
- }
- else if ((op_name = sym_operator_name(name, len))) {
- fprintf(fp, "MRB_OPSYM(%s)", op_name);
- }
- else {
- char buf[32];
- mrb_value name_obj = mrb_str_new(mrb, name, len);
- mrb_str_cat_lit(mrb, init_syms_code, " ");
- mrb_str_cat_cstr(mrb, init_syms_code, var_name);
- snprintf(buf, sizeof(buf), "[%d] = ", idx);
- mrb_str_cat_cstr(mrb, init_syms_code, buf);
- mrb_str_cat_lit(mrb, init_syms_code, "mrb_intern_lit(mrb, ");
- mrb_str_cat_str(mrb, init_syms_code, mrb_str_dump(mrb, name_obj));
- mrb_str_cat_lit(mrb, init_syms_code, ");\n");
- fputs("0", fp);
- }
- fputs(", ", fp);
- return MRB_DUMP_OK;
-}
-
-static int
-dump_syms(mrb_state *mrb, const char *name, const char *key, int n, int syms_len, const mrb_sym *syms, mrb_value init_syms_code, FILE *fp)
-{
- int ai = mrb_gc_arena_save(mrb);
- mrb_int code_len = RSTRING_LEN(init_syms_code);
- const char *var_name = sym_var_name(mrb, name, key, n);
- fprintf(fp, "mrb_DEFINE_SYMS_VAR(%s, %d, (", var_name, syms_len);
- for (int i=0; i<syms_len; i++) {
- dump_sym(mrb, syms[i], var_name, i, init_syms_code, fp);
- }
- fputs("), ", fp);
- if (code_len == RSTRING_LEN(init_syms_code)) fputs("const", fp);
- fputs(");\n", fp);
- mrb_gc_arena_restore(mrb, ai);
- return MRB_DUMP_OK;
-}
-
-//Handle the simple/common case of debug_info:
-// - 1 file associated with a single irep
-// - mrb_debug_line_ary format only
-static int
-simple_debug_info(mrb_irep_debug_info *info)
-{
- if (!info ||
- info->flen != 1 ||
- info->files[0]->line_type != mrb_debug_line_ary) {
- return 0;
- }
- return 1;
-}
-
-//Adds debug information to c-structs and
-//adds filenames in init_syms_code block
-static int
-dump_debug(mrb_state *mrb, const char *name, int n, mrb_irep_debug_info *info,
- mrb_value init_syms_code, FILE *fp)
-{
- char buffer[256];
- const char *filename;
- mrb_int file_len;
- int len, i;
-
- if (!simple_debug_info(info))
- return MRB_DUMP_INVALID_IREP;
-
- len = info->files[0]->line_entry_count;
-
- filename = mrb_sym_name_len(mrb, info->files[0]->filename_sym, &file_len);
- snprintf(buffer, sizeof(buffer), " %s_debug_file_%d.filename_sym = mrb_intern_lit(mrb,\"",
- name, n);
- mrb_str_cat_cstr(mrb, init_syms_code, buffer);
- mrb_str_cat_cstr(mrb, init_syms_code, filename);
- mrb_str_cat_cstr(mrb, init_syms_code, "\");\n");
-
- fprintf(fp, "static uint16_t %s_debug_lines_%d[%d] = {", name, n, len);
- for (i=0; i<len; i++) {
- if (i%10 == 0) fputs("\n", fp);
- fprintf(fp, "0x%04x,", info->files[0]->lines.ary[i]);
- }
- fputs("};\n", fp);
-
- fprintf(fp, "static mrb_irep_debug_info_file %s_debug_file_%d = {\n", name, n);
- fprintf(fp, "%d, %d, %d, mrb_debug_line_ary, {%s_debug_lines_%d}};\n",
- info->files[0]->start_pos,
- info->files[0]->filename_sym,
- info->files[0]->line_entry_count,
- name,n);
- fprintf(fp, "static mrb_irep_debug_info_file *%s_debug_file_%d_ = &%s_debug_file_%d;\n", name, n, name, n);
-
- fprintf(fp, "static mrb_irep_debug_info %s_debug_%d = {\n", name, n);
- fprintf(fp, "%d, %d, &%s_debug_file_%d_};\n", info->pc_count, info->flen, name, n);
-
- return MRB_DUMP_OK;
-}
-
-static int
-dump_irep_struct(mrb_state *mrb, const mrb_irep *irep, uint8_t flags, FILE *fp, const char *name, int n, mrb_value init_syms_code, int *mp)
-{
- int i, len;
- int max = *mp;
- int debug_available = 0;
-
- /* dump reps */
- if (irep->reps) {
- for (i=0,len=irep->rlen; i<len; i++) {
- *mp += len;
- if (dump_irep_struct(mrb, irep->reps[i], flags, fp, name, max+i, init_syms_code, mp) != MRB_DUMP_OK)
- return MRB_DUMP_INVALID_ARGUMENT;
- }
- fprintf(fp, "static const mrb_irep *%s_reps_%d[%d] = {\n", name, n, len);
- for (i=0,len=irep->rlen; i<len; i++) {
- fprintf(fp, " &%s_irep_%d,\n", name, max+i);
- }
- fputs("};\n", fp);
- }
- /* dump pool */
- if (irep->pool) {
- len=irep->plen;
- fprintf(fp, "static const mrb_pool_value %s_pool_%d[%d] = {\n", name, n, len);
- for (i=0; i<len; i++) {
- if (dump_pool(mrb, &irep->pool[i], fp) != MRB_DUMP_OK)
- return MRB_DUMP_INVALID_ARGUMENT;
- }
- fputs("};\n", fp);
- }
- /* dump syms */
- if (irep->syms) {
- dump_syms(mrb, name, "syms", n, irep->slen, irep->syms, init_syms_code, fp);
- }
- /* dump iseq */
- len=irep->ilen+sizeof(struct mrb_irep_catch_handler)*irep->clen;
- fprintf(fp, "static const mrb_code %s_iseq_%d[%d] = {", name, n, len);
- for (i=0; i<len; i++) {
- if (i%20 == 0) fputs("\n", fp);
- fprintf(fp, "0x%02x,", irep->iseq[i]);
- }
- fputs("};\n", fp);
- /* dump lv */
- if (irep->lv) {
- dump_syms(mrb, name, "lv", n, irep->nlocals-1, irep->lv, init_syms_code, fp);
- }
- /* dump debug */
- if (flags & MRB_DUMP_DEBUG_INFO) {
- if(dump_debug(mrb, name, n, irep->debug_info,
- init_syms_code, fp) == MRB_DUMP_OK) {
- debug_available = 1;
- }
- }
-
-
- /* dump irep */
- fprintf(fp, "static const mrb_irep %s_irep_%d = {\n", name, n);
- fprintf(fp, " %d,%d,%d,\n", irep->nlocals, irep->nregs, irep->clen);
- fprintf(fp, " MRB_IREP_STATIC,%s_iseq_%d,\n", name, n);
- if (irep->pool) {
- fprintf(fp, " %s_pool_%d,", name, n);
- }
- else {
- fputs( " NULL,", fp);
- }
- if (irep->syms) {
- fprintf(fp, "%s_syms_%d,", name, n);
- }
- else {
- fputs( "NULL,", fp);
- }
- if (irep->reps) {
- fprintf(fp, "%s_reps_%d,\n", name, n);
- }
- else {
- fputs( "NULL,\n", fp);
- }
- if (irep->lv) {
- fprintf(fp, " %s_lv_%d,\n", name, n);
- }
- else {
- fputs( " NULL,\t\t\t\t\t/* lv */\n", fp);
- }
- if(debug_available) {
- fprintf(fp, " &%s_debug_%d,\n", name, n);
- }
- else {
- fputs(" NULL,\t\t\t\t\t/* debug_info */\n", fp);
- }
- fprintf(fp, " %d,%d,%d,%d,0\n};\n", irep->ilen, irep->plen, irep->slen, irep->rlen);
-
- return MRB_DUMP_OK;
-}
-
-int
-mrb_dump_irep_cstruct(mrb_state *mrb, const mrb_irep *irep, uint8_t flags, FILE *fp, const char *initname)
-{
- if (fp == NULL || initname == NULL || initname[0] == '\0') {
- return MRB_DUMP_INVALID_ARGUMENT;
- }
- if (fprintf(fp, "#include <mruby.h>\n"
- "#include <mruby/irep.h>\n"
- "#include <mruby/debug.h>\n"
- "#include <mruby/proc.h>\n"
- "#include <mruby/presym.h>\n"
- "\n") < 0) {
- return MRB_DUMP_WRITE_FAULT;
- }
- fputs("#define mrb_BRACED(...) {__VA_ARGS__}\n", fp);
- fputs("#define mrb_DEFINE_SYMS_VAR(name, len, syms, qualifier) \\\n", fp);
- fputs(" static qualifier mrb_sym name[len] = mrb_BRACED syms\n", fp);
- fputs("\n", fp);
- mrb_value init_syms_code = mrb_str_new_capa(mrb, 0);
- int max = 1;
- int n = dump_irep_struct(mrb, irep, flags, fp, initname, 0, init_syms_code, &max);
- if (n != MRB_DUMP_OK) return n;
- fprintf(fp,
- "%s\n"
- "const struct RProc %s[] = {{\n",
- (flags & MRB_DUMP_STATIC) ? "static"
- : "#ifdef __cplusplus\n"
- "extern\n"
- "#endif",
- initname);
- fprintf(fp, "NULL,NULL,MRB_TT_PROC,MRB_GC_RED,0,{&%s_irep_0},NULL,{NULL},\n}};\n", initname);
- fputs("static void\n", fp);
- fprintf(fp, "%s_init_syms(mrb_state *mrb)\n", initname);
- fputs("{\n", fp);
- fputs(RSTRING_PTR(init_syms_code), fp);
- fputs("}\n", fp);
- return MRB_DUMP_OK;
-}
-
#endif /* MRB_NO_STDIO */
diff --git a/src/fmt_fp.c b/src/fmt_fp.c
index d3fe97ce3..43daf2307 100644
--- a/src/fmt_fp.c
+++ b/src/fmt_fp.c
@@ -1,463 +1,364 @@
#include <mruby.h>
-#if !defined(MRB_NO_FLOAT)
-#if defined(MRB_NO_STDIO) || defined(_WIN32) || defined(_WIN64)
-/*
-
-Most code in this file originates from musl (src/stdio/vfprintf.c)
-which, just like mruby itself, is licensed under the MIT license.
-
-Copyright (c) 2005-2014 Rich Felker, et al.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*/
-
-#include <limits.h>
#include <string.h>
-#include <math.h>
-#include <float.h>
-#include <ctype.h>
+#include <stdlib.h>
-#include <mruby/string.h>
+#ifndef MRB_NO_FLOAT
+/***********************************************************************
-struct fmt_args;
+ Routine for converting a single-precision
+ floating point number into a string.
-typedef void output_func(struct fmt_args *f, const char *s, size_t l);
+ The code in this function was inspired from Fred Bayer's pdouble.c.
+ Since pdouble.c was released as Public Domain, I'm releasing this
+ code as public domain as well.
-struct fmt_args {
- mrb_state *mrb;
- output_func *output;
- void *opaque;
-};
+ Dave Hylands
-struct mrb_cstr {
- char *buf;
- size_t len;
-};
+ The original code can be found in https://github.com/dhylands/format-float
+***********************************************************************/
-#define MAX(a,b) ((a)>(b) ? (a) : (b))
-#define MIN(a,b) ((a)<(b) ? (a) : (b))
+/***********************************************************************
-/* Convenient bit representation for modifier flags, which all fall
- * within 31 codepoints of the space character. */
+ I modified the routine for mruby:
-#define ALT_FORM (1U<<('#'-' '))
-#define ZERO_PAD (1U<<('0'-' '))
-#define LEFT_ADJ (1U<<('-'-' '))
-#define PAD_POS (1U<<(' '-' '))
-#define MARK_POS (1U<<('+'-' '))
+ * support `double`
+ * support `#` (alt_form) modifier
-#define FLAGMASK (ALT_FORM|ZERO_PAD|LEFT_ADJ|PAD_POS|MARK_POS)
+ My modifications in this file are also placed in the public domain.
-static output_func strcat_value;
-static output_func strcat_cstr;
+ Matz (Yukihiro Matsumoto)
-static void
-strcat_value(struct fmt_args *f, const char *s, size_t l)
-{
- mrb_value str = *(mrb_value*)f->opaque;
- mrb_str_cat(f->mrb, str, s, l);
-}
+***********************************************************************/
-static void
-strcat_cstr(struct fmt_args *f, const char *s, size_t l)
-{
- struct mrb_cstr *cstr = (struct mrb_cstr*)f->opaque;
+#include <math.h>
- if (l > cstr->len) {
- mrb_state *mrb = f->mrb;
+#ifdef MRB_USE_FLOAT32
- mrb_raise(mrb, E_ARGUMENT_ERROR, "string buffer too small");
- }
+// 1 sign bit, 8 exponent bits, and 23 mantissa bits.
+// exponent values 0 and 255 are reserved, exponent can be 1 to 254.
+// exponent is stored with a bias of 127.
+// The min and max floats are on the order of 1x10^37 and 1x10^-37
- memcpy(cstr->buf, s, l);
+#define FLT_DECEXP 32
+#define FLT_ROUND_TO_ONE 0.9999995F
+#define FLT_MIN_BUF_SIZE 6 // -9e+99
- cstr->buf += l;
- cstr->len -= l;
-}
+#else
-static void
-out(struct fmt_args *f, const char *s, size_t l)
-{
- f->output(f, s, l);
-}
+// 1 sign bit, 11 exponent bits, and 52 mantissa bits.
-#define PAD_SIZE 256
-static void
-pad(struct fmt_args *f, char c, ptrdiff_t w, ptrdiff_t l, uint32_t fl)
-{
- char pad[PAD_SIZE];
- if (fl & (LEFT_ADJ | ZERO_PAD) || l >= w) return;
- l = w - l;
- memset(pad, c, l>PAD_SIZE ? PAD_SIZE : l);
- for (; l >= PAD_SIZE; l -= PAD_SIZE)
- out(f, pad, PAD_SIZE);
- out(f, pad, l);
-}
+#define FLT_DECEXP 256
+#define FLT_ROUND_TO_ONE 0.999999999995
+#define FLT_MIN_BUF_SIZE 7 // -9e+199
-static const char xdigits[16] = {
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
-};
+#endif /* MRB_USE_FLOAT32 */
-static char*
-fmt_u(uint32_t x, char *s)
-{
- for (; x; x /= 10) *--s = '0' + x % 10;
- return s;
-}
-
-/* Do not override this check. The floating-point printing code below
- * depends on the float.h constants being right. If they are wrong, it
- * may overflow the stack. */
-#if LDBL_MANT_DIG == 53
-typedef char compiler_defines_long_double_incorrectly[9-(int)sizeof(long double)];
+static const mrb_float g_pos_pow[] = {
+#ifndef MRB_USE_FLOAT32
+ 1e256, 1e128, 1e64,
#endif
+ 1e32, 1e16, 1e8, 1e4, 1e2, 1e1
+};
+static const mrb_float g_neg_pow[] = {
+#ifndef MRB_USE_FLOAT32
+ 1e-256, 1e-128, 1e-64,
+#endif
+ 1e-32, 1e-16, 1e-8, 1e-4, 1e-2, 1e-1
+};
-static int
-fmt_fp(struct fmt_args *f, long double y, ptrdiff_t w, ptrdiff_t p, uint32_t fl, int t)
-{
- uint32_t big[(LDBL_MANT_DIG+28)/29 + 1 // mantissa expansion
- + (LDBL_MAX_EXP+LDBL_MANT_DIG+28+8)/9]; // exponent expansion
- uint32_t *a, *d, *r, *z;
- uint32_t i;
- int e2=0, e, j;
- ptrdiff_t l;
- char buf[9+LDBL_MANT_DIG/4], *s;
- const char *prefix="-0X+0X 0X-0x+0x 0x";
- ptrdiff_t pl;
- char ebuf0[3*sizeof(int)], *ebuf=&ebuf0[3*sizeof(int)], *estr;
-
- pl=1;
- if (signbit(y)) {
- y=-y;
- } else if (fl & MARK_POS) {
- prefix+=3;
- } else if (fl & PAD_POS) {
- prefix+=6;
- } else prefix++, pl=0;
-
- if (!isfinite(y)) {
- const char *ss = (t&32)?"inf":"INF";
- if (y!=y) ss=(t&32)?"nan":"NAN";
- pad(f, ' ', w, 3+pl, fl&~ZERO_PAD);
- out(f, prefix, pl);
- out(f, ss, 3);
- pad(f, ' ', w, 3+pl, fl^LEFT_ADJ);
- return (int)MAX(w, 3+pl);
+/*
+ * mrb_format_float(mrb_float f, char *buf, size_t buf_size, char fmt, int prec, char sign)
+ *
+ * fmt: should be one of 'e', 'E', 'f', 'F', 'g', or 'G'. (|0x80 for '#')
+ * prec: is the precision (as specified in printf)
+ * sign: should be '\0', '+', or ' ' ('\0' is the normal one - only print
+ * a sign if ```f``` is negative. Anything else is printed as the
+ * sign character for positive numbers.
+ */
+
+int
+mrb_format_float(mrb_float f, char *buf, size_t buf_size, char fmt, int prec, char sign) {
+ char *s = buf;
+ int buf_remaining = buf_size - 1;
+ int alt_form = 0;
+
+ if ((uint8_t)fmt & 0x80) {
+ fmt &= 0x7f; /* turn off alt_form flag */
+ alt_form = 1;
}
+ if (buf_size <= FLT_MIN_BUF_SIZE) {
+ // Smallest exp notion is -9e+99 (-9e+199) which is 6 (7) chars plus terminating
+ // null.
- y = frexp((double)y, &e2) * 2;
- if (y) e2--;
-
- if ((t|32)=='a') {
- long double round = 8.0;
- ptrdiff_t re;
-
- if (t&32) prefix += 9;
- pl += 2;
+ if (buf_size >= 2) {
+ *s++ = '?';
+ }
+ if (buf_size >= 1) {
+ *s++ = '\0';
+ }
+ return buf_size >= 2;
+ }
+ if (signbit(f)) {
+ *s++ = '-';
+ f = -f;
+ } else if (sign) {
+ *s++ = sign;
+ }
+ buf_remaining -= (s - buf); // Adjust for sign
+
+ {
+ char uc = fmt & 0x20;
+ if (isinf(f)) {
+ *s++ = 'I' ^ uc;
+ *s++ = 'N' ^ uc;
+ *s++ = 'F' ^ uc;
+ goto ret;
+ } else if (isnan(f)) {
+ *s++ = 'N' ^ uc;
+ *s++ = 'A' ^ uc;
+ *s++ = 'N' ^ uc;
+ ret:
+ *s = '\0';
+ return s - buf;
+ }
+ }
- if (p<0 || p>=LDBL_MANT_DIG/4-1) re=0;
- else re=LDBL_MANT_DIG/4-1-p;
+ if (prec < 0) {
+ prec = 6;
+ }
+ char e_char = 'E' | (fmt & 0x20); // e_char will match case of fmt
+ fmt |= 0x20; // Force fmt to be lowercase
+ char org_fmt = fmt;
+ if (fmt == 'g' && prec == 0) {
+ prec = 1;
+ }
+ int e, e1;
+ int dec = 0;
+ char e_sign = '\0';
+ int num_digits = 0;
+ const mrb_float *pos_pow = g_pos_pow;
+ const mrb_float *neg_pow = g_neg_pow;
+
+ if (f == 0.0) {
+ e = 0;
+ if (fmt == 'e') {
+ e_sign = '+';
+ } else if (fmt == 'f') {
+ num_digits = prec + 1;
+ }
+ } else if (f < 1.0) { // f < 1.0
+ char first_dig = '0';
+ if (f >= FLT_ROUND_TO_ONE) {
+ first_dig = '1';
+ }
- if (re) {
- while (re--) round*=16;
- if (*prefix=='-') {
- y=-y;
- y-=round;
- y+=round;
- y=-y;
+ // Build negative exponent
+ for (e = 0, e1 = FLT_DECEXP; e1; e1 >>= 1, pos_pow++, neg_pow++) {
+ if (*neg_pow > f) {
+ e += e1;
+ f *= *pos_pow;
}
- else {
- y+=round;
- y-=round;
+ }
+ char e_sign_char = '-';
+ if (f < 1.0) {
+ if (f >= FLT_ROUND_TO_ONE) {
+ f = 1.0;
+ if (e == 0) {
+ e_sign_char = '+';
+ }
+ } else {
+ e++;
+ f *= 10.0;
}
}
- estr=fmt_u(e2<0 ? -e2 : e2, ebuf);
- if (estr==ebuf) *--estr='0';
- *--estr = (e2<0 ? '-' : '+');
- *--estr = t+('p'-'a');
-
- s=buf;
- do {
- int x=(int)y;
- *s++=xdigits[x]|(t&32);
- y=16*(y-x);
- if (s-buf==1 && (y||p>0||(fl&ALT_FORM))) *s++='.';
- } while (y);
-
- if (p && s-buf-2 < p)
- l = (p+2) + (ebuf-estr);
- else
- l = (s-buf) + (ebuf-estr);
-
- pad(f, ' ', w, pl+l, fl);
- out(f, prefix, pl);
- pad(f, '0', w, pl+l, fl^ZERO_PAD);
- out(f, buf, s-buf);
- pad(f, '0', l-(ebuf-estr)-(s-buf), 0, 0);
- out(f, estr, ebuf-estr);
- pad(f, ' ', w, pl+l, fl^LEFT_ADJ);
- return (int)MAX(w, pl+l);
- }
- if (p<0) p=6;
-
- if (y) y *= 268435456.0, e2-=28;
+ // If the user specified 'g' format, and e is <= 4, then we'll switch
+ // to the fixed format ('f')
- if (e2<0) a=r=z=big;
- else a=r=z=big+sizeof(big)/sizeof(*big) - LDBL_MANT_DIG - 1;
+ if (fmt == 'f' || (fmt == 'g' && e <= 4)) {
+ fmt = 'f';
+ dec = -1;
+ *s++ = first_dig;
- do {
- *z = (uint32_t)y;
- y = 1000000000*(y-*z++);
- } while (y);
-
- while (e2>0) {
- uint32_t carry=0;
- int sh=MIN(29,e2);
- for (d=z-1; d>=a; d--) {
- uint64_t x = ((uint64_t)*d<<sh)+carry;
- *d = x % 1000000000;
- carry = (uint32_t)(x / 1000000000);
+ if (org_fmt == 'g') {
+ prec += (e - 1);
+ }
+ // truncate precision to prevent buffer overflow
+ if (prec + 2 > buf_remaining) {
+ prec = buf_remaining - 2;
+ }
+ num_digits = prec;
+ if (num_digits || alt_form) {
+ *s++ = '.';
+ while (--e && num_digits) {
+ *s++ = '0';
+ num_digits--;
+ }
+ }
+ } else {
+ // For e & g formats, we'll be printing the exponent, so set the
+ // sign.
+ e_sign = e_sign_char;
+ dec = 0;
+
+ if (prec > (buf_remaining - FLT_MIN_BUF_SIZE)) {
+ prec = buf_remaining - FLT_MIN_BUF_SIZE;
+ if (fmt == 'g') {
+ prec++;
+ }
+ }
}
- if (carry) *--a = carry;
- while (z>a && !z[-1]) z--;
- e2-=sh;
- }
- while (e2<0) {
- uint32_t carry=0, *b;
- int sh=MIN(9,-e2), need=1+((int)p+LDBL_MANT_DIG/3+8)/9;
- for (d=a; d<z; d++) {
- uint32_t rm = *d & ((1<<sh)-1);
- *d = (*d>>sh) + carry;
- carry = (1000000000>>sh) * rm;
+ } else {
+ // Build positive exponent
+ for (e = 0, e1 = FLT_DECEXP; e1; e1 >>= 1, pos_pow++, neg_pow++) {
+ if (*pos_pow <= f) {
+ e += e1;
+ f *= *neg_pow;
+ }
}
- if (!*a) a++;
- if (carry) *z++ = carry;
- /* Avoid (slow!) computation past requested precision */
- b = (t|32)=='f' ? r : a;
- if (z-b > need) z = b+need;
- e2+=sh;
- }
- if (a<z) for (i=10, e=9*(int)(r-a); *a>=i; i*=10, e++);
- else e=0;
-
- /* Perform rounding: j is precision after the radix (possibly neg) */
- j = (int)p - ((t|32)!='f')*e - ((t|32)=='g' && p);
- if (j < 9*(z-r-1)) {
- uint32_t x;
- /* We avoid C's broken division of negative numbers */
- d = r + 1 + ((j+9*LDBL_MAX_EXP)/9 - LDBL_MAX_EXP);
- j += 9*LDBL_MAX_EXP;
- j %= 9;
- for (i=10, j++; j<9; i*=10, j++);
- x = *d % i;
- /* Are there any significant digits past j? */
- if (x || d+1!=z) {
- long double round = 2/LDBL_EPSILON;
- long double small;
- if (*d/i & 1) round += 2;
- if (x<i/2) small=0.5;
- else if (x==i/2 && d+1==z) small=1.0;
- else small=1.5;
- if (pl && *prefix=='-') round*=-1, small*=-1;
- *d -= x;
- /* Decide whether to round by probing round+small */
- if (round+small != round) {
- *d = *d + i;
- while (*d > 999999999) {
- *d--=0;
- if (d<a) *--a=0;
- (*d)++;
+ // If the user specified fixed format (fmt == 'f') and e makes the
+ // number too big to fit into the available buffer, then we'll
+ // switch to the 'e' format.
+
+ if (fmt == 'f') {
+ if (e >= buf_remaining) {
+ fmt = 'e';
+ } else if ((e + prec + 2) > buf_remaining) {
+ prec = buf_remaining - e - 2;
+ if (prec < 0) {
+ // This means no decimal point, so we can add one back
+ // for the decimal.
+ prec++;
}
- for (i=10, e=9*(int)(r-a); *a>=i; i*=10, e++);
}
}
- if (z>d+1) z=d+1;
- }
- for (; z>a && !z[-1]; z--);
-
- if ((t|32)=='g') {
- if (!p) p++;
- if (p>e && e>=-4) {
- t--;
- p-=e+1;
- }
- else {
- t-=2;
- p--;
- }
- if (!(fl&ALT_FORM)) {
- /* Count trailing zeros in last place */
- if (z>a && z[-1]) for (i=10, j=0; z[-1]%i==0; i*=10, j++);
- else j=9;
- if ((t|32)=='f')
- p = MIN(p,MAX(0,9*(z-r-1)-j));
- else
- p = MIN(p,MAX(0,9*(z-r-1)+e-j));
+ if (fmt == 'e' && prec > (buf_remaining - 6)) {
+ prec = buf_remaining - 6;
}
- }
- l = 1 + p + (p || (fl&ALT_FORM));
- if ((t|32)=='f') {
- if (e>0) l+=e;
- }
- else {
- estr=fmt_u(e<0 ? -e : e, ebuf);
- while(ebuf-estr<2) *--estr='0';
- *--estr = (e<0 ? '-' : '+');
- *--estr = t;
- l += ebuf-estr;
- }
+ // If the user specified 'g' format, and e is < prec, then we'll switch
+ // to the fixed format.
- pad(f, ' ', w, pl+l, fl);
- out(f, prefix, pl);
- pad(f, '0', w, pl+l, fl^ZERO_PAD);
-
- if ((t|32)=='f') {
- if (a>r) a=r;
- for (d=a; d<=r; d++) {
- char *ss = fmt_u(*d, buf+9);
- if (d!=a) while (ss>buf) *--ss='0';
- else if (ss==buf+9) *--ss='0';
- out(f, ss, buf+9-ss);
+ if (fmt == 'g' && e < prec) {
+ fmt = 'f';
+ prec -= (e + 1);
}
- if (p || (fl&ALT_FORM)) out(f, ".", 1);
- for (; d<z && p>0; d++, p-=9) {
- char *ss = fmt_u(*d, buf+9);
- while (ss>buf) *--ss='0';
- out(f, ss, MIN(9,p));
+ if (fmt == 'f') {
+ dec = e;
+ num_digits = prec + e + 1;
+ } else {
+ e_sign = '+';
}
- pad(f, '0', p+9, 9, 0);
}
- else {
- if (z<=a) z=a+1;
- for (d=a; d<z && p>=0; d++) {
- char *ss = fmt_u(*d, buf+9);
- if (ss==buf+9) *--ss='0';
- if (d!=a) while (ss>buf) *--ss='0';
- else {
- out(f, ss++, 1);
- if (p>0||(fl&ALT_FORM)) out(f, ".", 1);
- }
- out(f, ss, MIN(buf+9-ss, p));
- p -= (int)(buf+9-ss);
- }
- pad(f, '0', p+18, 18, 0);
- out(f, estr, ebuf-estr);
+ if (prec < 0) {
+ // This can happen when the prec is trimmed to prevent buffer overflow
+ prec = 0;
}
- pad(f, ' ', w, pl+l, fl^LEFT_ADJ);
-
- return (int)MAX(w, pl+l);
-}
-
-static int
-fmt_core(struct fmt_args *f, const char *fmt, mrb_float flo)
-{
- ptrdiff_t w, p;
- uint32_t fl;
-
- if (*fmt != '%') {
- return -1;
- }
- ++fmt;
-
- /* Read modifier flags */
- for (fl=0; (unsigned)*fmt-' '<32 && (FLAGMASK&(1U<<(*fmt-' '))); fmt++)
- fl |= 1U<<(*fmt-' ');
-
- /* - and 0 flags are mutually exclusive */
- if (fl & LEFT_ADJ) fl &= ~ZERO_PAD;
-
- for (w = 0; ISDIGIT(*fmt); ++fmt) {
- w = 10 * w + (*fmt - '0');
+ // We now have f as a floating point number between >= 1 and < 10
+ // (or equal to zero), and e contains the absolute value of the power of
+ // 10 exponent. and (dec + 1) == the number of dgits before the decimal.
+
+ // For e, prec is # digits after the decimal
+ // For f, prec is # digits after the decimal
+ // For g, prec is the max number of significant digits
+ //
+ // For e & g there will be a single digit before the decimal
+ // for f there will be e digits before the decimal
+
+ if (fmt == 'e') {
+ num_digits = prec + 1;
+ } else if (fmt == 'g') {
+ if (prec == 0) {
+ prec = 1;
+ }
+ num_digits = prec;
}
- if (*fmt == '.') {
- ++fmt;
- for (p = 0; ISDIGIT(*fmt); ++fmt) {
- p = 10 * p + (*fmt - '0');
+ // Print the digits of the mantissa
+ for (int i = 0; i < num_digits; ++i, --dec) {
+ int8_t d = f;
+ *s++ = '0' + d;
+ if (dec == 0 && (prec > 0 || alt_form)) {
+ *s++ = '.';
}
- }
- else {
- p = -1;
+ f -= (mrb_float)d;
+ f *= 10.0;
}
- switch (*fmt) {
- case 'e': case 'f': case 'g': case 'a':
- case 'E': case 'F': case 'G': case 'A':
- return fmt_fp(f, flo, w, p, fl, *fmt);
- default:
- return -1;
+ // Round
+ if (f >= 5.0) {
+ char *rs = s;
+ rs--;
+ while (1) {
+ if (*rs == '.') {
+ rs--;
+ continue;
+ }
+ if (*rs < '0' || *rs > '9') {
+ // + or -
+ rs++; // So we sit on the digit to the right of the sign
+ break;
+ }
+ if (*rs < '9') {
+ (*rs)++;
+ break;
+ }
+ *rs = '0';
+ if (rs == buf) {
+ break;
+ }
+ rs--;
+ }
+ if (*rs == '0') {
+ // We need to insert a 1
+ if (rs[1] == '.' && fmt != 'f') {
+ // We're going to round 9.99 to 10.00
+ // Move the decimal point
+ rs[0] = '.';
+ rs[1] = '0';
+ if (e_sign == '-') {
+ e--;
+ } else {
+ e++;
+ }
+ }
+ s++;
+ char *ss = s;
+ while (ss > rs) {
+ *ss = ss[-1];
+ ss--;
+ }
+ *rs = '1';
+ if (f < 1.0 && fmt == 'f') {
+ // We rounded up to 1.0
+ prec--;
+ }
+ }
}
-}
-MRB_API mrb_value
-mrb_float_to_str(mrb_state *mrb, mrb_value flo, const char *fmt)
-{
- struct fmt_args f;
- mrb_value str = mrb_str_new_capa(mrb, 24);
-
- f.mrb = mrb;
- f.output = strcat_value;
- f.opaque = (void*)&str;
- if (fmt_core(&f, fmt, mrb_float(flo)) < 0) {
- mrb_raise(mrb, E_ARGUMENT_ERROR, "invalid format string");
+ if (org_fmt == 'g' && prec > 0 && !alt_form) {
+ // Remove trailing zeros and a trailing decimal point
+ while (s[-1] == '0') {
+ s--;
+ }
+ if (s[-1] == '.') {
+ s--;
+ }
}
- return str;
-}
-
-MRB_API int
-mrb_float_to_cstr(mrb_state *mrb, char *buf, size_t len, const char *fmt, mrb_float fval)
-{
- struct fmt_args f;
- struct mrb_cstr cstr;
-
- cstr.buf = buf;
- cstr.len = len - 1; /* reserve NUL terminator */
- f.mrb = mrb;
- f.output = strcat_cstr;
- f.opaque = (void*)&cstr;
- if (fmt_core(&f, fmt, fval) < 0) {
- mrb_raise(mrb, E_ARGUMENT_ERROR, "invalid format string");
+ // Append the exponent
+ if (e_sign) {
+ *s++ = e_char;
+ *s++ = e_sign;
+ if (e >= 100) {
+ *s++ = '0' + (e / 100);
+ e %= 100;
+ }
+ *s++ = '0' + (e / 10);
+ *s++ = '0' + (e % 10);
}
- *cstr.buf = '\0';
- return (int)(cstr.buf - buf);
-}
-#else /* MRB_NO_STDIO || _WIN32 || _WIN64 */
-#include <stdio.h>
-
-MRB_API mrb_value
-mrb_float_to_str(mrb_state *mrb, mrb_value flo, const char *fmt)
-{
- char buf[25];
-
- snprintf(buf, sizeof(buf), fmt, mrb_float(flo));
- return mrb_str_new_cstr(mrb, buf);
-}
+ *s = '\0';
-MRB_API int
-mrb_float_to_cstr(mrb_state *mrb, char *buf, size_t len, const char *fmt, mrb_float fval)
-{
- return snprintf(buf, len, fmt, fval);
+ return s - buf;
}
-#endif /* MRB_NO_STDIO || _WIN32 || _WIN64 */
#endif
diff --git a/src/kernel.c b/src/kernel.c
index 719f92b7e..615b68ac3 100644
--- a/src/kernel.c
+++ b/src/kernel.c
@@ -423,8 +423,8 @@ mrb_f_raise(mrb_state *mrb, mrb_value self)
mrb_value a[2], exc;
mrb_int argc;
-
argc = mrb_get_args(mrb, "|oo", &a[0], &a[1]);
+ mrb->c->ci->mid = 0;
switch (argc) {
case 0:
mrb_raise(mrb, E_RUNTIME_ERROR, "");
@@ -527,6 +527,7 @@ mrb_obj_missing(mrb_state *mrb, mrb_value mod)
const mrb_value *a;
mrb_int alen;
+ mrb->c->ci->mid = 0;
mrb_get_args(mrb, "n*!", &name, &a, &alen);
mrb_method_missing(mrb, name, mod, mrb_ary_new_from_values(mrb, alen, a));
/* not reached */
diff --git a/src/load.c b/src/load.c
index f370dc67e..2e637aa19 100644
--- a/src/load.c
+++ b/src/load.c
@@ -60,8 +60,6 @@ str_to_double(mrb_state *mrb, const char *p)
}
#endif
-mrb_value mrb_str_len_to_inum(mrb_state *mrb, const char *str, size_t len, mrb_int base, int badcheck);
-
static mrb_bool
read_irep_record_1(mrb_state *mrb, const uint8_t *bin, size_t *len, uint8_t flags, mrb_irep **irepp)
{
@@ -146,7 +144,7 @@ read_irep_record_1(mrb_state *mrb, const uint8_t *bin, size_t *len, uint8_t flag
}
break;
case IREP_TT_INT64:
-#ifdef MRB_64BIT
+#ifdef MRB_INT64
{
uint64_t i64 = bin_to_uint32(src);
src += sizeof(uint32_t);
@@ -158,7 +156,7 @@ read_irep_record_1(mrb_state *mrb, const uint8_t *bin, size_t *len, uint8_t flag
}
break;
#else
- return FALSE; /* INT64 not supported on MRB_32BIT */
+ return FALSE;
#endif
case IREP_TT_BIGINT:
diff --git a/src/numeric.c b/src/numeric.c
index fe1a18f04..b377ce0e6 100644
--- a/src/numeric.c
+++ b/src/numeric.c
@@ -25,15 +25,13 @@
#define floor(f) floorf(f)
#define ceil(f) ceilf(f)
#define fmod(x,y) fmodf(x,y)
-#define FLO_TO_STR_PREC 8
#else
-#define FLO_TO_STR_PREC 16
#endif
#endif
#ifndef MRB_NO_FLOAT
MRB_API mrb_float
-mrb_to_flo(mrb_state *mrb, mrb_value val)
+mrb_as_float(mrb_state *mrb, mrb_value val)
{
switch (mrb_type(val)) {
case MRB_TT_INTEGER:
@@ -137,10 +135,6 @@ mrb_div_int(mrb_state *mrb, mrb_int x, mrb_int y)
return 0;
}
-#ifndef MRB_NO_FLOAT
-mrb_float mrb_div_flo(mrb_float x, mrb_float y);
-#endif
-
/* 15.2.8.3.4 */
/* 15.2.9.3.4 */
/*
@@ -164,7 +158,7 @@ int_div(mrb_state *mrb, mrb_value x)
#ifdef MRB_NO_FLOAT
mrb_raise(mrb, E_TYPE_ERROR, "non integer division");
#else
- return mrb_float_value(mrb, mrb_div_flo((mrb_float)a, mrb_to_flo(mrb, y)));
+ return mrb_float_value(mrb, mrb_div_float((mrb_float)a, mrb_as_float(mrb, y)));
#endif
}
@@ -219,7 +213,7 @@ coerce_step_counter(mrb_state *mrb, mrb_value self)
#ifndef MRB_NO_FLOAT
if (mrb_float_p(self) || mrb_float_p(num) || mrb_float_p(step)) {
- return mrb_Float(mrb, self);
+ return mrb_to_float(mrb, self);
}
#endif
@@ -240,7 +234,7 @@ static mrb_value
flo_pow(mrb_state *mrb, mrb_value x)
{
mrb_value y = mrb_get_arg1(mrb);
- mrb_float d = pow(mrb_to_flo(mrb, x), mrb_to_flo(mrb, y));
+ mrb_float d = pow(mrb_as_float(mrb, x), mrb_as_float(mrb, y));
return mrb_float_value(mrb, d);
}
@@ -255,7 +249,7 @@ flo_idiv(mrb_state *mrb, mrb_value xv)
}
mrb_float
-mrb_div_flo(mrb_float x, mrb_float y)
+mrb_div_float(mrb_float x, mrb_float y)
{
if (y != 0.0) {
return x / y;
@@ -275,14 +269,39 @@ flo_div(mrb_state *mrb, mrb_value x)
mrb_float a = mrb_float(x);
if (mrb_float_p(y)) {
- a = mrb_div_flo(a, mrb_float(y));
+ a = mrb_div_float(a, mrb_float(y));
}
else {
- a = mrb_div_flo(a, mrb_to_flo(mrb, y));
+ a = mrb_div_float(a, mrb_as_float(mrb, y));
}
return mrb_float_value(mrb, a);
}
+/* the argument `fmt` is no longer used; you can pass `NULL` */
+mrb_value
+mrb_float_to_str(mrb_state *mrb, mrb_value flo, const char *fmt)
+{
+ char buf[25];
+#ifdef MRB_USE_FLOAT32
+ const int prec = 7;
+#else
+ const int prec = 15;
+#endif
+
+ mrb_format_float(mrb_float(flo), buf, sizeof(buf), 'g', prec, '\0');
+ for (char *p = buf; *p; p++) {
+ if (*p == '.') goto exit;
+ if (*p == 'e') {
+ memmove(p+2, p, strlen(p)+1);
+ memcpy(p, ".0", 2);
+ goto exit;
+ }
+ }
+ strcat(buf, ".0");
+ exit:
+ return mrb_str_new_cstr(mrb, buf);
+}
+
/* 15.2.9.3.16(x) */
/*
* call-seq:
@@ -307,49 +326,14 @@ flo_to_s(mrb_state *mrb, mrb_value flt)
if (isinf(f)) {
str = f < 0 ? mrb_str_new_lit(mrb, "-Infinity")
: mrb_str_new_lit(mrb, "Infinity");
- goto exit;
}
else if (isnan(f)) {
str = mrb_str_new_lit(mrb, "NaN");
- goto exit;
}
else {
- char fmt[] = "%." MRB_STRINGIZE(FLO_TO_STR_PREC) "g";
- mrb_int len;
- char *begp, *p, *endp;
-
- str = mrb_float_to_str(mrb, flt, fmt);
-
- insert_dot_zero:
- begp = RSTRING_PTR(str);
- len = RSTRING_LEN(str);
- for (p = begp, endp = p + len; p < endp; ++p) {
- if (*p == '.') {
- goto exit;
- }
- else if (*p == 'e') {
- ptrdiff_t e_pos = p - begp;
- mrb_str_cat(mrb, str, ".0", 2);
- p = RSTRING_PTR(str) + e_pos;
- memmove(p + 2, p, len - e_pos);
- memcpy(p, ".0", 2);
- goto exit;
- }
- }
-
- if (FLO_TO_STR_PREC + (begp[0] == '-') <= len) {
- --fmt[sizeof(fmt) - 3]; /* %.16g(%.8g) -> %.15g(%.7g) */
- str = mrb_float_to_str(mrb, flt, fmt);
- goto insert_dot_zero;
- }
- else {
- mrb_str_cat(mrb, str, ".0", 2);
- }
-
- goto exit;
+ str = mrb_float_to_str(mrb, flt, NULL);
}
- exit:
RSTR_SET_ASCII_FLAG(mrb_str_ptr(str));
return str;
}
@@ -376,7 +360,7 @@ flo_add(mrb_state *mrb, mrb_value x)
return mrb_funcall_id(mrb, y, MRB_OPSYM(add), 1, x);
#endif
default:
- return mrb_float_value(mrb, a + mrb_to_flo(mrb, y));
+ return mrb_float_value(mrb, a + mrb_as_float(mrb, y));
}
}
@@ -404,7 +388,7 @@ flo_sub(mrb_state *mrb, mrb_value x)
return mrb_funcall_id(mrb, x, MRB_OPSYM(minus), 0);
#endif
default:
- return mrb_float_value(mrb, a - mrb_to_flo(mrb, y));
+ return mrb_float_value(mrb, a - mrb_as_float(mrb, y));
}
}
@@ -431,7 +415,7 @@ flo_mul(mrb_state *mrb, mrb_value x)
return mrb_funcall_id(mrb, y, MRB_OPSYM(mul), 1, x);
#endif
default:
- return mrb_float_value(mrb, a * mrb_to_flo(mrb, y));
+ return mrb_float_value(mrb, a * mrb_as_float(mrb, y));
}
}
@@ -490,7 +474,7 @@ flo_mod(mrb_state *mrb, mrb_value x)
mrb_value y = mrb_get_arg1(mrb);
mrb_float mod;
- flodivmod(mrb, mrb_float(x), mrb_to_flo(mrb, y), 0, &mod);
+ flodivmod(mrb, mrb_float(x), mrb_as_float(mrb, y), 0, &mod);
return mrb_float_value(mrb, mod);
}
#endif
@@ -551,7 +535,7 @@ flo_eq(mrb_state *mrb, mrb_value x)
return mrb_bool_value(mrb_float(x) == mrb_float(y));
#ifdef MRB_USE_RATIONAL
case MRB_TT_RATIONAL:
- return mrb_bool_value(mrb_float(x) == mrb_to_flo(mrb, y));
+ return mrb_bool_value(mrb_float(x) == mrb_as_float(mrb, y));
#endif
#ifdef MRB_USE_COMPLEX
case MRB_TT_COMPLEX:
@@ -967,7 +951,7 @@ fixnum_mul(mrb_state *mrb, mrb_value x, mrb_value y)
#ifdef MRB_NO_FLOAT
mrb_raise(mrb, E_TYPE_ERROR, "non integer multiplication");
#else
- return mrb_float_value(mrb, (mrb_float)a * mrb_to_flo(mrb, y));
+ return mrb_float_value(mrb, (mrb_float)a * mrb_as_float(mrb, y));
#endif
}
}
@@ -980,7 +964,7 @@ mrb_num_mul(mrb_state *mrb, mrb_value x, mrb_value y)
}
#ifndef MRB_NO_FLOAT
if (mrb_float_p(x)) {
- return mrb_float_value(mrb, mrb_float(x) * mrb_to_flo(mrb, y));
+ return mrb_float_value(mrb, mrb_float(x) * mrb_as_float(mrb, y));
}
#endif
#if defined(MRB_USE_RATIONAL) || defined(MRB_USE_COMPLEX)
@@ -1065,7 +1049,7 @@ int_mod(mrb_state *mrb, mrb_value x)
else {
mrb_float mod;
- flodivmod(mrb, (mrb_float)a, mrb_to_flo(mrb, y), NULL, &mod);
+ flodivmod(mrb, (mrb_float)a, mrb_as_float(mrb, y), NULL, &mod);
return mrb_float_value(mrb, mod);
}
#endif
@@ -1095,7 +1079,7 @@ int_divmod(mrb_state *mrb, mrb_value x)
mrb_float div, mod;
mrb_value a, b;
- flodivmod(mrb, (mrb_float)mrb_integer(x), mrb_to_flo(mrb, y), &div, &mod);
+ flodivmod(mrb, (mrb_float)mrb_integer(x), mrb_as_float(mrb, y), &div, &mod);
a = mrb_int_value(mrb, (mrb_int)div);
b = mrb_float_value(mrb, mod);
return mrb_assoc_new(mrb, a, b);
@@ -1111,7 +1095,7 @@ flo_divmod(mrb_state *mrb, mrb_value x)
mrb_float div, mod;
mrb_value a, b;
- flodivmod(mrb, mrb_float(x), mrb_to_flo(mrb, y), &div, &mod);
+ flodivmod(mrb, mrb_float(x), mrb_as_float(mrb, y), &div, &mod);
if (!FIXABLE_FLOAT(div))
a = mrb_float_value(mrb, div);
else
@@ -1357,13 +1341,12 @@ int_to_f(mrb_state *mrb, mrb_value num)
*/
/* ------------------------------------------------------------------------*/
MRB_API mrb_value
-mrb_flo_to_fixnum(mrb_state *mrb, mrb_value x)
+mrb_float_to_integer(mrb_state *mrb, mrb_value x)
{
mrb_int z = 0;
if (!mrb_float_p(x)) {
mrb_raise(mrb, E_TYPE_ERROR, "non float value");
- z = 0; /* not reached. just suppress warnings. */
}
else {
mrb_float d = mrb_float(x);
@@ -1406,7 +1389,7 @@ int_plus(mrb_state *mrb, mrb_value x, mrb_value y)
#ifdef MRB_NO_FLOAT
mrb_raise(mrb, E_TYPE_ERROR, "non integer addition");
#else
- return mrb_float_value(mrb, (mrb_float)a + mrb_to_flo(mrb, y));
+ return mrb_float_value(mrb, (mrb_float)a + mrb_as_float(mrb, y));
#endif
}
}
@@ -1419,7 +1402,7 @@ mrb_num_plus(mrb_state *mrb, mrb_value x, mrb_value y)
}
#ifndef MRB_NO_FLOAT
if (mrb_float_p(x)) {
- return mrb_float_value(mrb, mrb_float(x) + mrb_to_flo(mrb, y));
+ return mrb_float_value(mrb, mrb_float(x) + mrb_as_float(mrb, y));
}
#endif
#if defined(MRB_USE_RATIONAL) || defined(MRB_USE_COMPLEX)
@@ -1478,7 +1461,7 @@ int_minus(mrb_state *mrb, mrb_value x, mrb_value y)
#ifdef MRB_NO_FLOAT
mrb_raise(mrb, E_TYPE_ERROR, "non integer subtraction");
#else
- return mrb_float_value(mrb, (mrb_float)a - mrb_to_flo(mrb, y));
+ return mrb_float_value(mrb, (mrb_float)a - mrb_as_float(mrb, y));
#endif
}
}
@@ -1491,7 +1474,7 @@ mrb_num_minus(mrb_state *mrb, mrb_value x, mrb_value y)
}
#ifndef MRB_NO_FLOAT
if (mrb_float_p(x)) {
- return mrb_float_value(mrb, mrb_float(x) - mrb_to_flo(mrb, y));
+ return mrb_float_value(mrb, mrb_float(x) - mrb_as_float(mrb, y));
}
#endif
#if defined(MRB_USE_RATIONAL) || defined(MRB_USE_COMPLEX)
@@ -1525,35 +1508,51 @@ int_sub(mrb_state *mrb, mrb_value self)
return int_minus(mrb, self, other);
}
-
-MRB_API mrb_value
-mrb_fixnum_to_str(mrb_state *mrb, mrb_value x, mrb_int base)
+MRB_API char*
+mrb_int_to_cstr(char *buf, size_t len, mrb_int n, mrb_int base)
{
- char buf[MRB_INT_BIT+1];
- char *b = buf + sizeof buf;
- mrb_int val = mrb_integer(x);
- mrb_value str;
+ char *bufend = buf + len;
+ char *b = bufend-1;
- if (base < 2 || 36 < base) {
- mrb_raisef(mrb, E_ARGUMENT_ERROR, "invalid radix %i", base);
- }
+ if (base < 2 || 36 < base) return NULL;
+ if (len < 2) return NULL;
- if (val == 0) {
- *--b = '0';
+ if (n == 0) {
+ buf[0] = '0';
+ buf[1] = '\0';
+ return buf;
}
- else if (val < 0) {
+
+ *b = '\0';
+ if (n < 0) {
do {
- *--b = mrb_digitmap[-(val % base)];
- } while (val /= base);
- *--b = '-';
+ if (b-- == buf) return NULL;
+ *b = mrb_digitmap[-(n % base)];
+ } while (n /= base);
+ if (b-- == buf) return NULL;
+ *b = '-';
}
else {
do {
- *--b = mrb_digitmap[(int)(val % base)];
- } while (val /= base);
+ if (b-- == buf) return NULL;
+ *b = mrb_digitmap[(int)(n % base)];
+ } while (n /= base);
}
+ return b;
+}
+
+MRB_API mrb_value
+mrb_integer_to_str(mrb_state *mrb, mrb_value x, mrb_int base)
+{
+ char buf[MRB_INT_BIT+1];
+ mrb_int val = mrb_integer(x);
- str = mrb_str_new(mrb, b, buf + sizeof(buf) - b);
+ if (base < 2 || 36 < base) {
+ mrb_raisef(mrb, E_ARGUMENT_ERROR, "invalid radix %i", base);
+ }
+ const char *p = mrb_int_to_cstr(buf, sizeof(buf), val, base);
+ mrb_assert(p != NULL);
+ mrb_value str = mrb_str_new_cstr(mrb, p);
RSTR_SET_ASCII_FLAG(mrb_str_ptr(str));
return str;
}
@@ -1580,7 +1579,7 @@ int_to_s(mrb_state *mrb, mrb_value self)
mrb_int base = 10;
mrb_get_args(mrb, "|i", &base);
- return mrb_fixnum_to_str(mrb, self, base);
+ return mrb_integer_to_str(mrb, self, base);
}
/* compare two numbers: (1:0:-1; -2 for error) */
@@ -1596,7 +1595,7 @@ cmpnum(mrb_state *mrb, mrb_value v1, mrb_value v2)
#ifdef MRB_NO_FLOAT
x = mrb_integer(v1);
#else
- x = mrb_to_flo(mrb, v1);
+ x = mrb_as_float(mrb, v1);
#endif
switch (mrb_type(v2)) {
case MRB_TT_INTEGER:
@@ -1612,7 +1611,7 @@ cmpnum(mrb_state *mrb, mrb_value v1, mrb_value v2)
break;
#ifdef MRB_USE_RATIONAL
case MRB_TT_RATIONAL:
- y = mrb_to_flo(mrb, v2);
+ y = mrb_as_float(mrb, v2);
break;
#endif
#endif
diff --git a/src/object.c b/src/object.c
index a44eab4bb..7e2748018 100644
--- a/src/object.c
+++ b/src/object.c
@@ -409,7 +409,7 @@ mrb_check_type(mrb_state *mrb, mrb_value x, enum mrb_vtype t)
ename = "nil";
}
else if (mrb_integer_p(x)) {
- ename = "Fixnum";
+ ename = "Integer";
}
else if (mrb_symbol_p(x)) {
ename = "Symbol";
@@ -513,7 +513,7 @@ mrb_to_int(mrb_state *mrb, mrb_value val)
if (!mrb_integer_p(val)) {
#ifndef MRB_NO_FLOAT
if (mrb_float_p(val)) {
- return mrb_flo_to_fixnum(mrb, val);
+ return mrb_float_to_integer(mrb, val);
}
#endif
if (mrb_string_p(val)) {
@@ -537,7 +537,7 @@ mrb_convert_to_integer(mrb_state *mrb, mrb_value val, mrb_int base)
#ifndef MRB_NO_FLOAT
case MRB_TT_FLOAT:
if (base != 0) goto arg_error;
- return mrb_flo_to_fixnum(mrb, val);
+ return mrb_float_to_integer(mrb, val);
#endif
case MRB_TT_INTEGER:
@@ -564,15 +564,9 @@ arg_error:
return mrb_to_int(mrb, val);
}
-MRB_API mrb_value
-mrb_Integer(mrb_state *mrb, mrb_value val)
-{
- return mrb_convert_to_integer(mrb, val, 0);
-}
-
#ifndef MRB_NO_FLOAT
MRB_API mrb_value
-mrb_Float(mrb_state *mrb, mrb_value val)
+mrb_to_float(mrb_state *mrb, mrb_value val)
{
if (mrb_nil_p(val)) {
mrb_raise(mrb, E_TYPE_ERROR, "can't convert nil into Float");
diff --git a/src/range.c b/src/range.c
index cb60bb63c..be611b2a3 100644
--- a/src/range.c
+++ b/src/range.c
@@ -11,9 +11,9 @@
#include <mruby/array.h>
#include <mruby/presym.h>
-#define RANGE_INITIALIZED_MASK 1
-#define RANGE_INITIALIZED(p) ((p)->flags |= RANGE_INITIALIZED_MASK)
-#define RANGE_INITIALIZED_P(p) ((p)->flags & RANGE_INITIALIZED_MASK)
+#define RANGE_INITIALIZED_FLAG 1
+#define RANGE_INITIALIZED(p) ((p)->flags |= RANGE_INITIALIZED_FLAG)
+#define RANGE_INITIALIZED_P(p) ((p)->flags & RANGE_INITIALIZED_FLAG)
static void
r_check(mrb_state *mrb, mrb_value a, mrb_value b)
@@ -25,13 +25,13 @@ r_check(mrb_state *mrb, mrb_value a, mrb_value b)
ta = mrb_type(a);
tb = mrb_type(b);
#ifdef MRB_NO_FLOAT
- if (ta == MRB_TT_INTEGER && tb == MRB_TT_INTEGER ) {
+ if (ta == MRB_TT_INTEGER && tb == MRB_TT_INTEGER ) return;
#else
if ((ta == MRB_TT_INTEGER || ta == MRB_TT_FLOAT) &&
(tb == MRB_TT_INTEGER || tb == MRB_TT_FLOAT)) {
-#endif
return;
}
+#endif
if (mrb_nil_p(a) || mrb_nil_p(b)) return;
@@ -342,6 +342,55 @@ range_initialize_copy(mrb_state *mrb, mrb_value copy)
return copy;
}
+static mrb_value
+range_num_to_a(mrb_state *mrb, mrb_value range)
+{
+ struct RRange *r = mrb_range_ptr(mrb, range);
+ mrb_value beg = RANGE_BEG(r);
+ mrb_value end = RANGE_END(r);
+ mrb_value ary;
+
+ if (mrb_nil_p(end)) {
+ mrb_raise(mrb, E_RANGE_ERROR, "cannot convert endless range to an array");
+ }
+ if (mrb_integer_p(beg)) {
+ if (mrb_integer_p(end)) {
+ mrb_int a = mrb_integer(beg);
+ mrb_int b = mrb_integer(end);
+ mrb_int len = b - a;
+
+ if (!RANGE_EXCL(r)) len++;
+ ary = mrb_ary_new_capa(mrb, len);
+ for (mrb_int i=0; i<len; i++) {
+ mrb_ary_push(mrb, ary, mrb_int_value(mrb, a+i));
+ }
+ return ary;
+ }
+#ifndef MRB_NO_FLOAT
+ if (mrb_float_p(end)) {
+ mrb_float a = (mrb_float)mrb_integer(beg);
+ mrb_float b = mrb_float(end);
+
+ ary = mrb_ary_new_capa(mrb, (mrb_int)(b - a) + 1);
+ if (RANGE_EXCL(r)) {
+ while (a < b) {
+ mrb_ary_push(mrb, ary, mrb_int_value(mrb, a));
+ a += 1.0;
+ }
+ }
+ else {
+ while (a <= b) {
+ mrb_ary_push(mrb, ary, mrb_int_value(mrb, a));
+ a += 1.0;
+ }
+ }
+ return ary;
+ }
+#endif
+ }
+ return mrb_nil_value();
+}
+
mrb_value
mrb_get_values_at(mrb_state *mrb, mrb_value obj, mrb_int olen, mrb_int argc, const mrb_value *argv, mrb_value (*func)(mrb_state*, mrb_value, mrb_int))
{
@@ -409,8 +458,8 @@ mrb_range_beg_len(mrb_state *mrb, mrb_value range, mrb_int *begp, mrb_int *lenp,
if (!mrb_range_p(range)) return MRB_RANGE_TYPE_MISMATCH;
r = mrb_range_ptr(mrb, range);
- beg = mrb_nil_p(RANGE_BEG(r)) ? 0 : mrb_int(mrb, RANGE_BEG(r));
- end = mrb_nil_p(RANGE_END(r)) ? -1 : mrb_int(mrb, RANGE_END(r));
+ beg = mrb_nil_p(RANGE_BEG(r)) ? 0 : mrb_as_int(mrb, RANGE_BEG(r));
+ end = mrb_nil_p(RANGE_END(r)) ? -1 : mrb_as_int(mrb, RANGE_END(r));
excl = mrb_nil_p(RANGE_END(r)) ? 0 : RANGE_EXCL(r);
if (beg < 0) {
@@ -456,4 +505,5 @@ mrb_init_range(mrb_state *mrb)
mrb_define_method(mrb, r, "inspect", range_inspect, MRB_ARGS_NONE()); /* 15.2.14.4.13(x) */
mrb_define_method(mrb, r, "eql?", range_eql, MRB_ARGS_REQ(1)); /* 15.2.14.4.14(x) */
mrb_define_method(mrb, r, "initialize_copy", range_initialize_copy, MRB_ARGS_REQ(1)); /* 15.2.14.4.15(x) */
+ mrb_define_method(mrb, r, "__num_to_a", range_num_to_a, MRB_ARGS_NONE());
}
diff --git a/src/readflt.c b/src/readflt.c
new file mode 100644
index 000000000..19a8e8dc6
--- /dev/null
+++ b/src/readflt.c
@@ -0,0 +1,120 @@
+#include <mruby.h>
+
+#ifndef MRB_NO_FLOAT
+/*
+ * strtod implementation.
+ * author: Yasuhiro Matsumoto (@mattn)
+ * license: public domain
+ */
+
+/*
+The original code can be found in https://github.com/mattn/strtod
+
+I modified the routine for mruby:
+
+ * renamed the function `vim_strtod` -> `mrb_float_read`
+ * simplified the code
+
+My modifications in this file are also placed in the public domain.
+
+Matz (Yukihiro Matsumoto)
+*/
+
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <errno.h>
+
+MRB_API double
+mrb_float_read(const char *str, char **end)
+{
+ double d = 0.0;
+ int sign;
+ int n = 0;
+ const char *p, *a;
+
+ a = p = str;
+ while (ISSPACE(*p))
+ ++p;
+
+ /* decimal part */
+ sign = 1;
+ if (*p == '-') {
+ sign = -1;
+ ++p;
+ } else if (*p == '+')
+ ++p;
+ if (ISDIGIT(*p)) {
+ d = (double)(*p++ - '0');
+ while (*p && ISDIGIT(*p)) {
+ d = d * 10.0 + (double)(*p - '0');
+ ++p;
+ ++n;
+ }
+ a = p;
+ } else if (*p != '.')
+ goto done;
+ d *= sign;
+
+ /* fraction part */
+ if (*p == '.') {
+ double f = 0.0;
+ double base = 0.1;
+ ++p;
+
+ if (ISDIGIT(*p))
+ {
+ while (*p && ISDIGIT(*p)) {
+ f += base * (*p - '0') ;
+ base /= 10.0;
+ ++p;
+ ++n;
+ }
+ }
+ d += f * sign;
+ a = p;
+ }
+
+ /* exponential part */
+ if ((*p == 'E') || (*p == 'e')) {
+ int e = 0;
+ ++p;
+
+ sign = 1;
+ if (*p == '-') {
+ sign = -1;
+ ++p;
+ } else if (*p == '+')
+ ++p;
+
+ if (ISDIGIT(*p)) {
+ while (*p == '0')
+ ++p;
+ if (*p == '\0') --p;
+ e = (int)(*p++ - '0');
+ for (; *p && ISDIGIT(*p); p++) {
+ if (e < 10000)
+ e = e * 10 + (*p - '0');
+ }
+ e *= sign;
+ }
+ else if (!ISDIGIT(*(a-1))) {
+ a = str;
+ goto done;
+ }
+ else if (*p == 0)
+ goto done;
+ d *= pow(10.0, (double) e);
+ a = p;
+ }
+ else if (p > str && !ISDIGIT(*(p-1))) {
+ a = str;
+ goto done;
+ }
+
+done:
+ if (end)
+ *end = (char*)a;
+ return d;
+}
+#endif
diff --git a/src/readint.c b/src/readint.c
new file mode 100644
index 000000000..5fae222c2
--- /dev/null
+++ b/src/readint.c
@@ -0,0 +1,30 @@
+#include <mruby.h>
+#include <mruby/numeric.h>
+#include <errno.h>
+
+/* mrb_int_read(): read mrb_int from a string (base 10 only) */
+/* const char *p - string to read */
+/* const char *e - end of string */
+/* char **endp - end of parsed integer */
+
+/* if integer overflows, errno will be set to ERANGE */
+/* also endp will be set to NULL on overflow */
+MRB_API mrb_int
+mrb_int_read(const char *p, const char *e, char **endp)
+{
+ mrb_int n = 0;
+ int ch;
+
+ while ((e == NULL || p < e) && ISDIGIT(*p)) {
+ ch = *p - '0';
+ if (mrb_int_mul_overflow(n, 10, &n) ||
+ mrb_int_add_overflow(n, ch, &n)) {
+ if (endp) *endp = NULL;
+ errno = ERANGE;
+ return MRB_INT_MAX;
+ }
+ p++;
+ }
+ if (endp) *endp = (char*)p;
+ return n;
+}
diff --git a/src/string.c b/src/string.c
index d442ff17d..9af361f18 100644
--- a/src/string.c
+++ b/src/string.c
@@ -1102,8 +1102,8 @@ static enum str_convert_range
str_convert_range(mrb_state *mrb, mrb_value str, mrb_value indx, mrb_value alen, mrb_int *beg, mrb_int *len)
{
if (!mrb_undef_p(alen)) {
- *beg = mrb_int(mrb, indx);
- *len = mrb_int(mrb, alen);
+ *beg = mrb_as_int(mrb, indx);
+ *len = mrb_as_int(mrb, alen);
return STR_CHAR_RANGE;
}
else {
@@ -1901,7 +1901,7 @@ mrb_obj_as_string(mrb_state *mrb, mrb_value obj)
case MRB_TT_SYMBOL:
return mrb_sym_str(mrb, mrb_symbol(obj));
case MRB_TT_INTEGER:
- return mrb_fixnum_to_str(mrb, obj, 10);
+ return mrb_integer_to_str(mrb, obj, 10);
case MRB_TT_SCLASS:
case MRB_TT_CLASS:
case MRB_TT_MODULE:
@@ -2199,7 +2199,7 @@ mrb_str_split_m(mrb_state *mrb, mrb_value str)
return result;
}
-mrb_value
+static mrb_value
mrb_str_len_to_inum(mrb_state *mrb, const char *str, size_t len, mrb_int base, int badcheck)
{
const char *p = str;
@@ -2363,12 +2363,6 @@ mrb_str_len_to_inum(mrb_state *mrb, const char *str, size_t len, mrb_int base, i
return mrb_fixnum_value(0);
}
-MRB_API mrb_value
-mrb_cstr_to_inum(mrb_state *mrb, const char *str, mrb_int base, mrb_bool badcheck)
-{
- return mrb_str_len_to_inum(mrb, str, strlen(str), base, badcheck);
-}
-
/* obslete: use RSTRING_CSTR() or mrb_string_cstr() */
MRB_API const char*
mrb_string_value_cstr(mrb_state *mrb, mrb_value *ptr)
@@ -2439,14 +2433,14 @@ mrb_str_to_i(mrb_state *mrb, mrb_value self)
mrb_int base = 10;
mrb_get_args(mrb, "|i", &base);
- if (base < 0) {
+ if (base < 0 || 36 < base) {
mrb_raisef(mrb, E_ARGUMENT_ERROR, "illegal radix %i", base);
}
return mrb_str_to_inum(mrb, self, base, FALSE);
}
#ifndef MRB_NO_FLOAT
-double
+static double
mrb_str_len_to_dbl(mrb_state *mrb, const char *s, size_t len, mrb_bool badcheck)
{
char buf[DBL_DIG * 4 + 20];
@@ -2536,12 +2530,6 @@ bad:
}
MRB_API double
-mrb_cstr_to_dbl(mrb_state *mrb, const char *s, mrb_bool badcheck)
-{
- return mrb_str_len_to_dbl(mrb, s, strlen(s), badcheck);
-}
-
-MRB_API double
mrb_str_to_dbl(mrb_state *mrb, mrb_value str, mrb_bool badcheck)
{
return mrb_str_len_to_dbl(mrb, RSTRING_PTR(str), RSTRING_LEN(str), badcheck);
@@ -2922,250 +2910,3 @@ mrb_init_string(mrb_state *mrb)
mrb_define_method(mrb, s, "setbyte", mrb_str_setbyte, MRB_ARGS_REQ(2));
mrb_define_method(mrb, s, "byteslice", mrb_str_byteslice, MRB_ARGS_ARG(1,1));
}
-
-#ifndef MRB_NO_FLOAT
-/*
- * Source code for the "strtod" library procedure.
- *
- * Copyright (c) 1988-1993 The Regents of the University of California.
- * Copyright (c) 1994 Sun Microsystems, Inc.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The University of California
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- *
- * RCS: @(#) $Id: strtod.c 11708 2007-02-12 23:01:19Z shyouhei $
- */
-
-#include <ctype.h>
-#include <errno.h>
-
-static const int maxExponent = 511; /* Largest possible base 10 exponent. Any
- * exponent larger than this will already
- * produce underflow or overflow, so there's
- * no need to worry about additional digits.
- */
-static const double powersOf10[] = {/* Table giving binary powers of 10. Entry */
- 10., /* is 10^2^i. Used to convert decimal */
- 100., /* exponents into floating-point numbers. */
- 1.0e4,
- 1.0e8,
- 1.0e16,
- 1.0e32,
- 1.0e64,
- 1.0e128,
- 1.0e256
-};
-
-MRB_API double
-mrb_float_read(const char *string, char **endPtr)
-/* const char *string; A decimal ASCII floating-point number,
- * optionally preceded by white space.
- * Must have form "-I.FE-X", where I is the
- * integer part of the mantissa, F is the
- * fractional part of the mantissa, and X
- * is the exponent. Either of the signs
- * may be "+", "-", or omitted. Either I
- * or F may be omitted, or both. The decimal
- * point isn't necessary unless F is present.
- * The "E" may actually be an "e". E and X
- * may both be omitted (but not just one).
- */
-/* char **endPtr; If non-NULL, store terminating character's
- * address here. */
-{
- int sign, expSign = FALSE;
- double fraction, dblExp;
- const double *d;
- const char *p;
- int c;
- int exp = 0; /* Exponent read from "EX" field. */
- int fracExp = 0; /* Exponent that derives from the fractional
- * part. Under normal circumstances, it is
- * the negative of the number of digits in F.
- * However, if I is very long, the last digits
- * of I get dropped (otherwise a long I with a
- * large negative exponent could cause an
- * unnecessary overflow on I alone). In this
- * case, fracExp is incremented one for each
- * dropped digit. */
- int mantSize; /* Number of digits in mantissa. */
- int decPt; /* Number of mantissa digits BEFORE decimal
- * point. */
- const char *pExp; /* Temporarily holds location of exponent
- * in string. */
-
- /*
- * Strip off leading blanks and check for a sign.
- */
-
- p = string;
- while (ISSPACE(*p)) {
- p += 1;
- }
- if (*p == '-') {
- sign = TRUE;
- p += 1;
- }
- else {
- if (*p == '+') {
- p += 1;
- }
- sign = FALSE;
- }
-
- /*
- * Count the number of digits in the mantissa (including the decimal
- * point), and also locate the decimal point.
- */
-
- decPt = -1;
- for (mantSize = 0; ; mantSize += 1)
- {
- c = *p;
- if (!ISDIGIT(c)) {
- if ((c != '.') || (decPt >= 0)) {
- break;
- }
- decPt = mantSize;
- }
- p += 1;
- }
-
- /*
- * Now suck up the digits in the mantissa. Use two integers to
- * collect 9 digits each (this is faster than using floating-point).
- * If the mantissa has more than 18 digits, ignore the extras, since
- * they can't affect the value anyway.
- */
-
- pExp = p;
- p -= mantSize;
- if (decPt < 0) {
- decPt = mantSize;
- }
- else {
- mantSize -= 1; /* One of the digits was the point. */
- }
- if (mantSize > 18) {
- if (decPt - 18 > 29999) {
- fracExp = 29999;
- }
- else {
- fracExp = decPt - 18;
- }
- mantSize = 18;
- }
- else {
- fracExp = decPt - mantSize;
- }
- if (mantSize == 0) {
- fraction = 0.0;
- p = string;
- goto done;
- }
- else {
- int frac1, frac2;
- frac1 = 0;
- for ( ; mantSize > 9; mantSize -= 1)
- {
- c = *p;
- p += 1;
- if (c == '.') {
- c = *p;
- p += 1;
- }
- frac1 = 10*frac1 + (c - '0');
- }
- frac2 = 0;
- for (; mantSize > 0; mantSize -= 1)
- {
- c = *p;
- p += 1;
- if (c == '.') {
- c = *p;
- p += 1;
- }
- frac2 = 10*frac2 + (c - '0');
- }
- fraction = (1.0e9 * frac1) + frac2;
- }
-
- /*
- * Skim off the exponent.
- */
-
- p = pExp;
- if ((*p == 'E') || (*p == 'e')) {
- p += 1;
- if (*p == '-') {
- expSign = TRUE;
- p += 1;
- }
- else {
- if (*p == '+') {
- p += 1;
- }
- expSign = FALSE;
- }
- while (ISDIGIT(*p)) {
- exp = exp * 10 + (*p - '0');
- if (exp > 19999) {
- exp = 19999;
- }
- p += 1;
- }
- }
- if (expSign) {
- exp = fracExp - exp;
- }
- else {
- exp = fracExp + exp;
- }
-
- /*
- * Generate a floating-point number that represents the exponent.
- * Do this by processing the exponent one bit at a time to combine
- * many powers of 2 of 10. Then combine the exponent with the
- * fraction.
- */
-
- if (exp < 0) {
- expSign = TRUE;
- exp = -exp;
- }
- else {
- expSign = FALSE;
- }
- if (exp > maxExponent) {
- exp = maxExponent;
- errno = ERANGE;
- }
- dblExp = 1.0;
- for (d = powersOf10; exp != 0; exp >>= 1, d += 1) {
- if (exp & 01) {
- dblExp *= *d;
- }
- }
- if (expSign) {
- fraction /= dblExp;
- }
- else {
- fraction *= dblExp;
- }
-
-done:
- if (endPtr != NULL) {
- *endPtr = (char *) p;
- }
-
- if (sign) {
- return -fraction;
- }
- return fraction;
-}
-#endif
diff --git a/src/symbol.c b/src/symbol.c
index 71cd65a63..007b8c885 100644
--- a/src/symbol.c
+++ b/src/symbol.c
@@ -401,6 +401,30 @@ sym_to_s(mrb_state *mrb, mrb_value sym)
return mrb_sym_str(mrb, mrb_symbol(sym));
}
+/*
+ * call-seq:
+ * sym.name -> string
+ *
+ * Returns the name or string corresponding to <i>sym</i>. Unlike #to_s, the
+ * returned string is frozen.
+ *
+ * :fred.name #=> "fred"
+ * :fred.name.frozen? #=> true
+ */
+static mrb_value
+sym_name(mrb_state *mrb, mrb_value vsym)
+{
+ mrb_sym sym = mrb_symbol(vsym);
+ mrb_int len;
+ const char *name = mrb_sym_name_len(mrb, sym, &len);
+
+ mrb_assert(name != NULL);
+ if (SYMBOL_INLINE_P(sym)) {
+ return mrb_str_new_frozen(mrb, name, len);
+ }
+ return mrb_str_new_static_frozen(mrb, name, len);
+}
+
/* 15.2.11.3.4 */
/*
* call-seq:
@@ -587,7 +611,7 @@ mrb_sym_str(mrb_state *mrb, mrb_sym sym)
}
static const char*
-sym_name(mrb_state *mrb, mrb_sym sym, mrb_bool dump)
+sym_cstr(mrb_state *mrb, mrb_sym sym, mrb_bool dump)
{
mrb_int len;
const char *name = mrb_sym_name_len(mrb, sym, &len);
@@ -606,13 +630,13 @@ sym_name(mrb_state *mrb, mrb_sym sym, mrb_bool dump)
MRB_API const char*
mrb_sym_name(mrb_state *mrb, mrb_sym sym)
{
- return sym_name(mrb, sym, FALSE);
+ return sym_cstr(mrb, sym, FALSE);
}
MRB_API const char*
mrb_sym_dump(mrb_state *mrb, mrb_sym sym)
{
- return sym_name(mrb, sym, TRUE);
+ return sym_cstr(mrb, sym, TRUE);
}
#define lesser(a,b) (((a)>(b))?(b):(a))
@@ -657,6 +681,7 @@ mrb_init_symbol(mrb_state *mrb)
mrb_undef_class_method(mrb, sym, "new");
mrb_define_method(mrb, sym, "to_s", sym_to_s, MRB_ARGS_NONE()); /* 15.2.11.3.3 */
+ mrb_define_method(mrb, sym, "name", sym_name, MRB_ARGS_NONE());
mrb_define_method(mrb, sym, "to_sym", sym_to_sym, MRB_ARGS_NONE()); /* 15.2.11.3.4 */
mrb_define_method(mrb, sym, "inspect", sym_inspect, MRB_ARGS_NONE()); /* 15.2.11.3.5(x) */
mrb_define_method(mrb, sym, "<=>", sym_cmp, MRB_ARGS_REQ(1));
diff --git a/src/vm.c b/src/vm.c
index 346a14ba3..d902716ca 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -1136,6 +1136,13 @@ check_target_class(mrb_state *mrb)
return TRUE;
}
+mrb_value
+get_send_args(mrb_state *mrb, mrb_int argc, mrb_value *regs)
+{
+ if (argc < 0) return regs[0];
+ return mrb_ary_new_from_values(mrb, argc, regs);
+}
+
mrb_value mrb_obj_missing(mrb_state *mrb, mrb_value mod);
void mrb_hash_check_kdict(mrb_state *mrb, mrb_value self);
@@ -1552,11 +1559,18 @@ RETRY_TRY_BLOCK:
m = mrb_method_search_vm(mrb, &cls, mid);
if (MRB_METHOD_UNDEF_P(m)) {
mrb_sym missing = MRB_SYM(method_missing);
- m = mrb_method_search_vm(mrb, &cls, missing);
- if (MRB_METHOD_UNDEF_P(m) || (missing == mrb->c->ci->mid && mrb_obj_eq(mrb, regs[0], recv))) {
- mrb_value args = (argc < 0) ? regs[a+1] : mrb_ary_new_from_values(mrb, c, regs+a+1);
+ mrb_value args;
+
+ if (mrb_func_basic_p(mrb, recv, missing, mrb_obj_missing)) {
+ method_missing:
+ args = get_send_args(mrb, argc, regs+a+1);
mrb_method_missing(mrb, mid, recv, args);
}
+ if (mid != missing) {
+ cls = mrb_class(mrb, recv);
+ }
+ m = mrb_method_search_vm(mrb, &cls, missing);
+ if (MRB_METHOD_UNDEF_P(m)) goto method_missing; /* just in case */
if (argc >= 0) {
if (a+2 >= irep->nregs) {
mrb_stack_extend(mrb, a+3);
@@ -1614,7 +1628,6 @@ RETRY_TRY_BLOCK:
/* pop stackpos */
ci = cipop(mrb);
pc = ci->pc;
- JUMP;
}
else {
/* setup environment for calling method */
@@ -1624,9 +1637,9 @@ RETRY_TRY_BLOCK:
syms = irep->syms;
mrb_stack_extend(mrb, (argc < 0 && irep->nregs < 3) ? 3 : irep->nregs);
pc = irep->iseq;
- JUMP;
}
}
+ JUMP;
CASE(OP_CALL, Z) {
mrb_callinfo *ci;
@@ -1712,13 +1725,12 @@ RETRY_TRY_BLOCK:
else if (target_class->tt == MRB_TT_MODULE) {
target_class = mrb_vm_ci_target_class(ci);
if (target_class->tt != MRB_TT_ICLASS) {
- mrb_value exc = mrb_exc_new_lit(mrb, E_RUNTIME_ERROR, "superclass info lost [mruby limitations]");
- mrb_exc_set(mrb, exc);
- goto L_RAISE;
+ goto super_typeerror;
}
}
recv = regs[0];
if (!mrb_obj_is_kind_of(mrb, recv, target_class)) {
+ super_typeerror: ;
mrb_value exc = mrb_exc_new_lit(mrb, E_TYPE_ERROR,
"self has wrong type to call super in this context");
mrb_exc_set(mrb, exc);
@@ -1736,20 +1748,18 @@ RETRY_TRY_BLOCK:
m = mrb_method_search_vm(mrb, &cls, mid);
if (MRB_METHOD_UNDEF_P(m)) {
mrb_sym missing = MRB_SYM(method_missing);
+ mrb_value args;
if (mrb_func_basic_p(mrb, recv, missing, mrb_obj_missing)) {
- mrb_value args = (argc < 0) ? regs[a+1] : mrb_ary_new_from_values(mrb, b, regs+a+1);
+ super_missing:
+ args = get_send_args(mrb, argc, regs+a+1);
mrb_no_method_error(mrb, mid, args, "no superclass method '%n'", mid);
}
if (mid != missing) {
cls = mrb_class(mrb, recv);
}
m = mrb_method_search_vm(mrb, &cls, missing);
- if (MRB_METHOD_UNDEF_P(m)) { /* just in case */
- mrb_value args = (argc < 0) ? regs[a+1] : mrb_ary_new_from_values(mrb, b, regs+a+1);
- mrb_method_missing(mrb, missing, recv, args);
- }
- mid = missing;
+ if (MRB_METHOD_UNDEF_P(m)) goto super_missing; /* just in case */
if (argc >= 0) {
if (a+2 >= irep->nregs) {
mrb_stack_extend(mrb, a+3);
@@ -1758,7 +1768,8 @@ RETRY_TRY_BLOCK:
regs[a+2] = blk;
argc = -1;
}
- mrb_ary_unshift(mrb, regs[a+1], mrb_symbol_value(ci->mid));
+ mrb_ary_unshift(mrb, regs[a+1], mrb_symbol_value(mid));
+ mid = missing;
}
/* push callinfo */
@@ -2150,7 +2161,7 @@ RETRY_TRY_BLOCK:
}
/* check jump destination */
while (cibase <= ci && ci->proc != dst) {
- if (ci->acc < 0) { /* jump cross C boudary */
+ if (ci->acc < 0) { /* jump cross C boundary */
localjump_error(mrb, LOCALJUMP_ERROR_RETURN);
goto L_RAISE;
}
@@ -2440,9 +2451,7 @@ RETRY_TRY_BLOCK:
CASE(OP_DIV, B) {
#ifndef MRB_NO_FLOAT
mrb_float x, y, f;
- mrb_float mrb_div_flo(mrb_float x, mrb_float y);
#endif
- mrb_int mrb_div_int(mrb_state *mrb, mrb_int x, mrb_int y);
/* need to check if op is overridden */
switch (TYPES2(mrb_type(regs[a]),mrb_type(regs[a+1]))) {
@@ -2475,7 +2484,7 @@ RETRY_TRY_BLOCK:
}
#ifndef MRB_NO_FLOAT
- f = mrb_div_flo(x, y);
+ f = mrb_div_float(x, y);
SET_FLOAT_VALUE(mrb, regs[a], f);
#endif
NEXT;
diff --git a/test/t/bs_block.rb b/test/t/bs_block.rb
index 995e52559..f4e4da375 100644
--- a/test/t/bs_block.rb
+++ b/test/t/bs_block.rb
@@ -520,3 +520,15 @@ assert('BS Block 38') do
assert_equal [1,2,3,4,5], iter{|a,b,c=:c,d,e| [a,b,c,d,e]}
end
+
+assert('BS Block 39') do
+ def iter
+ yield 1
+ end
+
+ assert_equal([1, 2, nil]) do
+ iter{|a, b=2, c|
+ [a, b, c]
+ }
+ end
+end
diff --git a/test/t/class.rb b/test/t/class.rb
index e2839111c..1b4b84890 100644
--- a/test/t/class.rb
+++ b/test/t/class.rb
@@ -375,6 +375,20 @@ assert('clone Class') do
assert_true(Foo.clone.new.func)
end
+assert('class definition in singleton class') do
+ class AClassS
+ class << self
+ class BClass
+ end
+
+ def iclass
+ BClass
+ end
+ end
+ end
+ assert_equal(Class, AClassS.iclass.class)
+end
+
assert('class variable and class << self style class method') do
class ClassVariableTest
@@class_variable = "value"
diff --git a/test/t/syntax.rb b/test/t/syntax.rb
index b3ee2d438..c5c677b3f 100644
--- a/test/t/syntax.rb
+++ b/test/t/syntax.rb
@@ -706,3 +706,29 @@ assert('argument forwarding') do
o.a(1,2,3){}
o.b(1,2,3){}
end
+
+assert('endless def') do
+ c = Class.new {
+ def m1 = 42
+ def m2() = 42
+ def m3(x) = x+1
+ def self.s1 = 42
+ def self.s2() = 42
+ def self.s3(x) = x + 1
+ def cm1 = m3 42
+ def cm2() = m3 42
+ def cm3(x) = m3 x+1
+ def self.cs1 = s3 42
+ def self.cs2() = s3 42
+ def self.cs3(x) = s3 x + 1
+ }
+ o = c.new
+ assert_equal(42, o.m1)
+ assert_equal(43, o.m3(o.m2))
+ assert_equal(42, c.s1)
+ assert_equal(43, c.s3(c.s2))
+ assert_equal(43, o.cm1)
+ assert_equal(45, o.cm3(o.cm2))
+ assert_equal(43, c.cs1)
+ assert_equal(45, c.cs3(c.cs2))
+end
diff --git a/test/t/unicode.rb b/test/t/unicode.rb
index 8622ae08a..c8602da5a 100644
--- a/test/t/unicode.rb
+++ b/test/t/unicode.rb
@@ -1,15 +1,15 @@
# Test of the \u notation
assert('bare \u notation test') do
- # Mininum and maximum one byte characters
+ # Minimum and maximum one byte characters
assert_equal("\x00", "\u0000")
assert_equal("\x7F", "\u007F")
- # Mininum and maximum two byte characters
+ # Minimum and maximum two byte characters
assert_equal("\xC2\x80", "\u0080")
assert_equal("\xDF\xBF", "\u07FF")
- # Mininum and maximum three byte characters
+ # Minimum and maximum three byte characters
assert_equal("\xE0\xA0\x80", "\u0800")
assert_equal("\xEF\xBF\xBF", "\uFFFF")
@@ -17,19 +17,19 @@ assert('bare \u notation test') do
end
assert('braced \u notation test') do
- # Mininum and maximum one byte characters
+ # Minimum and maximum one byte characters
assert_equal("\x00", "\u{0000}")
assert_equal("\x7F", "\u{007F}")
- # Mininum and maximum two byte characters
+ # Minimum and maximum two byte characters
assert_equal("\xC2\x80", "\u{0080}")
assert_equal("\xDF\xBF", "\u{07FF}")
- # Mininum and maximum three byte characters
+ # Minimum and maximum three byte characters
assert_equal("\xE0\xA0\x80", "\u{0800}")
assert_equal("\xEF\xBF\xBF", "\u{FFFF}")
- # Mininum and maximum four byte characters
+ # Minimum and maximum four byte characters
assert_equal("\xF0\x90\x80\x80", "\u{10000}")
assert_equal("\xF4\x8F\xBF\xBF", "\u{10FFFF}")
end