run_command "$@" ../src/nit.nit -o "nit.$title.bin"
bench_command "nit-queens" "nit queens.nit 8" "./nit.$title.bin" ../lib/ai/examples/queens.nit -q 8
bench_command "nit-nitcc" "nit nitcc.nit calc.sablecc" "./nit.$title.bin" ../contrib/nitcc/src/nitcc.nit ../contrib/nitcc/examples/calc.sablecc
+ rm calc* 2> /dev/null # remove generated cruft
run_command "$@" ../src/nitdoc.nit -o "nitdoc.$title.bin"
rm -r out 2> /dev/null
mkdir out 2> /dev/null
--- /dev/null
+benches/gen_benches
+benches/out/
+
+engines/nitmd/nitmd
+engines/nitmd/nitmd-o
+
+engines/markdown4j/Markdown4j.class
+engines/markdown4j/markdown4j-2.2.jar
+
+engines/pandoc/pandoc
+engines/pandoc/pandoc.hi
+engines/pandoc/pandoc.o
+
+engines/txtmark/Txtmark.class
+engines/txtmark/txtmark-0.11.jar
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+all:
+ ./bench_markdown.sh all
+
+clean:
+ $(MAKE) clean -C benches
+ $(MAKE) clean -C engines
+ rm -rf out/
* nitmd
* txtmark 0.11 (https://github.com/rjeschke/txtmark)
* markdown4j 2.2 (https://code.google.com/p/markdown4j/)
+* pandoc (last version installed from `cabal`)
## Benches
bncdir="./benches/out"
mkdir -p $outdir
-s=50
+s=200
function bench_nitmd()
{
}
bench_nitmd
+function bench_nitmd-o()
+{
+ name="$FUNCNAME"
+ skip_test "$name" && return
+ prepare_res $outdir/nitmd-o.dat "nitmd-o" "nitmd-o"
+ for file in $bncdir/*.md; do
+ bench=`basename $file .md`
+ bench_command "$bench" "" "$engdir/nitmd/nitmd-o" "$file" "$s"
+ done
+}
+bench_nitmd-o
+
function bench_txtmark()
{
name="$FUNCNAME"
}
bench_markdown4j
+function bench_pandoc()
+{
+ name="$FUNCNAME"
+ skip_test "$name" && return
+ prepare_res $outdir/pandoc.dat "pandoc" "pandoc"
+ for file in $bncdir/*.md; do
+ name=`basename $file .md`
+ bench_command "$bench" "" "$engdir/pandoc/pandoc" "$file" "$s"
+ done
+}
+bench_pandoc
+
if test "$#" -gt 0; then
plot $outdir/bench_markdown.gnu
fi
# See the License for the specific language governing permissions and
# limitations under the License.
+NITC=../../../bin/nitc
+
all: out
gen_benches:
- nitc gen_benches.nit
+ $(NITC) gen_benches.nit
out: gen_benches
./gen_benches ./plain.md -o ./out
# See the License for the specific language governing permissions and
# limitations under the License.
-all: nitmd/nitmd txtmark/Txtmark.class markdown4j/Markdown4j.class
+all: nitmd/nitmd txtmark/Txtmark.class markdown4j/Markdown4j.class pandoc/pandoc
nitmd/nitmd:
make -C nitmd
markdown4j/Markdown4j.class:
make -C markdown4j
+pandoc/pandoc:
+ make -C pandoc
+
clean:
make -C nitmd clean
make -C txtmark clean
make -C markdown4j clean
+ make -C pandoc clean
# See the License for the specific language governing permissions and
# limitations under the License.
+NITC=../../../../bin/nitc
+
+all: nitmd nitmd-o
+
nitmd:
- nitc nitmd.nit
+ $(NITC) nitmd.nit
+
+nitmd-o:
+ $(NITC) --semi-global nitmd.nit -o $@
-test: nitmd
+test: all
./nitmd ../../benches/hello.md 5
+ ./nitmd-o ../../benches/hello.md 5
clean:
- rm -rf nitmd
+ rm -rf nitmd nitmd-o
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Copyright 2015 Alexandre Terrasa <alexandre@moz-code.org>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+pandoc:
+ cabal install pandoc
+ ghc pandoc.hs -O
+
+test: pandoc
+ ./pandoc ../../benches/hello.md 5
+
+clean:
+ rm pandoc.hi
+ rm pandoc.o
+ rm pandoc
--- /dev/null
+module Main where
+
+ import System.Environment (getArgs)
+ import Text.Pandoc
+
+ -- Reads a String and parses it as a Pandoc instance
+ readDoc :: String -> Pandoc
+ readDoc = readMarkdown def
+
+ -- Writes a Pandoc instances as a String
+ writeDoc :: Pandoc -> String
+ writeDoc = writeHtmlString def
+
+ -- Reads markdown, writes HTML and prints it in stdout
+ doBench :: String -> IO ()
+ doBench fileName = do
+ content <- readFile fileName
+ let markdown = readDoc content
+ let html = writeDoc markdown
+ print html
+
+ -- Executes `doBench` n times
+ loop :: Int -> String -> IO ()
+ loop 0 _ = return ()
+ loop n fileName = do
+ doBench fileName
+ loop (n - 1) fileName
+ return ()
+
+ main :: IO ()
+ main = do
+ (fileName:count:_) <- getArgs
+ loop (read count::Int) fileName
--- /dev/null
+arraytos/
+string_concat/
+string_iter/
+string_substr/
--- /dev/null
+all: concat iter substr array
+
+concat:
+ ./bench_strings.sh cct 10 10000000 1
+
+substr:
+ ./bench_strings.sh substr 10 10000000 10
+
+iter:
+ ./bench_strings.sh iter 10 10000000 10
+
+array:
+ ./bench_strings.sh array 10 10000000 10
+
+clean:
+ rm -rf arraytos/ string_concat/ string_iter/ string_substr/ 2>/dev/null
--- /dev/null
+# Strings
+
+Strings are a building block of programming.
+Since they are that necessary, we must keep them as performing as possible.
+
+This series of benchmarks works on different structures for handling strings on the most common operations done on them.
+
+## Structures
+
+Some more structures are susceptible to be added as the project advances.
+At the moment, what is available consists of
+
+* Flat strings
+* Flat buffers
+* Rope strings
+* Rope buffers
+
+A String is defined as an immutable string.
+A Buffer is defined as a mutable string.
+
+Flat strings are arrays of characters, the most basic implementation of a string.
+Ropes are a tree-like structure where strings are bound through concatenation nodes.
+
+## Tests
+
+`concat`: Benches the concatenation speed of strings and buffers.
+
+`iter`: Benches the time of iteration of a string, through iterators or indexed access
+
+`substr`: Benches the time required to produce a substring.
+
+`arraytos`: Special bench, it measures the speed of `Array::to_s` through the use of various strategies.
+
+## Usage
+
+To pass a series of benches you can use the `make` command to bench all the aforementioned tests with default values.
+
+Each bench will be executed 5 times and the mean time will be represented in the final graph.
+
+The alternative is to use `bench_strings.sh` with custom arguments to it.
+For more information on the arguments and the format, execute it with the -h option for help.
# To be used as a Mixin at compile-time for benchmarking purposes.
module array_to_s_buffer
+intrude import standard::collection::array
+import standard::string
+
redef class Array[E]
redef fun to_s: String do
var s = new FlatBuffer
# To be used as a Mixin at compile-time for benchmarking purposes.
module array_to_s_flatstr
+intrude import standard::string
+
+redef class FlatString
+ redef fun +(o) do
+ var mlen = length
+ var slen = o.length
+ var nns = new NativeString(mlen + slen)
+ items.copy_to(nns, mlen, index_from, 0)
+ if o isa FlatString then
+ o.items.copy_to(nns, slen, o.index_from, mlen)
+ else
+ var pos = mlen
+ for i in o.chars do
+ nns[pos] = i
+ pos += 1
+ end
+ end
+ return nns.to_s_with_length(mlen)
+ end
+end
+
redef class Array[E]
redef fun to_s do
# To be used as a Mixin at compile-time for benchmarking purposes.
module array_to_s_man_buf
-redef class NativeArray[E]
- new(length: Int) is intern
-end
+intrude import standard::collection::array
+import standard::string
redef class Array[E]
redef fun to_s: String do
# To be used as a Mixin at compile-time for benchmarking purposes.
module array_to_s_rope
+intrude import standard::collection::array
+intrude import standard::ropes
+
redef class Array[E]
redef fun to_s do
- var i = 1
var l = length
+ var it = _items
if l == 0 then return ""
- var s: String = new RopeString.from(self[0].to_s)
- var its = _items
- while i < l do
- var e = its[i]
- if e != null then s += e.to_s
- i += 1
+ if l == 1 then return it[0].to_s
+ var c = new Concat(it[0].to_s, it[1].to_s)
+ for i in [2 .. l[ do
+ c = new Concat(c, it[i].to_s)
end
- return s
+ return c
end
+
end
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# This file is free software, which comes along with NIT. This software is
+# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. You can modify it is you want, provided this header
+# is kept unaltered, and a notification of the changes is added.
+# You are allowed to redistribute it and sell it, alone or is a part of
+# another product.
+
+# Implementation of Array::to_s with RopeBuffer exclusively
+#
+# To be used as a Mixin at compile-time for benchmarking purposes.
+module array_to_s_rope_buf
+
+intrude import standard::collection::array
+import standard::ropes
+
+redef class Array[E]
+ redef fun to_s: String do
+ var s = new RopeBuffer
+ var i = 0
+ var l = length
+ var its = _items
+ while i < l do
+ var e = its[i]
+ if e != null then s.append(e.to_s)
+ i += 1
+ end
+ return s.to_s
+ end
+end
# See the License for the specific language governing permissions and
# limitations under the License.
-source ./bench_common.sh
-source ./bench_plot.sh
+source ../bench_common.sh
+source ../bench_plot.sh
# Default number of times a command must be run with bench_command
# Can be overrided with 'the option -n'
-count=2
+count=5
function usage()
{
echo " -h: this help"
echo ""
echo "Benches : "
- echo " all : all benches"
- echo " - usage : * max_nb_cct loops strlen"
echo " iter: bench iterations"
echo " - usage : iter max_nb_cct loops strlen"
echo " cct: concatenation benching"
echo " - usage : array nb_cct loops max_arrlen"
}
-function benches()
-{
- bench_concat $@;
- bench_iteration $@;
- bench_substr $@;
- bench_array $@;
-}
-
function bench_array()
{
+ if [ -d arraytos ]; then
+ rm arraytos/*
+ else
+ mkdir arraytos
+ fi
+ cd arraytos
+
if $verbose; then
echo "*** Benching Array.to_s performance ***"
fi
- ../bin/nitc --global ./strings/array_tos.nit -m ./strings/array_to_s_vars/array_to_s_flatstr.nit -m ../lib/standard/ropes.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
+ ../../../bin/nitc --global ../array_tos.nit -m ../array_to_s_vars/array_to_s_rope.nit
prepare_res arr_tos_ropes.out arr_tos_ropes ropes
if $verbose; then
if $verbose; then
echo "String length = $i, Concats/loop = $1, Loops = $2"
fi
- bench_command $i ropes$i ./array_tos --loops $2 --strlen $i --ccts $1 "NIT_GC_CHOOSER=large"
+ bench_command $i ropes$i ./array_tos --loops $2 --strlen $i --ccts $1
done
- ../bin/nitc --global ./strings/array_tos.nit -m ./strings/array_to_s_vars/array_to_s_flatstr.nit -m ../lib/standard/ropes.nit -m ../lib/buffered_ropes.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
-
- prepare_res arr_tos_buf_ropes.out arr_tos_buf_ropes buffered_ropes
- if $verbose; then
- echo "Buffered Ropes :"
- fi
- for i in `seq 1 "$3"`; do
- if $verbose; then
- echo "String length = $i, Concats/loop = $1, Loops = $2"
- fi
- bench_command $i buf_ropes$i ./array_tos --loops $2 --strlen $i --ccts $1 "NIT_GC_CHOOSER=large"
- done
-
- ../bin/nitc --global ./strings/array_tos.nit -m ./strings/array_to_s_vars/array_to_s_flatstr.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
+ ../../../bin/nitc --global ../array_tos.nit -m ../array_to_s_vars/array_to_s_flatstr.nit
prepare_res arr_tos_flat.out arr_tos_flat flatstring
if $verbose; then
if $verbose; then
echo "String length = $i, Concats/loop = $1, Loops = $2"
fi
- bench_command $i flatstring$i ./array_tos --loops $2 --strlen $i --ccts $1 "NIT_GC_CHOOSER=large"
+ bench_command $i flatstring$i ./array_tos --loops $2 --strlen $i --ccts $1
done
- ../bin/nitc --global ./strings/array_tos.nit -m ./strings/array_to_s_vars/array_to_s_buffer.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
+ ../../../bin/nitc --global ../array_tos.nit -m ../array_to_s_vars/array_to_s_buffer.nit
prepare_res arr_tos_buf.out arr_tos_buf flatbuffer
if $verbose; then
if $verbose; then
echo "String length = $i, Concats/loop = $1, Loops = $2"
fi
- bench_command $i flatbuffer$i ./array_tos --loops $2 --strlen $i --ccts $1 "NIT_GC_CHOOSER=large"
+ bench_command $i flatbuffer$i ./array_tos --loops $2 --strlen $i --ccts $1
done
- ../bin/nitc --global ./strings/array_tos.nit -m ./strings/array_to_s_vars/array_to_s_manual.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
+ ../../../bin/nitc --global ../array_tos.nit -m ../array_to_s_vars/array_to_s_manual.nit
prepare_res arr_tos_man.out arr_tos_man memmove
if $verbose; then
if $verbose; then
echo "String length = $i, Concats/loop = $1, Loops = $2"
fi
- bench_command $i memmove$i ./array_tos --loops $2 --strlen $i --ccts $1 "NIT_GC_CHOOSER=large"
+ bench_command $i memmove$i ./array_tos --loops $2 --strlen $i --ccts $1
done
- ../bin/nitc --global ./strings/array_tos.nit -m ./strings/array_to_s_vars/array_to_s_man_buf.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
+ ../../../bin/nitc --global ../array_tos.nit -m ../array_to_s_vars/array_to_s_man_buf.nit
prepare_res arr_tos_man_buf.out arr_tos_man_buf flatbuf_with_capacity
if $verbose; then
if $verbose; then
echo "String length = $i, Concats/loop = $1, Loops = $2"
fi
- bench_command $i flatbuf_with_capacity$i ./array_tos --loops $2 --strlen $i --ccts $1 "NIT_GC_CHOOSER=large"
+ bench_command $i flatbuf_with_capacity$i ./array_tos --loops $2 --strlen $i --ccts $1
done
- ../bin/nitc --global ./strings/array_tos.nit -m ./strings/array_to_s_vars/array_to_s_rope_buf.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
+ ../../../bin/nitc --global ../array_tos.nit -m ../array_to_s_vars/array_to_s_rope_buf.nit
prepare_res arr_tos_rope_buf.out arr_tos_rope_buf ropebuf
if $verbose; then
if $verbose; then
echo "String length = $i, Concats/loop = $1, Loops = $2"
fi
- bench_command $i ropebuf$i ./array_tos --loops $2 --strlen $i --ccts $1 "NIT_GC_CHOOSER=large"
+ bench_command $i ropebuf$i ./array_tos --loops $2 --strlen $i --ccts $1
done
plot array_tos.gnu
+
+ cd ..
}
function bench_concat()
{
- ../bin/nitc --global ./strings/chain_concat.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
- ../bin/nitc --global ./strings/utf_chain_concat.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
+ if [ -d string_concat ]; then
+ rm string_concat/*
+ else
+ mkdir string_concat
+ fi
+ cd string_concat
+
+ ../../../bin/nitc --global ../chain_concat.nit
if $verbose; then
echo "*** Benching concat performance ***"
if $verbose; then
echo "String length = $i, Concats/loop = $2, Loops = $3"
fi
- bench_command $i flatstring$i ./chain_concat -m flatstr --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i flatstring$i ./chain_concat -m flatstr --loops $2 --strlen $3 --ccts $i
done
prepare_res concat_buf.out concat_buf flatbuffer
if $verbose; then
echo "String length = $i, Concats/loop = $2, Loops = $3"
fi
- bench_command $i flatbuffer$i ./chain_concat -m flatbuf --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i flatbuffer$i ./chain_concat -m flatbuf --loops $2 --strlen $3 --ccts $i
done
- prepare_res concat_flatstr_utf8_noindex.out concat_flatstr_utf8_noindex flatstring_utf8_noindex
- if $verbose; then
- echo "FlatString UTF-8 (without index) :"
- fi
- for i in `seq 1 "$1"`; do
- if $verbose; then
- echo "String length = $i, Concats/loop = $2, Loops = $3"
- fi
- bench_command $i flatstr_utf8_noindex$i ./utf_chain_concat -m flatstr_utf8_noindex --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
- done
-
- ../bin/nitc --global ./strings/chain_concat.nit -m ../lib/standard/ropes.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
-
prepare_res concat_ropes.out concat_ropes ropes
if $verbose; then
echo "Ropes :"
if $verbose; then
echo "String length = $i, Concats/loop = $2, Loops = $3"
fi
- bench_command $i ropes$i ./chain_concat -m flatstr --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i ropes$i ./chain_concat -m ropestr --loops $2 --strlen $3 --ccts $i
done
- ../bin/nitc --global ./strings/chain_concat.nit -m ../lib/standard/ropes.nit -m ../lib/buffered_ropes.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
-
prepare_res concat_buf_ropes.out concat_buf_ropes buffered_ropes
if $verbose; then
- echo "buffered ropes :"
- fi
- for i in `seq 1 "$1"`; do
- if $verbose; then
- echo "string length = $i, concats/loop = $2, loops = $3"
- fi
- bench_command $i buf_ropes$i ./chain_concat -m flatstr --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
- done
-
- ../bin/nitc --global ./strings/chain_cct_ropebuf.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
-
- prepare_res cct_buf_ropes.out cct_buf_ropes cctbuf_ropes
- if $verbose; then
- echo "buffered ropes :"
+ echo "Rope Buffer:"
fi
for i in `seq 1 "$1"`; do
if $verbose; then
echo "string length = $i, concats/loop = $2, loops = $3"
fi
- bench_command $i cctbuf_ropes$i ./chain_cct_ropebuf --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i buf_ropes$i ./chain_concat -m ropebuf --loops $2 --strlen $3 --ccts $i
done
plot concat.gnu
+
+ cd ..
}
function bench_iteration()
{
+ if [ -d string_iter ]; then
+ rm string_iter/*
+ else
+ mkdir string_iter
+ fi
+ cd string_iter
+
if $verbose; then
echo "*** Benching iteration performance ***"
fi
- ../bin/nitc --global ./strings/iteration_bench.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
- ../bin/nitc --global ./strings/utf_iteration_bench.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
+ ../../../bin/nitc --global ../iteration_bench.nit
prepare_res iter_flat_iter.out iter_flat_iter flatstring_iter
if $verbose; then
if $verbose; then
echo "String base length = $1, Concats = $i, Loops = $3"
fi
- bench_command $i flatstr_iter$i ./iteration_bench -m flatstr --iter-mode iterator --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i flatstr_iter$i ./iteration_bench -m flatstr --iter-mode iterator --loops $2 --strlen $3 --ccts $i
done
prepare_res iter_flat_index.out iter_flat_index flatstring_index
if $verbose; then
echo "String base length = $1, Concats = $i, Loops = $3"
fi
- bench_command $i flatstr_index$i ./iteration_bench -m flatstr --iter-mode index --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i flatstr_index$i ./iteration_bench -m flatstr --iter-mode index --loops $2 --strlen $3 --ccts $i
done
prepare_res iter_buf_iter.out iter_buf_iter flatbuffer_iter
if $verbose; then
echo "String base length = $1, Concats = $i, Loops = $3"
fi
- bench_command $i flatbuf_iter$i ./iteration_bench -m flatbuf --iter-mode iterator --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i flatbuf_iter$i ./iteration_bench -m flatbuf --iter-mode iterator --loops $2 --strlen $3 --ccts $i
done
prepare_res iter_buf_index.out iter_buf_index flatbuffer_index
if $verbose; then
echo "String base length = $1, Concats = $i, Loops = $3"
fi
- bench_command $i flatbuf_index$i ./iteration_bench -m flatbuf --iter-mode index --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i flatbuf_index$i ./iteration_bench -m flatbuf --iter-mode index --loops $2 --strlen $3 --ccts $i
done
- prepare_res iter_flat_utf8_noindex_iter.out iter_flat_iter_utf8_noindex flatstring_utf8_noindex_iter
- if $verbose; then
- echo "FlatStrings by iterator :"
- fi
- for i in `seq 1 "$1"`; do
- if $verbose; then
- echo "String base length = $1, Concats = $i, Loops = $3"
- fi
- bench_command $i flatstr_iter_utf8_noindex$i ./utf_iteration_bench -m flatstr_utf8_noindex --iter-mode iterator --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
- done
-
- prepare_res iter_flat_utf8_noindex_index.out iter_flat_index_utf8_noindex flatstring_utf8_noindex_index
- if $verbose; then
- echo "FlatStrings by index :"
- fi
- for i in `seq 1 "$1"`; do
- if $verbose; then
- echo "String base length = $1, Concats = $i, Loops = $3"
- fi
- bench_command $i flatstr_index_utf8_noindex$i ./utf_iteration_bench -m flatstr_utf8_noindex --iter-mode index --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
- done
-
- ../bin/nitc --global ./strings/iteration_bench.nit -m ../lib/standard/ropes.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
-
prepare_res iter_ropes_iter.out iter_ropes_iter ropes_iter
if $verbose; then
echo "Ropes by iterator :"
if $verbose; then
echo "String base length = $1, Concats (depth of the rope) = $i, Loops = $3"
fi
- bench_command $i ropes_iter$i ./iteration_bench -m flatstr --iter-mode iterator --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i ropes_iter$i ./iteration_bench -m ropestr --iter-mode iterator --loops $2 --strlen $3 --ccts $i
done
prepare_res iter_ropes_index.out iter_ropes_index ropes_index
if $verbose; then
echo "String base length = $1, Concats (depth of the rope) = $i, Loops = $3"
fi
- bench_command $i ropes_index$i ./iteration_bench -m flatstr --iter-mode index --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i ropes_index$i ./iteration_bench -m ropestr --iter-mode index --loops $2 --strlen $3 --ccts $i
done
- ../bin/nitc --global ./strings/iteration_bench.nit -m ../lib/standard/ropes.nit -m ../lib/buffered_ropes.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
-
prepare_res iter_buf_ropes_iter.out iter_buf_ropes_iter buf_ropes_iter
if $verbose; then
- echo "Buffered Ropes by iterator :"
+ echo "RopeBuffer by iterator :"
fi
for i in `seq 1 "$1"`; do
if $verbose; then
echo "String base length = $1, Concats (depth of the rope) = $i, Loops = $3"
fi
- bench_command $i buf_ropes_iter$i ./iteration_bench -m flatstr --iter-mode iterator --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i buf_ropes_iter$i ./iteration_bench -m ropebuf --iter-mode iterator --loops $2 --strlen $3 --ccts $i
done
prepare_res iter_buf_ropes_index.out iter_buf_ropes_index buf_ropes_index
if $verbose; then
- echo "Buffered Ropes by index :"
+ echo "RopeBuffer by index :"
fi
for i in `seq 1 "$1"`; do
if $verbose; then
echo "String base length = $1, Concats (depth of the rope) = $i, Loops = $3"
fi
- bench_command $i buf_ropes_index$i ./iteration_bench -m flatstr --iter-mode index --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i buf_ropes_index$i ./iteration_bench -m ropebuf --iter-mode index --loops $2 --strlen $3 --ccts $i
done
plot iter.gnu
+
+ cd ..
}
function bench_substr()
{
+ if [ -d string_substr ]; then
+ rm string_substr/*
+ else
+ mkdir string_substr
+ fi
+ cd string_substr
+
if $verbose; then
echo "*** Benching substring performance ***"
fi
- ../bin/nitc --global ./strings/substr_bench.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
- ../bin/nitc --global ./strings/utf_substr_bench.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
+ ../../../bin/nitc --global ../substr_bench.nit
prepare_res substr_flat.out substr_flat flatstring
if $verbose; then
if $verbose; then
echo "String length = $i, loops = $2, Loops = $3"
fi
- bench_command $i flatstring$i ./substr_bench -m flatstr --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i flatstring$i ./substr_bench -m flatstr --loops $2 --strlen $3 --ccts $i
done
prepare_res substr_buf.out substr_buf flatbuffer
if $verbose; then
echo "String length = $i, loops = $2, Loops = $3"
fi
- bench_command $i flatbuffer$i ./substr_bench -m flatbuf --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
- done
-
- prepare_res substr_flat_utf8_noindex.out substr_flat_utf8_noindex flatstring_utf8_noindex
- if $verbose; then
- echo "FlatStrings UTF-8 (without index) :"
- fi
- for i in `seq 1 "$1"`; do
- if $verbose; then
- echo "String length = $i, loops = $2, Loops = $3"
- fi
- bench_command $i flatstring_utf8_noindex$i ./utf_substr_bench -m flatstr_utf8_noindex --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i flatbuffer$i ./substr_bench -m flatbuf --loops $2 --strlen $3 --ccts $i
done
- ../bin/nitc --global ./strings/substr_bench.nit -m ../lib/standard/ropes.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
-
prepare_res substr_ropes.out substr_ropes ropes
if $verbose; then
echo "Ropes :"
if $verbose; then
echo "String length = $i, loops = $2, Loops = $3"
fi
- bench_command $i ropes$i ./substr_bench -m flatstr --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i ropes$i ./substr_bench -m ropestr --loops $2 --strlen $3 --ccts $i
done
- ../bin/nitc --global ./strings/substr_bench.nit -m ../lib/standard/ropes.nit -m ../lib/buffered_ropes.nit --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
-
prepare_res substr_buf_ropes.out substr_buf_ropes buf_ropes
if $verbose; then
- echo "Buffered Ropes :"
+ echo "RopeBuffers :"
fi
for i in `seq 1 "$1"`; do
if $verbose; then
echo "String length = $i, loops = $2, Loops = $3"
fi
- bench_command $i buf_ropes$i ./substr_bench -m flatstr --loops $2 --strlen $3 --ccts $i "NIT_GC_CHOOSER=large"
+ bench_command $i buf_ropes$i ./substr_bench -m ropebuf --loops $2 --strlen $3 --ccts $i
done
+
plot substr.gnu
+
+ cd ..
}
stop=false
cct) shift; bench_concat $@ ;;
substr) shift; bench_substr $@ ;;
array) shift; bench_array $@ ;;
- all) shift; benches $@ ;;
*) usage; exit;;
esac
# Benches measuring the performance of several concatenations on Text variants
module chain_concat
+intrude import standard::ropes
import opts
+redef class FlatString
+ redef fun +(o) do
+ var mlen = length
+ var slen = o.length
+ var nlen = mlen + slen
+ var ns = new NativeString(nlen + 1)
+ items.copy_to(ns, mlen, index_from, 0)
+ if o isa FlatString then
+ o.items.copy_to(ns, slen, o.index_from, 0)
+ else
+ var pos = mlen
+ for i in o.chars do
+ ns[pos] = i
+ pos += 1
+ end
+ end
+ return ns.to_s_with_length(nlen)
+ end
+end
+
fun bench_flatstr(str_size: Int, nb_ccts: Int, loops: Int)
do
var lft = "a" * str_size
- for i in [0..loops] do
- var str: String = lft
- for j in [0..nb_ccts] do
+ for i in [0 .. loops[ do
+ var str: String = ""
+ for j in [0 .. nb_ccts[ do
str += lft
end
end
end
+fun bench_ropestr(str_size, nb_ccts, loops: Int) do
+ var lft = "a" * str_size
+
+ for i in [0 .. loops[ do
+ var str: String = ""
+ for j in [0 .. nb_ccts[ do
+ str = new Concat(str, lft)
+ end
+ end
+end
+
fun bench_flatbuf(str_size: Int, nb_ccts: Int, loops: Int)
do
var lft = "a" * str_size
- for i in [0..loops] do
- var buf = new FlatBuffer.from(lft)
- for j in [0..nb_ccts] do
+ for i in [0 .. loops[ do
+ var buf = new FlatBuffer
+ for j in [0 .. nb_ccts[ do
+ buf.append(lft)
+ end
+ end
+end
+
+fun bench_ropebuf(str_size: Int, nb_ccts: Int, loops: Int)
+do
+ var lft = "a" * str_size
+
+ for i in [0 .. loops[ do
+ var buf = new RopeBuffer
+ for j in [0 .. nb_ccts[ do
buf.append(lft)
end
- buf.to_s
end
end
var opts = new OptionContext
-var mode = new OptionEnum(["flatstr", "flatbuf"], "Mode", -1, "-m")
+var mode = new OptionEnum(["flatstr", "ropestr", "flatbuf", "ropebuf"], "Mode", -1, "-m")
var nb_ccts = new OptionInt("Number of concatenations per loop", -1, "--ccts")
var loops = new OptionInt("Number of loops to be done", -1, "--loops")
var strlen = new OptionInt("Length of the base string", -1, "--strlen")
if modval == 0 then
bench_flatstr(strlen.value, nb_ccts.value, loops.value)
else if modval == 1 then
+ bench_ropestr(strlen.value, nb_ccts.value, loops.value)
+else if modval == 2 then
bench_flatbuf(strlen.value, nb_ccts.value, loops.value)
+else if modval == 3 then
+ bench_ropebuf(strlen.value, nb_ccts.value, loops.value)
+
else
opts.usage
exit -1
module iteration_bench
import opts
+intrude import standard::ropes
+
+redef class Concat
+ redef fun +(o) do
+ var s = o.to_s
+ return new Concat(self, s)
+ end
+end
+
+redef class FlatString
+ redef fun +(o) do
+ var s = o.to_s
+ var b = new FlatBuffer.with_capacity(length + s.length)
+ b.append self
+ for i in s.substrings do b.append i
+ return b.to_s
+ end
+end
fun bench_flatstr_iter(nb_cct: Int, loops: Int, strlen: Int)
do
var a = "a" * strlen
- var x = a
- for i in [0 .. nb_cct] do x += a
+ a = a * nb_cct
var cnt = 0
var c: Char
while cnt != loops do
- for i in x do
+ for i in a do
c = i
end
cnt += 1
fun bench_flatstr_index(nb_cct: Int, loops: Int, strlen: Int)
do
var a = "a" * strlen
- var x = a
- for i in [0 .. nb_cct] do x += a
+ a = a * nb_cct
+ var cnt = 0
+ var c: Char
+ var pos = 0
+ while cnt != loops do
+ pos = 0
+ while pos < a.length do
+ c = a[pos]
+ pos += 1
+ end
+ cnt += 1
+ end
+end
+
+fun bench_ropestr_iter(nb_cct: Int, loops: Int, strlen: Int)
+do
+ var a = "a" * strlen
+ var x: String = new Concat(a, a)
+ for i in [2 .. nb_cct[ do x = new Concat(x, a)
+ var cnt = 0
+ var c: Char
+ while cnt != loops do
+ for i in x do
+ c = i
+ end
+ cnt += 1
+ end
+end
+
+fun bench_ropestr_index(nb_cct: Int, loops: Int, strlen: Int)
+do
+ var a = "a" * strlen
+ var x: String = new Concat(a, a)
+ for i in [2 .. nb_cct[ do x = new Concat(x, a)
var cnt = 0
var c: Char
var pos = 0
fun bench_flatbuf_iter(nb_cct: Int, loops: Int, strlen: Int)
do
var a = "a" * strlen
+ a = a * nb_cct
var x = new FlatBuffer.from(a)
- for i in [0 .. nb_cct] do x.append a
var cnt = 0
var c: Char
while cnt != loops do
fun bench_flatbuf_index(nb_cct: Int, loops: Int, strlen: Int)
do
var a = "a" * strlen
+ a = a * nb_cct
var x = new FlatBuffer.from(a)
- for i in [0 .. nb_cct] do x.append a
+ var cnt = 0
+ var c: Char
+ var pos = 0
+ while cnt != loops do
+ pos = 0
+ while pos < x.length do
+ c = x[pos]
+ pos += 1
+ end
+ cnt += 1
+ end
+end
+
+fun bench_ropebuf_iter(nb_cct: Int, loops: Int, strlen: Int)
+do
+ var a = "a" * strlen
+ var x = new RopeBuffer.from(a)
+ for i in [0 .. nb_cct[ do x.append a
+ var cnt = 0
+ var c: Char
+ while cnt != loops do
+ for i in x do
+ c = i
+ end
+ cnt += 1
+ end
+end
+
+fun bench_ropebuf_index(nb_cct: Int, loops: Int, strlen: Int)
+do
+ var a = "a" * strlen
+ var x = new RopeBuffer.from(a)
+ for i in [0 .. nb_cct[ do x.append a
var cnt = 0
var c: Char
var pos = 0
end
var opts = new OptionContext
-var mode = new OptionEnum(["flatstr", "flatbuf"], "Mode", -1, "-m")
+var mode = new OptionEnum(["flatstr", "flatbuf", "ropestr", "ropebuf"], "Mode", -1, "-m")
var access_mode = new OptionEnum(["iterator", "index"], "Iteration mode", -1, "--iter-mode")
var nb_ccts = new OptionInt("Number of concatenations done to the string (in the case of the rope, this will increase its depth)", -1, "--ccts")
var loops = new OptionInt("Number of loops to be done", -1, "--loops")
opts.usage
exit(-1)
end
+else if modval == 2 then
+ if iterval == 0 then
+ bench_ropestr_iter(nb_ccts.value, loops.value, strlen.value)
+ else if iterval == 1 then
+ bench_ropestr_index(nb_ccts.value, loops.value, strlen.value)
+ else
+ opts.usage
+ exit(-1)
+ end
+else if modval == 3 then
+ if iterval == 0 then
+ bench_ropebuf_iter(nb_ccts.value, loops.value, strlen.value)
+ else if iterval == 1 then
+ bench_ropebuf_index(nb_ccts.value, loops.value, strlen.value)
+ else
+ opts.usage
+ exit(-1)
+ end
else
opts.usage
exit(-1)
module substr_bench
import opts
+intrude import standard::ropes
fun bench_flatstr(nb_cct: Int, loops: Int, strlen: Int)
do
var a = "a" * strlen
- var x = a
- for i in [0 .. nb_cct] do x += a
+ a = a * nb_cct
+ var maxl = a.length - 1
var cnt = 0
while cnt != loops do
- x.substring(0,5)
+ a.substring(maxl.rand, maxl.rand)
cnt += 1
end
end
fun bench_flatbuf(nb_cct: Int, loops: Int, strlen: Int)
do
var a = "a" * strlen
+ a = a * nb_cct
+ var maxl = a.length - 1
var x = new FlatBuffer.from(a)
- for i in [0 .. nb_cct] do x.append a
var cnt = 0
while cnt != loops do
- x.substring(0,5)
+ x.substring(maxl.rand, maxl.rand)
+ cnt += 1
+ end
+end
+
+fun bench_ropestr(nb_cct: Int, loops: Int, strlen: Int)
+do
+ var a = "a" * strlen
+ var x = new Concat(a, a)
+ for i in [2 .. nb_cct[ do x = new Concat(x, a)
+ var maxl = x.length - 1
+ var cnt = 0
+ while cnt != loops do
+ x.substring(maxl.rand, maxl.rand)
+ cnt += 1
+ end
+end
+
+fun bench_ropebuf(nb_cct: Int, loops: Int, strlen: Int)
+do
+ var a = "a" * strlen
+ var x = new RopeBuffer.from(a)
+ for i in [1 .. nb_cct[ do x.append a
+ var maxl = x.length - 1
+ var cnt = 0
+ while cnt != loops do
+ x.substring(maxl.rand, maxl.rand)
cnt += 1
end
end
var opts = new OptionContext
-var mode = new OptionEnum(["flatstr", "flatbuf"], "Mode", -1, "-m")
+var mode = new OptionEnum(["flatstr", "flatbuf", "ropestr", "ropebuf"], "Mode", -1, "-m")
var nb_ccts = new OptionInt("Number of concatenations done to the string (in the case of the rope, this will increase its depth)", -1, "--ccts")
var loops = new OptionInt("Number of loops to be done", -1, "--loops")
var strlen = new OptionInt("Length of the base string", -1, "--strlen")
end
var modval = mode.value
+srand_from(0)
if modval == 0 then
bench_flatstr(nb_ccts.value, loops.value, strlen.value)
else if modval == 1 then
bench_flatbuf(nb_ccts.value, loops.value, strlen.value)
+else if modval == 2 then
+ bench_ropestr(nb_ccts.value, loops.value, strlen.value)
+else if modval == 3 then
+ bench_ropebuf(nb_ccts.value, loops.value, strlen.value)
else
opts.usage
exit(-1)
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# This file is free software, which comes along with NIT. This software is
-# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
-# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. You can modify it is you want, provided this header
-# is kept unaltered, and a notification of the changes is added.
-# You are allowed to redistribute it and sell it, alone or is a part of
-# another product.
-
-# Benches measuring the performance of several concatenations on Text variants
-module utf_chain_concat
-
-import opts
-import string_experimentations::utf8_noindex
-
-fun bench_flatstr(str_size: Int, nb_ccts: Int, loops: Int)
-do
- var lft = "a" * str_size
-
- for i in [0..loops] do
- var str: String = lft
- for j in [0..nb_ccts] do
- str += lft
- end
- end
-end
-
-var opts = new OptionContext
-var nb_ccts = new OptionInt("Number of concatenations per loop", -1, "--ccts")
-var loops = new OptionInt("Number of loops to be done", -1, "--loops")
-var strlen = new OptionInt("Length of the base string", -1, "--strlen")
-opts.add_option(nb_ccts, loops, strlen)
-
-opts.parse(args)
-
-if nb_ccts.value == -1 or loops.value == -1 or strlen.value == -1 then
- opts.usage
- exit -1
-end
-
-bench_flatstr(strlen.value, nb_ccts.value, loops.value)
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# This file is free software, which comes along with NIT. This software is
-# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
-# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. You can modify it is you want, provided this header
-# is kept unaltered, and a notification of the changes is added.
-# You are allowed to redistribute it and sell it, alone or is a part of
-# another product.
-
-# Benches for iteration on variants of Text
-module utf_iteration_bench
-
-import opts
-import string_experimentations::utf8_noindex
-
-fun bench_flatstr_iter(nb_cct: Int, loops: Int, strlen: Int)
-do
- var a = "a" * strlen
- var x = a.as(FlatString)
- for i in [0 .. nb_cct] do x = (x + a).as(FlatString)
- var cnt = 0
- var c: UnicodeChar
- while cnt != loops do
- var it = new FlatStringIter(x)
- for i in it do
- c = i
- end
- cnt += 1
- end
-end
-
-fun bench_flatstr_index(nb_cct: Int, loops: Int, strlen: Int)
-do
- var a = "a" * strlen
- var x = a.as(FlatString)
- for i in [0 .. nb_cct] do x = (x + a).as(FlatString)
- var cnt = 0
- var c: UnicodeChar
- var pos = 0
- while cnt != loops do
- pos = 0
- while pos < x.length do
- c = x.char_at(pos)
- pos += 1
- end
- cnt += 1
- end
-end
-
-var opts = new OptionContext
-var access_mode = new OptionEnum(["iterator", "index"], "Iteration mode", -1, "--iter-mode")
-var nb_ccts = new OptionInt("Number of concatenations done to the string (in the case of the rope, this will increase its depth)", -1, "--ccts")
-var loops = new OptionInt("Number of loops to be done", -1, "--loops")
-var strlen = new OptionInt("Length of the base string", -1, "--strlen")
-opts.add_option(nb_ccts, loops, strlen, access_mode)
-
-opts.parse(args)
-
-if nb_ccts.value == -1 or loops.value == -1 or strlen.value == -1 then
- opts.usage
- exit(-1)
-end
-
-var iterval = access_mode.value
-
-if iterval == 0 then
- bench_flatstr_iter(nb_ccts.value, loops.value, strlen.value)
-else if iterval == 1 then
- bench_flatstr_index(nb_ccts.value, loops.value, strlen.value)
-else
- opts.usage
- exit(-1)
-end
+++ /dev/null
-# This file is part of NIT ( http://www.nitlanguage.org ).
-#
-# This file is free software, which comes along with NIT. This software is
-# distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
-# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE. You can modify it is you want, provided this header
-# is kept unaltered, and a notification of the changes is added.
-# You are allowed to redistribute it and sell it, alone or is a part of
-# another product.
-
-# Benches on the substring operation on variants of Text
-module utf_substr_bench
-
-import opts
-import string_experimentations::utf8_noindex
-
-fun bench_flatstr(nb_cct: Int, loops: Int, strlen: Int)
-do
- var a = "a" * strlen
- var x = a
- for i in [0 .. nb_cct] do x += a
- var cnt = 0
- while cnt != loops do
- x.substring(0,5)
- cnt += 1
- end
-end
-
-var opts = new OptionContext
-var nb_ccts = new OptionInt("Number of concatenations done to the string (in the case of the rope, this will increase its depth)", -1, "--ccts")
-var loops = new OptionInt("Number of loops to be done", -1, "--loops")
-var strlen = new OptionInt("Length of the base string", -1, "--strlen")
-opts.add_option(nb_ccts, loops, strlen)
-
-opts.parse(args)
-
-if nb_ccts.value == -1 or loops.value == -1 or strlen.value == -1 then
- opts.usage
- exit(-1)
-end
-
-bench_flatstr(nb_ccts.value, loops.value, strlen.value)
--- /dev/null
+# Copyright 2013 Alexandre Terrasa <alexandre@moz-code.org>.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+all: run
+
+run: hello_world.jar
+ java -jar hello_world.jar
+
+hello_world.jar: nitj
+ NIT_DIR= ./nitj ../examples/hello_world.nit
+
+nitj:
+ NIT_DIR= ./nitg ../src/nitj.nit
+
+clean:
+ rm -rf -- hello_world.jar .nit_jcompile 2> /dev/null || true
#ifdef WITH_LIBGC
case gc_opt_boehm: GC_gcollect(); break;
#endif
+ default: break; /* nothing can be done */
}
}
end
var ben = new Benitlux("sherbrooke")
-ben.run(opts.send_emails.value or else false)
+ben.run(opts.send_emails.value)
# The parsing logic for the wellington locaiton is active (to gather data)
# but the web interface do not allow to subscribe to its mailing list.
#
# TODO revamp mailing list Web interface
ben = new Benitlux("wellington")
-ben.run(opts.send_emails.value or else false)
+ben.run(opts.send_emails.value)
mkdir -p bin
../../bin/nitc --dir bin src/header_keeper.nit
+check: tests
tests: bin/header_keeper
gcc -E /usr/include/SDL/SDL_image.h | bin/header_keeper SDL_image.h
gcc -E /usr/include/GLES2/gl2.h | bin/header_keeper gl2.h
mkdir -p bin
../../bin/nitc --dir bin src/svg_to_png_and_nit.nit src/svg_to_icons.nit
+check: tests
tests: test-dino test-app
test-app: bin/svg_to_png_and_nit
# SVG to PNG and Nit
-This tool is used in combination with Inkscape to simplify assets creation for _mnit_ apps. It uses Inkscape to extract a PNG file from a SVG file. It will also create a Nit source file to create _mnit_ images for each objects with an id beginning by 0.
+This tool uses Inkscape to prepare assets for Nit applications from a single SVG file.
+It selects objects to extract from the SVG file when their id begins with `0`.
-# Features
+It will produce two files:
-* Creates a sinlge PNG file per SVG source file
-* Creates subimages for objects with an id beginning by 0.
-* If the id ends with 0 to 9, will instead create an array of subimages.
+* A Nit source file that declares a single class with an attribute for each selected object.
+ The attribute usually holds a single texture, except if the the id ends with a digit, then it will be an array.
-# Usage
+* A single PNG image file that contains all the selected objects.
+ With the option `--pow2`, the image size is rounded to the next of 2.
+
+## Usage
1. Create a new Inkscape document.
-2. Create objects and set their ids to begin with 0
-3. Save the document (ex: to `drawing.svg`) the name of the file is important
+2. Create objects and set their ids to begin with `0`.
+3. Save the document to `drawing.svg` (for this example), the name of the file is used to name the Nit class.
4. Execute `bin/svg_to_png_and_nit drawing.svg`
-5. From your code, import the generated source file (at src/drawing.nit`)
+5. From your code, import the generated source file at `src/drawing.nit`.
6. Use the class `DrawingImages` and its attributes.
-# Examples
+## Examples
-The minimal test in tests/app/ shows the basic usage of this tool.
+The minimal test in `tests/app/` shows the basic usage of this tool.
The Dino example `../../../../examples/mnit_dino` also uses this tool and is a more complete and practical example.
# This file is part of NIT ( http://www.nitlanguage.org ).
#
-# Copyright 2012-2014 Alexis Laferrière <alexis.laf@xymus.net>
+# Copyright 2012-2015 Alexis Laferrière <alexis.laf@xymus.net>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# See the License for the specific language governing permissions and
# limitations under the License.
-# This script extracts pngs from a single svg for all objects with ids
-# beginning by 0. Requires Inkscape.
+# Extract images of objects from an SVG file using Inkscape
module svg_to_png_and_nit
import opts
import template
+# Image information extracted from the SVG file
class Image
+ # Name extracted from the object ID minus the `0` prefix and Nit safe
var name: String
+
+ # Left border
var x: Int
+
+ # Top border
var y: Int
+
+ # Image width
var w: Int
+
+ # Image height
var h: Int
+
+ # Right border
fun right: Int do return x+w
+
+ # Bottom border
fun bottom: Int do return y+h
redef fun to_s do return name
end
-# The Nit source file to retreive all images
-class ImageSetSrc
+# Document being processed, concerns both the source and the target
+class Document
+ # Name of the source file
+ var drawing_name: String
+
+ # Name of the class to generate
+ var nit_class_name: String = drawing_name.capitalized + "Images" is lazy
+
+ # Scaling to apply to the exported image
+ var scale: Float
+
+ # Source minimum X
+ var min_x: Int
+
+ # Source maximum X
+ var max_x: Int
+
+ # Source minimum Y
+ var min_y: Int
+
+ # Source maximum Y
+ var max_y: Int
+
+ # Get the coordinates for `image` as `"x, y, w, h"`
+ fun coordinates(image: Image): String
+ do
+ var x = image.x.adapt(min_x, scale)
+ var y = image.y.adapt(min_y, scale)
+ var w = (image.w.to_f*scale).to_i
+ var h = (image.h.to_f*scale).to_i
+
+ return "{x}, {y}, {w}, {h}"
+ end
+end
+
+# Nit module with a single class to retrieve to access the extracted images
+abstract class ImageSetSrc
super Template
- var name: String
- init(name: String) do self.name = name
+ # Target document
+ var document: Document
- var attributes = new Array[String]
- var load_exprs = new Array[String]
+ # Images found in the source document
+ var images: Array[Image]
+end
+
+# Nit module targeting the MNit framework
+class MnitImageSetSrc
+ super ImageSetSrc
redef fun rendering
do
+ # Known array of images
+ var arrays_of_images = new Array[String]
+
+ # Attributes of the generated class
+ var attributes = new Array[String]
+
+ # Statements for the generated `load_all` method
+ var load_exprs = new Array[String]
+
+ # Add images to Nit source file
+ for image in images do
+ # Adapt coordinates to new top left and scale
+ var coordinates = document.coordinates(image)
+
+ var nit_name = image.name
+ var last_char = nit_name.chars.last
+ if last_char.to_s.is_numeric then
+ # Array of images
+ # TODO support more than 10 images in an array
+
+ nit_name = nit_name.substring(0, nit_name.length-1)
+ if not arrays_of_images.has(nit_name) then
+ # Create class attribute to store Array
+ arrays_of_images.add(nit_name)
+ attributes.add "\tvar {nit_name} = new Array[Image]\n"
+ end
+ load_exprs.add "\t\t{nit_name}.add(main_image.subimage({coordinates}))\n"
+ else
+ # Single image
+ attributes.add "\tvar {nit_name}: Image is noinit\n"
+ load_exprs.add "\t\t{nit_name} = main_image.subimage({coordinates})\n"
+ end
+ end
+
add """
-# file generated by svg_to_png, do not modify, redef instead
+# File generated by svg_to_png_and_nit, do not modify, redef instead
import mnit::image_set
-class {{{name}}}
+class {{{document.nit_class_name}}}
super ImageSet
+ private var main_image: Image is noinit
"""
add_all attributes
add """
redef fun load_all(app: App)
do
+ main_image = app.load_image(\"images/{{{document.drawing_name}}}.png\")
"""
add_all load_exprs
add """
end
end
+# Nit module targeting the Gamnit framework
+#
+# Gamnit's `Texture` already manage the lazy loading, no need to do it here.
+class GamnitImageSetSrc
+ super ImageSetSrc
+
+ private fun attributes: Array[String]
+ do
+ # Separate the images from the arrays of images
+ var single_images = new Array[Image]
+ var arrays_of_images = new HashMap[String, Array[Image]]
+
+ for image in images do
+ var nit_name = image.name
+ var last_char = nit_name.chars.last
+ if last_char.to_s.is_numeric then
+
+ # Is an array
+ nit_name = nit_name.substring(0, nit_name.length-1)
+ if not arrays_of_images.keys.has(nit_name) then
+ # Create a new array
+ var array = new Array[Image]
+ arrays_of_images[nit_name] = array
+ end
+
+ arrays_of_images[nit_name].add image
+ else
+ # Is a single image
+ single_images.add image
+ end
+ end
+
+ # Attributes of the class
+ var attributes = new Array[String]
+ attributes.add "\tprivate var main_image = new Texture(\"images/{document.drawing_name}.png\")\n"
+
+ # Add single images to Nit source file
+ for image in single_images do
+ # Adapt coordinates to new top left and scale
+ var coordinates = document.coordinates(image)
+
+ attributes.add "\tvar {image.name}: Texture = main_image.subtexture({coordinates})\n"
+ end
+
+ # Add array of images too
+ for name, images in arrays_of_images do
+
+ var lines = new Array[String]
+ for image in images do
+ var coordinates = document.coordinates(image)
+ lines.add "\t\tmain_image.subtexture({coordinates})"
+ end
+
+ attributes.add """
+ var {{{name}}} = new Array[Texture].with_items(
+{{{lines.join(",\n")}}})
+"""
+ end
+
+ return attributes
+ end
+
+ redef fun rendering
+ do
+ add """
+# File generated by svg_to_png_and_nit, do not modify, redef instead
+
+import gamnit::display
+
+class {{{document.nit_class_name}}}
+
+"""
+ add_all attributes
+ add """
+end
+"""
+ end
+end
+
redef class Int
- fun adapt(d: Int, scale: Float): Int
+ # Magic adaption of this coordinates to the given `margin` and `scale`
+ fun adapt(margin: Int, scale: Float): Int
do
- var corrected = self-d
+ var corrected = self-margin
return (corrected.to_f*scale).to_i
end
+ # The first power of to equal or greater than `self`
fun next_pow2: Int
do
var p = 2
end
end
-var opt_out_src = new OptionString("Path to output source file", "--src", "-s")
+var opt_out_src = new OptionString("Path to output source file (folder or file)", "--src", "-s")
var opt_assets = new OptionString("Path to assert dir where to put PNG files", "--assets", "-a")
-var opt_scale = new OptionFloat("Apply scaling to exported images (defaut at 1.0 of 90dpi)", 1.0, "--scale", "-x")
+var opt_scale = new OptionFloat("Apply scaling to exported images (default at 1.0 of 90dpi)", 1.0, "--scale", "-x")
+var opt_gamnit = new OptionBool("Target the Gamnit framework (by default it targets Mnit)", "--gamnit", "-g")
+var opt_pow2 = new OptionBool("Round the image size to the next power of 2", "--pow2")
var opt_help = new OptionBool("Print this help message", "--help", "-h")
var opt_context = new OptionContext
-opt_context.add_option(opt_out_src, opt_assets, opt_scale, opt_help)
+opt_context.add_option(opt_out_src, opt_assets, opt_scale, opt_gamnit, opt_pow2, opt_help)
opt_context.parse(args)
var rest = opt_context.rest
var src_path = opt_out_src.value
if src_path == null then src_path = "src"
-if not src_path.file_exists then
+if not src_path.file_exists and src_path.file_extension != "nit" then
stderr.write "Source dir '{src_path}' does not exist (use --src)\n"
exit 1
end
var scale = opt_scale.value
-var arrays_of_images = new Array[String]
-
for drawing in drawings do
var drawing_name = drawing.basename(".svg")
while not proc.eof do
var line = proc.read_line
var words = line.split(",")
-
+
if words.length == 5 then
var id = words[0]
end
proc.close
- # Nit class
- var nit_class_name = drawing_name.chars.first.to_s.to_upper + drawing_name.substring_from(1) + "Images"
- var nit_src = new ImageSetSrc(nit_class_name)
- nit_src.attributes.add "\tprivate var main_image: Image is noinit\n"
- nit_src.load_exprs.add "\t\tmain_image = app.load_image(\"images/{drawing_name}.png\")\n"
# Sort images by name, it prevents Array errors and looks better
alpha_comparator.sort(images)
- # Add images to Nit source file
- for image in images do
- # Adapt coordinates to new top left and scale
- var x = image.x.adapt(min_x, scale)
- var y = image.y.adapt(min_y, scale)
- var w = (image.w.to_f*scale).to_i
- var h = (image.h.to_f*scale).to_i
+ var document = new Document(drawing_name, scale, min_x, max_x, min_y, max_y)
- var nit_name = image.name
- var last_char = nit_name.chars.last
- if last_char.to_s.is_numeric then
- # Array of images
- # TODO support more than 10 images in an array
-
- nit_name = nit_name.substring(0, nit_name.length-1)
- if not arrays_of_images.has(nit_name) then
- # Create class attribute to store Array
- arrays_of_images.add(nit_name)
- nit_src.attributes.add "\tvar {nit_name} = new Array[Image]\n"
- end
- nit_src.load_exprs.add "\t\t{nit_name}.add(main_image.subimage({x}, {y}, {w}, {h}))\n"
- else
- # Single image
- nit_src.attributes.add "\tvar {nit_name}: Image is noinit\n"
- nit_src.load_exprs.add "\t\t{nit_name} = main_image.subimage({x}, {y}, {w}, {h})\n"
- end
+ # Nit class
+ var nit_src: ImageSetSrc
+ if opt_gamnit.value then
+ nit_src = new GamnitImageSetSrc(document, images)
+ else
+ nit_src = new MnitImageSetSrc(document, images)
+ end
+
+ if not src_path.file_extension == "nit" then
+ src_path = src_path/drawing_name+".nit"
end
# Output source file
- var src_file = new FileWriter.open("{src_path}/{drawing_name}.nit")
+ var src_file = new FileWriter.open(src_path)
nit_src.write_to(src_file)
src_file.close
- # Find closest power of 2
- var dx = max_x - min_x
- max_x = dx.next_pow2 + min_x
+ # Find next power of 2
+ if opt_pow2.value then
+ var dx = max_x - min_x
+ max_x = dx.next_pow2 + min_x
- var dy = max_y - min_y
- max_y = dy.next_pow2 + min_y
+ var dy = max_y - min_y
+ max_y = dy.next_pow2 + min_y
+ end
# Inkscape's --export-area inverts the Y axis. It uses the lower left corner of
# the drawing area where as queries return coordinates from the top left.
${NITC} ../examples/minilang.nit -v
printf "10\n42\n" | ./minilang ../examples/minilang.minilang
+check: tests
tests:
cd ../tests && ./run
else
full_path.file_delete
end
- stat.free
end
mpi.finalize
exit 0
mkdir -p bin
../../bin/nitc src/nitiwiki.nit -o bin/nitiwiki
+check: tests
tests: nitiwiki
cd tests; make
--- /dev/null
+# Welcome to NitRPG!
+
+NitRPG is a Role Playing Game that takes place on [GitHub](https://github.com/).
+
+In NitRPG, GitHub users are represented by players that battle on repo for
+nitcoins and glory.
+
+## Features
+
+* Auto-update with GitHub hooks
+* Display repo statistics
+* Display players statsitics
+* Repo actions are rewarded by nitcoins
+* Players can unlock achievements
+
+## How to install
+
+From the `nit` root:
+
+~~~bash
+> cd contrib/nitrpg
+> make
+~~~
+
+### Configuring the GitHub hook
+
+NitRPG needs you to add a new GitHub hook on your repo to keep the game
+`listener` up-to-date automatically.
+
+Hook configuration:
+
+* **Payload URL**: URL and port to the listener (ex: `http://yourdomain.com:8080`)
+* **Content type**: `application/json`
+* **Wich events**: `Send me everything`
+
+Be sure to set the hook as `Active` in the GitHub admin panel.
+
+### Starting the listener
+
+The `listener` program is used to listen to GitHub hooks and update game data.
+It should alwaysd be up if you want your game to be kept up-to-date.
+
+To run the listener:
+
+ ./listener <host> <port>
+
+The arguments `host` and `port` must correspond to what you entered in your
+GitHub hook settings.
+
+### Starting the web server
+
+The `web` program act as a [nitcorn](http://nitlanguage.org/doc/stdlib/module_nitcorn__nitcorn.html) webserver that display the game results live.
+
+To run the webserver:
+
+ ./web <host> <port> <root>
+
+The arguments `host` and `port` must correspond to what you entered in your
+GitHub hook settings.
+The `root` argument is used to specify the path from the domain url to the
+NitRPG root.
+
+For example, if NitRPG is installed in `yourdomain.com/nitrpg`:
+
+ ./web localhost 3000 "/nitrpg"
+
+Leave it empty if NitRPG is installed at the root of the domain:
+
+ ./web localhost 3000 ""
+
+The webserver can then be accessed at `http://yourdomain.com:3000/nitrpg/`.
+
+## RoadMap
+
+NitRPG stills under heavy development.
+Incomming features contain (but are not limited to):
+
+* Periodized stats (weekly, monthly, yearly, overall)
+* Display graphs with stats
+* More achievements
+* Shop: exchange Nitcoins against glorifying items
+
+You can suggest new achievements or ideas in the
+[NitRPG RoadMap Issue](https://github.com/privat/nit/issues/1161).
var key = self.key / achievement.key
if game.store.has_key(key) then return
stats.inc("achievements")
- achievement.save_in(self)
+ achievement.save_in(self.key)
save
end
redef var reward = 10000
redef var threshold = 10000
end
+
+#####################
+### Issue Comments
+#####################
+
+# Unlock achievement after X issue comments.
+#
+# Used to factorize behavior.
+abstract class PlayerXComments
+ super AchievementReactor
+
+ # Number of comments required to unlock the achievement.
+ var threshold: Int is noinit
+
+ redef fun react_event(game, event) do
+ if not event isa IssueCommentEvent then return
+ if not event.action == "created" then return
+ var player = event.comment.user.player(game)
+ if player.stats["comments"] == threshold then
+ var a = new_achievement(game)
+ player.unlock_achievement(a, event)
+ end
+ end
+end
+
+# Player author his first comment in issues.
+class Player1Comment
+ super PlayerXComments
+
+ redef var id = "player_1_comment"
+ redef var name = "From lurker to member"
+ redef var desc = "Comment on an issue."
+ redef var reward = 10
+ redef var threshold = 1
+end
+
+# Player author 100 issue comments.
+class Player100Comments
+ super PlayerXComments
+
+ redef var id = "player_100_comments"
+ redef var name = "Chatter"
+ redef var desc = "Comment 100 times on issues."
+ redef var reward = 100
+ redef var threshold = 100
+end
+
+# Player author 1000 issue comments.
+class Player1KComments
+ super PlayerXComments
+
+ redef var id = "player_1000__comments"
+ redef var name = "You sir, talk a lot!"
+ redef var desc = "Comment 1000 times on issues."
+ redef var reward = 1000
+ redef var threshold = 1000
+end
+
+# Ping @privat in a comment.
+class PlayerPingGod
+ super AchievementReactor
+
+ redef var id = "player_ping_god"
+ redef var name = "Ping god"
+ redef var desc = "Ping the owner of the repo for the first time."
+ redef var reward = 50
+
+ redef fun react_event(game, event) do
+ if not event isa IssueCommentEvent then return
+ var owner = game.repo.owner.login
+ if event.comment.body.has("@{owner}".to_re) then
+ var player = event.comment.user.player(game)
+ var a = new_achievement(game)
+ player.unlock_achievement(a, event)
+ end
+ end
+end
+
+# Give your first +1
+class PlayerFirstReview
+ super AchievementReactor
+
+ redef var id = "player_first_review"
+ redef var name = "First +1"
+ redef var desc = "Give a +1 for the first time."
+ redef var reward = 10
+
+ redef fun react_event(game, event) do
+ if not event isa IssueCommentEvent then return
+ # FIXME use a more precise way to locate reviews
+ if event.comment.has_ok_review then
+ var player = event.comment.user.player(game)
+ var a = new_achievement(game)
+ player.unlock_achievement(a, event)
+ end
+ end
+end
+
+# Talk about nitcoin in issue comments.
+class PlayerSaysNitcoin
+ super AchievementReactor
+
+ redef var id = "player_says_nitcoin"
+ redef var name = "Talking about money"
+ redef var desc = "Say something about nitcoins in a comment."
+ redef var reward = 10
+
+ redef fun react_event(game, event) do
+ if not event isa IssueCommentEvent then return
+ if event.comment.body.has("(n|N)itcoin".to_re) then
+ var player = event.comment.user.player(game)
+ var a = new_achievement(game)
+ player.unlock_achievement(a, event)
+ end
+ end
+end
redef class GameEntity
# Saves `event` in `self`.
- fun add_event(event: GameEvent) do event.save_in(self)
+ fun add_event(event: GameEvent) do event.save_in(self.key)
# List all events registered in this entity.
#
# Date are stored under `self.key`.
fun save do game.store.store_object(key, to_json)
- # Saves `self` state into `target` key data.
+ # Saves `self` state under `key` data.
#
- # Data are stored under `target.key / self.key`.
- fun save_in(target: GameEntity) do
- game.store.store_object(target.key / key, to_json)
+ # Data are stored under `key / self.key`.
+ fun save_in(key: String) do
+ game.store.store_object(key / self.key, to_json)
end
# Json representation of `self`.
# utils
+# Sort games by descending number of players.
+#
+# The first in the list is the game with the more players.
+class GamePlayersComparator
+ super Comparator
+
+ redef type COMPARED: Game
+
+ redef fun compare(a, b) do
+ return b.load_players.length <=> a.load_players.length
+ end
+end
+
# Sort players by descending number of nitcoins.
#
# The first in the list is the player with the more of nitcoins.
l.add_reactor(new Player1Pull, new Player100Pulls, new Player1KPulls)
l.add_reactor(new Player1Commit, new Player100Commits, new Player1KCommits)
l.add_reactor(new IssueAboutNitdoc, new IssueAboutFFI)
+l.add_reactor(new Player1Comment, new Player100Comments, new Player1KComments)
+l.add_reactor(new PlayerPingGod, new PlayerFirstReview, new PlayerSaysNitcoin)
print "Listening events on {host}:{port}"
l.listen
redef class GameEntity
- # Statistics for this entity.
- fun stats: GameStats is abstract
-
- # Load statistics for this `MEntity` if any.
- fun load_statistics: nullable GameStats do
- var key = self.key / "statistics"
- if not game.store.has_key(key) then return null
- var json = game.store.load_object(key)
- return new GameStats.from_json(game, json)
- end
+ # Statistics manager for this entity.
+ fun stats: GameStatsManager is abstract
end
redef class Game
- redef var stats is lazy do
- return load_statistics or else new GameStats(game)
- end
+ redef var stats is lazy do return new GameStatsManager(game, self)
redef fun save do
super
- stats.save_in(self)
+ stats.save_in(self.key)
end
redef fun pretty do
redef class Player
- redef var stats is lazy do
- return load_statistics or else new GameStats(game)
- end
+ redef var stats is lazy do return new GameStatsManager(game, self)
redef fun save do
super
- stats.save_in(self)
+ stats.save_in(self.key)
end
+ redef fun nitcoins do return stats["nitcoins"]
+ redef fun nitcoins=(nc) do stats["nitcoins"] = nc
+
redef fun pretty do
var res = new FlatBuffer
res.append super
end
end
+# Store game stats for defined period.
+class GameStatsManager
+ super GameEntity
+ super Counter[String]
+
+ redef var game
+
+ # The GameEntity monitored by these statistics.
+ var owner: GameEntity
+
+ redef var key = "stats"
+
+ # Returns the `GameStats` instance for the overall statistics.
+ var overall: GameStats is lazy do
+ return load_stats_for("all")
+ end
+
+ # Returns the `GameStats` instance for the current year statistics.
+ var yearly: GameStats is lazy do
+ var date = new Tm.gmtime
+ var key = date.strftime("%Y")
+ return load_stats_for(key)
+ end
+
+ # Returns the `GameStats` instance for the current month statistics.
+ var monthly: GameStats is lazy do
+ var date = new Tm.gmtime
+ var key = date.strftime("%Y-%m")
+ return load_stats_for(key)
+ end
+
+ # Returns the `GameStats` instance for the current day statistics.
+ var daily: GameStats is lazy do
+ var date = new Tm.gmtime
+ var key = date.strftime("%Y-%m-%d")
+ return load_stats_for(key)
+ end
+
+ # Returns the `GameStats` instance for the current week statistics.
+ var weekly: GameStats is lazy do
+ var date = new Tm.gmtime
+ var key = date.strftime("%Y-W%U")
+ return load_stats_for(key)
+ end
+
+ # Load statistics for a `period` key.
+ fun load_stats_for(period: String): GameStats do
+ var key = owner.key / self.key / period
+ if not game.store.has_key(key) then
+ return new GameStats(game, period)
+ end
+ var json = game.store.load_object(key)
+ return new GameStats.from_json(game, period, json)
+ end
+
+ redef fun [](key) do return overall[key]
+
+ redef fun []=(key, value) do
+ overall[key] = value
+ yearly[key] = value
+ monthly[key] = value
+ daily[key] = value
+ weekly[key] = value
+ end
+
+ redef fun inc(e) do
+ overall.inc(e)
+ yearly.inc(e)
+ monthly.inc(e)
+ daily.inc(e)
+ weekly.inc(e)
+ end
+
+ redef fun dec(e) do
+ overall.dec(e)
+ yearly.dec(e)
+ monthly.dec(e)
+ daily.dec(e)
+ weekly.dec(e)
+ end
+
+ redef fun save_in(key) do
+ overall.save_in(key / self.key)
+ yearly.save_in(key / self.key)
+ monthly.save_in(key / self.key)
+ daily.save_in(key / self.key)
+ weekly.save_in(key / self.key)
+ end
+
+ redef fun pretty do return overall.pretty
+end
+
# Game statistics structure that can be saved as a `GameEntity`.
class GameStats
super GameEntity
redef var game
- redef var key = "statistics"
+ # The pedriod these stats are about.
+ var period: String
+
+ redef fun key do return period
- # Load `self` from saved data
- init from_json(game: Game, json: JsonObject) do
- self.game = game
+ # Load `self` from saved data.
+ init from_json(game: Game, period: String, json: JsonObject) do
for k, v in json do self[k] = v.as(Int)
end
return obj
end
- # Decrements the value of `key` statistic entry by 1.
- fun dec(key: String) do
- if not has_key(key) then
- self[key] = 0
- else
- self[key] -= 1
- end
- end
-
redef fun pretty do
var res = new FlatBuffer
for k, v in self do
end
end
end
+
+redef class IssueCommentEvent
+
+ # Count posted comments
+ redef fun react_stats_event(game) do
+ if action == "created" then
+ var player = comment.user.player(game)
+ game.stats.inc("comments")
+ player.stats.inc("comments")
+ # FIXME use a more precise way to locate reviews
+ if comment.has_ok_review then
+ game.stats.inc("reviews")
+ player.stats.inc("reviews")
+ end
+ game.save
+ player.save
+ end
+ end
+end
+
+redef class IssueComment
+ # Does this comment contain a "+1"?
+ fun has_ok_review: Bool do return body.has("\\+1\\b".to_re)
+end
module panels
import templates_events
+import markdown
# A panel can be displayed in a html page.
#
end
+# A panel that display a markdown content rendered as HTML.
+class MDPanel
+ super Panel
+
+ # Markdown text to display.
+ var text: String
+
+ redef fun rendering do
+ add """<div class="panel">
+ <div class="panel-body">{{{text.md_to_html}}}</div>
+ </div>"""
+ end
+end
+
+# Display a list of active game.
+#
+# Used for NitRPG homepage.
+class GamesShortListPanel
+ super Panel
+
+ # Root url used for links.
+ var root_url: String
+
+ # List of NitRPG games to display.
+ var games: Array[Game]
+
+ redef fun render_title do
+ add "<span class=\"glyphicon glyphicon-home\"></span> "
+ add "<a href=\"{root_url}/games\">Active games</a>"
+ end
+
+ redef fun render_body do
+ if games.is_empty then
+ add "<em>No game yet...</em>"
+ return
+ end
+ var sorted = games.to_a
+ (new GamePlayersComparator).sort(sorted)
+ for game in sorted do
+ add "{game.link} ({game.load_players.length} players)<br>"
+ end
+ end
+end
+
+# A panel that display a list of player in a repo.
+class GamesListPanel
+ super GamesShortListPanel
+ super TablePanel
+
+ redef fun render_title do
+ add "<span class=\"glyphicon glyphicon-home\"></span> "
+ add "<a href=\"{root_url}/games\">Active games</a>"
+ end
+
+ redef fun render_body do
+ if games.is_empty then
+ add "<div class=\"panel-body\">"
+ add "<em>No player yet...</em>"
+ add "</div>"
+ return
+ end
+ var sorted = games.to_a
+ (new GamePlayersComparator).sort(sorted)
+ add """<table class="table table-striped table-hover">
+ <tr>
+ <th>Game</th>
+ <th>Players</th>
+ <th>Achievements</th>
+ </tr>"""
+ for game in sorted do
+ add "<tr>"
+ add " <td>{game.link}</td>"
+ add " <td>{game.load_players.length}</td>"
+ add " <td>{game.load_achievements.length}</td>"
+ add "</tr>"
+ end
+ add "</table>"
+ end
+end
+
# A panel that display repo statistics.
class GameStatusPanel
super Panel
redef fun render_title do
add "<span class=\"glyphicon glyphicon-check\"></span> "
- add "Review pull requests to gain nitcoins!"
+ add "Review pull requests and comment issues to gain nitcoins!"
end
redef fun render_body do
var q = "is:open label:need_review sort:updated-asc " +
"-involves:{player.name}"
- var issues = game.repo.search_issues(q)
+ var q2 = "is:open label:request_for_comments sort:updated-asc " +
+ "-involves:{player.name}"
+
+ var issues = new ArraySet[Issue]
+ issues.add_all game.repo.search_issues(q).as(not null)
+ issues.add_all game.repo.search_issues(q2).as(not null)
+ if issues.is_empty then
+ add "<em>No pull request or issue to review yet...</em>"
+ return
+ end
+ for issue in issues do
+ var user = issue.user
+ var uplay = user.player(game)
+ add """<div class="media">
+ <a class="media-left" href="{{{uplay.url}}}">
+ <img class=\"img-circle\" style="width:50px"
+ src="{{{user.avatar_url}}}" alt="{{{uplay.name}}}">
+ </a>
+ <div class="media-body">
+ <h4 class="media-heading">
+ {{{issue.link}}} {{{issue.title}}}
+ </h4>
+ <span class="text-muted">opened by </span>
+ {{{uplay.link}}}
+ </div>
+ </div>"""
+ end
+ end
+end
+
+# A `Panel` that displays the work assigned or tagged.
+class PlayerWorkPanel
+ super Panel
+
+ # Repo to display.
+ var game: Game
+
+ # Player to display customized list for.
+ var player: Player
+
+ redef fun render_title do
+ add "<span class=\"glyphicon glyphicon-check\"></span> "
+ add "Do your tasks to gain nitcoins!"
+ end
+
+ redef fun render_body do
+ var q = "is:open label:need_work sort:updated-asc author:{player.name}"
+ var q2 = "is:open sort:updated-asc assignee:{player.name}"
+
+ var issues = new ArraySet[Issue]
+ issues.add_all game.repo.search_issues(q).as(not null)
+ issues.add_all game.repo.search_issues(q2).as(not null)
if issues.is_empty then
- add "<em>No pull request to review yet...</em>"
+ add "<em>No work to do yet...</em>"
return
end
for issue in issues do
rsp.body = page.write_to_string
return rsp
end
+
+ # Returns the game with `name` or null if no game exists with this name.
+ fun load_game(name: String): nullable Game do
+ var repo = api.load_repo(name)
+ if api.was_error or repo == null then return null
+ var game = new Game(api, repo)
+ game.root_url = root_url
+ return game
+ end
+
+ # Returns the list of saved games from NitRPG data.
+ fun load_games: Array[Game] do
+ var res = new Array[Game]
+ var rpgdir = "nitrpg_data"
+ if not rpgdir.file_exists then return res
+ for user in rpgdir.files do
+ for repo in "{rpgdir}/{user}".files do
+ var game = load_game("{user}/{repo}")
+ if game != null then res.add game
+ end
+ end
+ return res
+ end
+end
+
+# Repo overview page.
+class RpgHome
+ super RpgAction
+
+ # Response page stub.
+ var page: NitRpgPage is noinit
+
+ redef fun answer(request, url) do
+ var readme = load_readme
+ var games = load_games
+ var response = new HttpResponse(200)
+ page = new NitRpgPage(root_url)
+ page.side_panels.add new GamesShortListPanel(root_url, games)
+ page.flow_panels.add new MDPanel(readme)
+ response.body = page.write_to_string
+ return response
+ end
+
+ # Load the string content of the nitrpg readme file.
+ private fun load_readme: String do
+ var readme = "README.md"
+ if not readme.file_exists then
+ return "Unable to locate README file."
+ end
+ var file = new FileReader.open(readme)
+ var text = file.read_all
+ file.close
+ return text
+ end
+end
+
+# Display the list of active game.
+class ListGames
+ super RpgAction
+
+ # Response page stub.
+ var page: NitRpgPage is noinit
+
+ redef fun answer(request, url) do
+ var games = load_games
+ var response = new HttpResponse(200)
+ page = new NitRpgPage(root_url)
+ page.breadcrumbs = new Breadcrumbs
+ page.breadcrumbs.add_link(root_url / "games", "games")
+ page.flow_panels.add new GamesListPanel(root_url, games)
+ response.body = page.write_to_string
+ return response
+ end
end
# An action that require a game.
var owner = request.param("owner")
var repo_name = request.param("repo")
if owner == null or repo_name == null then
- var msg = "Bad request: should look like /repos/:owner/:repo."
+ var msg = "Bad request: should look like /games/:owner/:repo."
return bad_request(msg)
end
- var repo = new Repo(api, "{owner}/{repo_name}")
- game = new Game(api, repo)
- game.root_url = root_url
- if api.was_error then
+ var game = load_game("{owner}/{repo_name}")
+ if game == null then
var msg = api.last_error.message
return bad_request("Repo Error: {msg}")
end
+ self.game = game
var response = new HttpResponse(200)
page = new NitRpgPage(root_url)
page.side_panels.add new GameStatusPanel(game)
# From where to start the display of events related lists.
var list_from = 0
+
+ # TODO should also check 201, 203 ...
+ private fun is_response_error(response: HttpResponse): Bool do
+ return response.status_code != 200
+ end
end
# Repo overview page.
redef fun answer(request, url) do
var rsp = prepare_response(request, url)
+ if is_response_error(rsp) then return rsp
page.side_panels.add new ShortListPlayersPanel(game)
page.flow_panels.add new PodiumPanel(game)
page.flow_panels.add new EventListPanel(game, list_limit, list_from)
redef fun answer(request, url) do
var rsp = prepare_response(request, url)
+ if is_response_error(rsp) then return rsp
page.breadcrumbs.add_link(game.url / "players", "players")
page.flow_panels.add new ListPlayersPanel(game)
rsp.body = page.write_to_string
redef fun answer(request, url) do
var rsp = prepare_response(request, url)
+ if is_response_error(rsp) then return rsp
var name = request.param("player")
if name == null then
var msg = "Bad request: should look like /:owner/:repo/:players/:name."
page.side_panels.clear
page.side_panels.add new PlayerStatusPanel(game, player)
page.flow_panels.add new PlayerReviewsPanel(game, player)
+ page.flow_panels.add new PlayerWorkPanel(game, player)
page.flow_panels.add new AchievementsListPanel(player)
page.flow_panels.add new EventListPanel(player, list_limit, list_from)
rsp.body = page.write_to_string
redef fun answer(request, url) do
var rsp = prepare_response(request, url)
+ if is_response_error(rsp) then return rsp
page.breadcrumbs.add_link(game.url / "achievements", "achievements")
page.flow_panels.add new AchievementsListPanel(game)
rsp.body = page.write_to_string
redef fun answer(request, url) do
var rsp = prepare_response(request, url)
+ if is_response_error(rsp) then return rsp
var name = request.param("achievement")
if name == null then
var msg = "Bad request: should look like /:owner/:repo/achievements/:achievement."
vh.routes.add new Route("/games/:owner/:repo/achievements/:achievement", new AchievementHome(root))
vh.routes.add new Route("/games/:owner/:repo/achievements", new ListAchievements(root))
vh.routes.add new Route("/games/:owner/:repo", new RepoHome(root))
+vh.routes.add new Route("/games", new ListGames(root))
+vh.routes.add new Route("/", new RpgHome(root))
var fac = new HttpFactory.and_libevent
fac.config.virtual_hosts.add vh
doc/index.html:
../../bin/nitdoc src/pep8analysis.nit
+check: tests
tests: bin/pep8analysis
bin/pep8analysis --cfg-long tests/privat/*.pep tests/micro/*.pep tests/terrasa/*.pep
end
end
-protected fun manager: AnalysisManager do return once new AnalysisManager
+fun manager: AnalysisManager do return once new AnalysisManager
end
if current_in != null then
- in_set(block) = current_in.as(not null)
+ in_set(block) = current_in
else
continue
end
var old_out = out_set(block)
for line in block.lines do
- self.current_in = current_in.as(not null)
+ self.current_in = current_in
self.current_out = empty_set
pre_line_visit(line)
enter_visit(line)
module calculator_android is
app_name "app.nit Calc."
app_version(0, 1, git_revision)
- java_package "org.nitlanguage.calculator"
+ app_namespace "org.nitlanguage.calculator"
# Lock in portrait mode
android_manifest_activity """android:screenOrientation="portrait""""
# limitations under the License.
module dino_android is
- java_package("org.nitlanguage.dino")
+ app_namespace "org.nitlanguage.dino"
end
import dino
# limitations under the License.
module complete_simple_android is
- java_package("org.nitlanguage.test_all")
- target_api_version(19)
+ app_namespace "org.nitlanguage.test_all"
+ target_api_version 19
end
import test_bundle
while frontier_node != self do
path.nodes.unshift(frontier_node)
- frontier_node = frontier_node.best_source.as(not null)
+ frontier_node = frontier_node.best_source
+ assert frontier_node != null
end
return path
problem.backtrack(state, a)
node = node.parent
+ assert node != null
continue
end
if x < width-1 then res.add(1)
if y >= 1 then res.add(-width)
if y < width-1 then res.add(width)
- return res.as_random.take_all
+ return res
end
# Return the state where the tile at hole+action has moved
print "result:{state}"
for n in path do
var a = n.action
- if a != null then print " + {a or else ""}"
+ if a != null then print " + {a}"
print " {n.steps}: {n.state} ({n.cost}$)"
end
end
Example: `app_name "My App"`
-* `java_package` specifies the package used by the generated Java
+* `app_namespace` specifies the package used by the generated Java
classes and the APK file. Once the application is published, this
value should not be changed. By default, the compiler will use
the package `org.nitlanguage.{module_name}`.
# used to tag `ldflags` annotations.
module aware is
new_annotation android
- new_annotation java_package
new_annotation min_api_version
new_annotation max_api_version
new_annotation target_api_version
# Test for app.nit's UI services
module ui_test is
- app_name("app.nit UI test")
+ app_name "app.nit UI test"
app_version(0, 1, git_revision)
- java_package("org.nitlanguage.ui_test")
+ app_namespace "org.nitlanguage.ui_test"
android_manifest_activity """android:theme="@android:style/Theme.Light""""
end
end
# Allows user to get values with enum-like syntax : `intent_action.main`
-protected fun intent_action: Action do return once new Action
+fun intent_action: Action do return once new Action
# Allows user to get values with enum-like syntax : `intent_category.home`
-protected fun intent_category: Category do return once new Category
+fun intent_category: Category do return once new Category
# Allows user to get values with enum-like syntax : `intent_flag.activity_brought_to_front`
-protected fun intent_flag: Flag do return once new Flag
+fun intent_flag: Flag do return once new Flag
private class StringCopyArray
var collection = new Array[String]
`}
# Default Android log priority
-protected fun priority_default: Int do return 1
+fun priority_default: Int do return 1
# Verbose Android log priority
-protected fun priority_verbose: Int do return 2
+fun priority_verbose: Int do return 2
# Debug Android log priority
-protected fun priority_debug: Int do return 3
+fun priority_debug: Int do return 3
# Info Android log priority
-protected fun priority_info: Int do return 4
+fun priority_info: Int do return 4
# Warn Android log priority
-protected fun priority_warn: Int do return 5
+fun priority_warn: Int do return 5
# Error Android log priority
-protected fun priority_error: Int do return 6
+fun priority_error: Int do return 6
# Fatal Android log priority
-protected fun priority_fatal: Int do return 7
+fun priority_fatal: Int do return 7
# Silent Android log priority
-protected fun priority_silent: Int do return 8
+fun priority_silent: Int do return 8
# Write `text` to Android log at priority `level` with tag `tag`
-protected fun log_write(level: Int, tag, text: NativeString) `{
+fun log_write(level: Int, tag, text: NativeString) `{
__android_log_write(level, tag, text);
`}
module app_base is
new_annotation app_name
+ new_annotation app_namespace
new_annotation app_version
end
fun window_closing do end
end
-protected fun app: App do return once new App
+fun app: App do return once new App
app.setup
app.run
for e in es do inc(e)
end
+ # Decrement the value of `e` by 1
+ fun dec(e: E) do
+ if not has_key(e) then
+ self.map[e] = 0
+ else
+ self.map[e] = self[e] - 1
+ sum += - 1
+ end
+ end
+
+ # Decrement the value for each element of `es`
+ fun dec_all(es: Collection[E])
+ do
+ for e in es do dec(e)
+ end
+
# A new Counter initialized with `inc_all`.
init from(es: Collection[E])
do
end
end
-protected fun egl_bind_opengl_api: Bool `{ return eglBindAPI(EGL_OPENGL_API); `}
-protected fun egl_bind_opengl_es_api: Bool `{ return eglBindAPI(EGL_OPENGL_ES_API); `}
-protected fun egl_bind_openvg_api: Bool `{ return eglBindAPI(EGL_OPENVG_API); `}
+fun egl_bind_opengl_api: Bool `{ return eglBindAPI(EGL_OPENGL_API); `}
+fun egl_bind_opengl_es_api: Bool `{ return eglBindAPI(EGL_OPENGL_ES_API); `}
+fun egl_bind_openvg_api: Bool `{ return eglBindAPI(EGL_OPENVG_API); `}
abstract class QuadTree[E: Boxed[Numeric]]
super BoxedCollection[E]
- protected var center: nullable Point[Numeric]
+ protected var center: nullable Point[Numeric] = null
var data: Array[E] = new Array[E]
# ________________
# | 0 | 3 |
# |_______|_______|
- protected var child0: nullable QuadTree[E]
- protected var child1: nullable QuadTree[E]
- protected var child2: nullable QuadTree[E]
- protected var child3: nullable QuadTree[E]
+ protected var child0: nullable QuadTree[E] = null
+ protected var child1: nullable QuadTree[E] = null
+ protected var child2: nullable QuadTree[E] = null
+ protected var child3: nullable QuadTree[E] = null
# represent the threshold before subdividing the node
- protected var item_limit = 4
- protected var parent_node: nullable QuadTree[E]
-
- # create the quadtree and set the item limit for each node
- init(limit: Int)
- do
- self.item_limit = limit
- end
+ protected var item_limit: Int
+ protected var parent_node: nullable QuadTree[E] = null
# create a node, giving him self as a parent. Used to create children nodes
init with_parent(limit: Int, parent: QuadTree[E])
end
redef fun items_overlapping(region :Boxed[Numeric]): SimpleCollection[E] do
- var res = new Array[E]
- items_overlapping_in(region,res)
- return res
- end
+ var res = new Array[E]
+ items_overlapping_in(region,res)
+ return res
+ end
# add the item to the tree, create children if the limit is reached
redef fun add(item: E) do if self.is_leaf then self.data.add(item) else add_to_children(item)
else if self.center.y > item.top then
self.data.add(item)
else if self.center.y < item.bottom then
- self.data.add(item)
+ self.data.add(item)
else
self.data.add(item)
end
# the center of the parent node
class SQuadTree[E: Boxed[Numeric]]
super QuadTree[E]
-
+
# the width of the current node of the QuadTree
var width: Numeric
# the height of the current node of the QuadTree
var height: Numeric
- init(l: Int, c: Point[Numeric], w: Numeric, h: Numeric)
- do
- self.item_limit = l
- self.center = c
- self.width = w
- self.height = h
- end
-
init with_parent(l: Int, c: Point[Numeric], w: Numeric, h: Numeric, p: QuadTree[E])
do
- init(l, c, w, h)
+ init(l, w, h)
+ center = c
self.parent_node = p
end
if obj isa JsonObject then
if obj.keys.has("message") then
var title = "GithubAPIError"
- var msg = obj["message"].to_s or else ""
+ var msg = obj["message"].to_s
var err = new GithubError(msg, title)
err.json["requested_uri"] = uri
err.json["status_code"] = response.status_code
end
end
-protected fun assert_no_gl_error
+fun assert_no_gl_error
do
var error = gl.error
if not error.is_ok then
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# HTML templates for Bootstrap components.
+#
+# See http://getbootstrap.com/components/
+module bootstrap
+
+import template
+
+# Bootstrap component abstraction.
+#
+# Mainly used to factoryze CSS treatments.
+# Can be used in the future to handle generic stuff like attributes or escaping.
+#
+# TODO merge with html::HTMTag without init conflict?
+# HTMLTag requires the main init to pass a tagname,
+# this was so much verbose here.
+abstract class BSComponent
+ super Template
+
+ # CSS classes to add on this element.
+ var css_classes = new Array[String]
+
+ # Render `self` css clases as a `class` attribute.
+ fun render_css_classes: String do
+ if css_classes.is_empty then return ""
+ return " class=\"{css_classes.join(" ")}\""
+ end
+end
+
+# A `<a>` tag.
+#
+# Not really a Bootstrap component but used in other components
+# that it required its own abstraction.
+#
+# Example:
+# ~~~
+# var lnk = new Link("http://nitlanguage.org", "Nit")
+# assert lnk.write_to_string == "<a href=\"http://nitlanguage.org\">Nit</a>"
+# ~~~
+#
+# Creates a link with a title attribute:
+# ~~~
+# lnk = new Link.with_title("http://nitlanguage.org", "Nit", "Nit homepage")
+# assert lnk.write_to_string == "<a href=\"http://nitlanguage.org\" title=\"Nit homepage\">Nit</a>"
+# ~~~
+class Link
+ super BSComponent
+
+ # URL pointed by this link.
+ var href: String is writable
+
+ # Displayed text.
+ var text: Writable is writable
+
+ # Optional title.
+ var title: nullable String is noinit, writable
+
+ # Creates a link with a `title` attribute.
+ init with_title(href: String, text: Writable, title: nullable String) do
+ self.href = href
+ self.text = text
+ self.title = title
+ end
+
+ redef fun rendering do
+ add "<a{render_css_classes} href=\"{href}\""
+ if title != null then add " title=\"{title.write_to_string}\""
+ add ">{text}</a>"
+ end
+end
+
+# A `<h1>` to `<h6>` tag.
+#
+# Not really a Bootstrap component but used in other components
+# that it required its own abstraction.
+#
+# Example:
+# ~~~
+# var h1 = new Header(1, "Title")
+# assert h1.write_to_string == "<h1>Title</h1>"
+# ~~~
+#
+# With subtext:
+# ~~~
+# var h6 = new Header.with_subtext(6, "Title", "with subtext")
+# assert h6.write_to_string == "<h6>Title<small>with subtext</small></h6>"
+# ~~~
+class Header
+ super BSComponent
+
+ # Header level between 1 and 6.
+ var level: Int
+
+ # Displayed text.
+ var text: Writable
+
+ # Optional subtext.
+ var subtext: nullable Writable is noinit, writable
+
+ # Creates a link with a `title` attribute.
+ init with_subtext(level: Int, text: Writable, subtext: String) do
+ self.level = level
+ self.text = text
+ self.subtext = subtext
+ end
+
+ redef fun rendering do
+ add "<h{level}{render_css_classes}>{text.write_to_string}"
+ if subtext != null then add "<small>{subtext.write_to_string}</small>"
+ add "</h{level}>"
+ end
+end
+
+# An abstract HTML list.
+#
+# Many Bootstrap components are built around a HTML list.
+#
+# Used to factorize behavior between OrderedList and UnorderedList.
+abstract class HTMLList
+ super BSComponent
+
+ # A list contains `<li>` tags as children.
+ #
+ # See ListItem.
+ var items = new Array[ListItem]
+
+ # Adds a new ListItem to `self`.
+ fun add_li(item: ListItem) do items.add item
+
+ # Does `self` contains no items?
+ fun is_empty: Bool do return items.is_empty
+end
+
+# A `<ol>` list tag.
+#
+# Example:
+#
+# ~~~
+# var lst = new OrderedList
+# lst.add_li(new ListItem("foo"))
+# lst.add_li(new ListItem("bar"))
+# lst.add_li(new ListItem("baz"))
+#
+# assert lst.write_to_string == """
+# <ol>
+# <li>foo</li>
+# <li>bar</li>
+# <li>baz</li>
+# </ol>
+# """
+# ~~~
+class OrderedList
+ super HTMLList
+
+ redef fun rendering do
+ addn "<ol{render_css_classes}>"
+ for item in items do add item
+ addn "</ol>"
+ end
+end
+
+# A `<ul>` list tag.
+#
+# Example:
+#
+# ~~~
+# var lst = new UnorderedList
+# lst.add_li(new ListItem("foo"))
+# lst.add_li(new ListItem("bar"))
+# lst.add_li(new ListItem("baz"))
+#
+# assert lst.write_to_string == """
+# <ul>
+# <li>foo</li>
+# <li>bar</li>
+# <li>baz</li>
+# </ul>
+# """
+# ~~~
+class UnorderedList
+ super HTMLList
+
+ redef fun rendering do
+ addn "<ul{render_css_classes}>"
+ for item in items do add item
+ addn "</ul>"
+ end
+end
+
+# A `<li>` tag.
+class ListItem
+ super BSComponent
+
+ # Content to display in this list item.
+ var text: Writable is writable
+
+ redef fun rendering do addn "<li{render_css_classes}>{text.write_to_string}</li>"
+end
+
+# A Boostrap icon.
+#
+# See http://getbootstrap.com/components/#glyphicons
+#
+# Example:
+#
+# ~~~
+# var icon = new BSIcon("star")
+# assert icon.write_to_string == "<span class=\"glyphicon glyphicon-star\" aria-hidden=\"true\"></span>"
+# ~~~
+class BSIcon
+ super BSComponent
+
+ # Glyphicon name to display.
+ #
+ # See full list at http://getbootstrap.com/components/#glyphicons.
+ var icon: String
+
+ init do css_classes.add "glyphicon glyphicon-{icon}"
+
+ redef fun rendering do
+ add "<span{render_css_classes} aria-hidden=\"true\"></span>"
+ end
+end
+
+# A Bootstrap breadcrumbs component.
+#
+# See http://getbootstrap.com/components/#breadcrumbs
+#
+# Example:
+#
+# ~~~
+# var bc = new BSBreadCrumbs
+# bc.add_li(new ListItem("foo"))
+# bc.add_li(new ListItem("bar"))
+# bc.add_li(new ListItem("baz"))
+#
+# assert bc.write_to_string == """
+# <ol class=\"breadcrumbs\">
+# <li>foo</li>
+# <li>bar</li>
+# <li class=\"active\">baz</li>
+# </ol>
+# """
+# ~~~
+class BSBreadCrumbs
+ super OrderedList
+
+ init do css_classes.add "breadcrumbs"
+
+ redef fun rendering do
+ items.last.css_classes.add "active"
+ super
+ end
+end
+
+# A Bootstrap label component.
+#
+# See http://getbootstrap.com/components/#labels
+#
+# Example:
+#
+# ~~~
+# var lbl = new BSLabel("danger", "Danger!")
+# assert lbl.write_to_string == "<span class=\"label label-danger\">Danger!</span>"
+# ~~~
+class BSLabel
+ super BSComponent
+
+ # Class used to change the color of the label.
+ #
+ # Can be one of `default`, `primary`, `success`, `info`, `warning` or `danger`.
+ var color: String
+
+ # Text to display in the label.
+ var text: Writable
+
+ init do css_classes.add "label label-{color}"
+
+ redef fun rendering do
+ add "<span{render_css_classes}>{text.write_to_string}</span>"
+ end
+end
+
+# A Bootstrap badge component.
+#
+# See http://getbootstrap.com/components/#badges
+#
+# Example:
+#
+# ~~~
+# var b = new BSBadge("42 messages")
+# assert b.write_to_string == "<span class=\"badge\">42 messages</span>"
+# ~~~
+class BSBadge
+ super BSComponent
+
+ # Text to display in the label.
+ var text: Writable
+
+ init do css_classes.add "badge"
+
+ redef fun rendering do
+ add "<span{render_css_classes}>{text.write_to_string}</span>"
+ end
+end
+
+# A Bootstrap page header component.
+#
+# See http://getbootstrap.com/components/#page-header
+#
+# Example:
+#
+# ~~~
+# var h = new BSPageHeader("Welcome")
+# assert h.write_to_string == """
+# <div class=\"page-header\">
+# Welcome
+# </div>
+# """
+# ~~~
+class BSPageHeader
+ super BSComponent
+
+ # Text to display as title.
+ var text: Writable
+
+ init do css_classes.add "page-header"
+
+ redef fun rendering do
+ addn "<div{render_css_classes}>"
+ addn text.write_to_string
+ addn "</div>"
+ end
+end
+
+# A Bootstrap alert component.
+#
+# See http://getbootstrap.com/components/#alerts
+#
+# Example:
+#
+# ~~~
+# var alert = new BSAlert("danger", "Danger!")
+# assert alert.write_to_string == """
+# <div class="alert alert-danger">
+# Danger!
+# </div>
+# """
+# ~~~
+class BSAlert
+ super BSComponent
+
+ # Class used to change the color of the alert.
+ #
+ # Can be one of `primary`, `success`, `info`, `warning` or `danger`.
+ var color: String
+
+ # Text to display in the alert.
+ var text: Writable
+
+ # Can the alert be dismissed by clicking the close button?
+ #
+ # See http://getbootstrap.com/components/#alerts-dismissible
+ #
+ # Default is `false`.
+ var is_dismissible = false
+
+ init do css_classes.add "alert alert-{color}"
+
+ redef fun rendering do
+ addn "<div{render_css_classes}>"
+ if is_dismissible then
+ add "<button type=\"button\" class=\"close\" data-dismiss=\"alert\""
+ add "aria-label=\"Close\"><span aria-hidden=\"true\">×</span>"
+ addn "</button>"
+ end
+ addn text.write_to_string
+ addn "</div>"
+ end
+end
+
+# A Bootstrap panel component.
+#
+# See http://getbootstrap.com/components/#panels
+#
+# Example:
+#
+# ~~~
+# var p = new BSPanel("default", "Panel content")
+#
+# assert p.write_to_string == """
+# <div class="panel panel-default">
+# <div class="panel-body">
+# Panel content
+# </div>
+# </div>
+# """
+# ~~~
+#
+# Panel with heading:
+#
+# ~~~
+# p = new BSPanel("danger", "Panel content")
+# p.heading = "Panel heading"
+#
+# assert p.write_to_string == """
+# <div class="panel panel-danger">
+# <div class="panel-heading">
+# Panel heading
+# </div>
+# <div class="panel-body">
+# Panel content
+# </div>
+# </div>
+# """
+# ~~~
+class BSPanel
+ super BSComponent
+
+ # Panel color.
+ #
+ # Can be one of `default`, `primary`, `success`, `info`, `warning` or `danger`.
+ var color: String
+
+ # Panel header if any.
+ var heading: nullable Writable is noinit, writable
+
+ # Body to display in the panel.
+ var body: Writable
+
+ # Panel footer is any.
+ var footer: nullable Writable is noinit, writable
+
+ init do css_classes.add "panel panel-{color}"
+
+ redef fun rendering do
+ addn "<div{render_css_classes}>"
+ if heading != null then
+ addn "<div class=\"panel-heading\">"
+ addn heading.write_to_string
+ addn "</div>"
+ end
+ addn "<div class=\"panel-body\">"
+ addn body.write_to_string
+ addn "</div>"
+ if footer != null then
+ addn "<div class=\"panel-footer\">"
+ addn footer.write_to_string
+ addn "</div>"
+ end
+ addn "</div>"
+ end
+end
# limitations under the License.
# Simple iOS app with a single label
-module hello_ios
+module hello_ios is
+ app_name "Hello iOS"
+ app_namespace "nit.app.hello_ios"
+ app_version(0, 5, git_revision)
+end
import ios
redef class String
# returns the md5 digest of the receiver string
# algorithm implemented by L. Peter Deutsch <ghost@aladdin.com>
- fun md5: String import String.to_cstring, NativeString.to_s, String.print `{
+ fun md5: String import String.to_cstring, NativeString.to_s `{
md5_state_t state;
md5_byte_t digest[16]; /* result */
char *hex_output = malloc(33*sizeof(char));
GLenum mnit_opengles_error_code;
- struct mnit_opengles_Texture *mnit_opengles_load_image( const uint_least32_t *pixels, int width, int height, int has_alpha );
+ struct mnit_opengles_Texture *mnit_opengles_load_image(
+ const uint_least32_t *pixels, int width, int height,
+ int width_pow2, int height_pow2, int has_alpha);
`}
in "C" `{
- #define LOGW(...) ((void)fprintf(stderr, "# warn: %s (%i)\n", __VA_ARGS__))
- #ifdef DEBUG
- #define LOGI(...) ((void)fprintf(stderr, "# info: %s (%i)\n", __VA_ARGS__))
- #else
- #define LOGI(...) (void)0
- #endif
-
extern NativeWindowType mnit_window;
extern EGLNativeDisplayType mnit_native_display;
{1.0f, 0.0f}
};
- struct mnit_opengles_Texture *mnit_opengles_load_image( const uint_least32_t *pixels, int width, int height, int has_alpha )
+ struct mnit_opengles_Texture *mnit_opengles_load_image(
+ const uint_least32_t *pixels, int width, int height,
+ int width_pow2, int height_pow2, int has_alpha)
{
struct mnit_opengles_Texture *image = malloc(sizeof(struct mnit_opengles_Texture));
int format = has_alpha? GL_RGBA: GL_RGB;
image->src_xo = 0;
image->src_yo = 0;
- image->src_xi = 1.0;
- image->src_yi = 1.0;
+ image->src_xi = ((float)width)/width_pow2;
+ image->src_yi = ((float)height)/height_pow2;
if ((mnit_opengles_error_code = glGetError()) != GL_NO_ERROR) {
- LOGW("error loading image after malloc", mnit_opengles_error_code);
+ PRINT_ERROR("error loading image after malloc: %i", mnit_opengles_error_code);
}
glGenTextures(1, &image->texture);
if ((mnit_opengles_error_code = glGetError()) != GL_NO_ERROR) {
- LOGW("error loading image after glGenTextures", mnit_opengles_error_code);
+ PRINT_ERROR("error loading image after glGenTextures: %i", mnit_opengles_error_code);
}
glBindTexture(GL_TEXTURE_2D, image->texture);
if ((mnit_opengles_error_code = glGetError()) != GL_NO_ERROR) {
- LOGW("error loading image glBindTexture", mnit_opengles_error_code);
+ PRINT_ERROR("error loading image glBindTexture: %i", mnit_opengles_error_code);
}
- glTexImage2D( GL_TEXTURE_2D, 0, format, width, height,
+ glTexImage2D( GL_TEXTURE_2D, 0, format, width_pow2, height_pow2,
0, format, GL_UNSIGNED_BYTE, (GLvoid*)pixels);
if ((mnit_opengles_error_code = glGetError()) != GL_NO_ERROR) {
- LOGW("error loading image after glTexImage2D", mnit_opengles_error_code);
+ PRINT_ERROR("error loading image after glTexImage2D: %i", mnit_opengles_error_code);
}
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
if ((mnit_opengles_error_code = glGetError()) != GL_NO_ERROR) {
- LOGW("error loading image after gtTexParameter", mnit_opengles_error_code);
+ PRINT_ERROR("error loading image after gtTexParameter: %i", mnit_opengles_error_code);
}
return image;
EGLDisplay display = eglGetDisplay(mnit_native_display);
if ( display == EGL_NO_DISPLAY) {
- LOGW("Unable to eglGetDisplay", 0);
+ PRINT_ERROR("Unable to eglGetDisplay");
return -1;
}
if ( eglInitialize(display, 0, 0) == EGL_FALSE) {
- LOGW("Unable to eglInitialize", 0);
+ PRINT_ERROR("Unable to eglInitialize");
return -1;
}
if ( eglChooseConfig(display, attribs, &config, 1, &numConfigs) == EGL_FALSE) {
- LOGW("Unable to eglChooseConfig", 0);
+ PRINT_ERROR("Unable to eglChooseConfig");
return -1;
}
if ( numConfigs == 0 ) {
- LOGW("No configs available for egl", 0);
+ PRINT_ERROR("No configs available for egl");
return -1;
}
if ( eglGetConfigAttrib(display, config, EGL_NATIVE_VISUAL_ID, &format) == EGL_FALSE) {
- LOGW("Unable to eglGetConfigAttrib", 0);
+ PRINT_ERROR("Unable to eglGetConfigAttrib");
return -1;
}
context = eglCreateContext(display, config, NULL, NULL);
if (eglMakeCurrent(display, surface, surface, context) == EGL_FALSE) {
- LOGW("Unable to eglMakeCurrent", 0);
+ PRINT_ERROR("Unable to eglMakeCurrent");
return -1;
}
mnit_width = w;
mnit_height = h;
- LOGI("surface", (int)surface);
- LOGI("display", (int)display);
- LOGI("width", w);
- LOGI("height", h);
-
glViewport(0, 0, mnit_width, mnit_height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glDisable(GL_TEXTURE_2D);
if ((mnit_opengles_error_code = glGetError()) != GL_NO_ERROR) {
- LOGW("error drawing", mnit_opengles_error_code);
+ PRINT_ERROR("error drawing: %i", mnit_opengles_error_code);
}
`}
glDisable(GL_TEXTURE_2D);
if ((mnit_opengles_error_code = glGetError()) != GL_NO_ERROR) {
- LOGW("error drawing", mnit_opengles_error_code);
+ PRINT_ERROR("error drawing: %i", mnit_opengles_error_code);
}
`}
glDisable(GL_TEXTURE_2D);
if ((mnit_opengles_error_code = glGetError()) != GL_NO_ERROR) {
- LOGW("error drawing", mnit_opengles_error_code);
+ PRINT_ERROR("error drawing: %i", mnit_opengles_error_code);
}
`}
image->scale = recv->scale;
image->blended = recv->blended;
- image->src_xo = ((float)x)/recv->width;
- image->src_yo = ((float)y)/recv->height;
- image->src_xi = ((float)x+w)/recv->width;
- image->src_yi = ((float)y+h)/recv->height;
+ float r_dx = recv->src_xi - recv->src_xo;
+ float r_dy = recv->src_yi - recv->src_yo;
+ image->src_xo = recv->src_xo + ((float)x)/recv->width*r_dx;
+ image->src_yo = recv->src_yo + ((float)y)/recv->height*r_dy;
+ image->src_xi = recv->src_xo + ((float)x+w)/recv->width*r_dx;
+ image->src_yi = recv->src_yo + ((float)y+h)/recv->height*r_dy;
return Opengles1Image_as_Image( image );
`}
var a = load_asset_from_apk(path)
if a != null then
if path.file_extension == "png" then
- var png = new Opengles1Image.from_android_asset(a)
+ var png = new Opengles1Image.from_android_asset(a)
a.close
return png
else if path.file_extension == "txt" then
redef class Opengles1Image
# Read a png from a zipped stream
- new from_android_asset(asset: AndroidAsset) is extern `{
+ new from_android_asset(asset: AndroidAsset) import Int.next_pow `{
struct mnit_opengles_Texture *recv = NULL;
png_structp png_ptr = NULL;
unsigned char *pixels = NULL;
unsigned int i;
+ png_uint_32 width_pow2, height_pow2;
+ unsigned int row_bytes_pow2;
+
unsigned char sig[8];
int sig_read = AAsset_read(asset, sig, 8);
if (png_sig_cmp(sig, 0, sig_read)) {
LOGW("invalide png signature");
return NULL;
}
-
+
png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
if (png_ptr == NULL) {
LOGW("png_create_read_struct failed");
png_read_update_info(png_ptr, info_ptr);
}
- LOGW("w: %i, h: %i", width, height);
+ width_pow2 = Int_next_pow(width, 2);
+ height_pow2 = Int_next_pow(height, 2);
+
+ LOGW("Loading image of w: %i, h: %i, w2: %d, h2: %d",
+ width, height, width_pow2, height_pow2);
row_bytes = png_get_rowbytes(png_ptr, info_ptr);
- pixels = malloc(row_bytes * height);
- row_pointers = (png_bytep*) malloc(sizeof(png_bytep) * height);
+ row_bytes_pow2 = row_bytes * width_pow2 / width;
+ pixels = malloc(row_bytes_pow2 * height_pow2);
+ row_pointers = (png_bytep*)malloc(sizeof(png_bytep) * height_pow2);
for (i=0; i<height; i++)
row_pointers[i] = (png_byte*) malloc(row_bytes);
png_read_image(png_ptr, row_pointers);
for (i = 0; i < height; i++)
- memcpy(pixels + (row_bytes*i),
- row_pointers[i], row_bytes);
+ memcpy(pixels + (row_bytes_pow2*i), row_pointers[i], row_bytes);
+
+ recv = mnit_opengles_load_image((const uint_least32_t *)pixels,
+ width, height, width_pow2, height_pow2, has_alpha);
- recv = mnit_opengles_load_image((const uint_least32_t *)pixels, width, height, has_alpha);
- LOGW("OK");
+ // Calculate the size of the client-side memory allocated and freed
+ float size = ((float)row_bytes_pow2) * height_pow2/1024.0/1024.0;
+ static float total_size = 0;
+ total_size += size;
+ LOGI("Loaded OK %fmb out of %fmb", size, total_size);
close_png_ptr:
if (info_ptr != NULL)
return recv;
`}
end
+
+redef universal Int
+ # The first power of `exp` greater or equal to `self`
+ private fun next_pow(exp: Int): Int
+ do
+ var p = 0
+ while p < self do p = p*exp
+ return p
+ end
+end
redef extern class Opengles1Image
new from_sdl_image( sdl_image: SDLImage ) is extern `{
- return mnit_opengles_load_image( sdl_image->pixels, sdl_image->w, sdl_image->h, sdl_image->format->Amask );
+ return mnit_opengles_load_image( sdl_image->pixels,
+ sdl_image->w, sdl_image->h,
+ sdl_image->w, sdl_image->h, sdl_image->format->Amask );
`}
# using sdl
fprintf(stderr, "SDL failed to load image <%s>: %s\n", String_to_cstring(path), IMG_GetError());
return NULL;
} else {
- opengles_image = mnit_opengles_load_image( sdl_image->pixels, sdl_image->w, sdl_image->h, sdl_image->format->Amask );
+ opengles_image = mnit_opengles_load_image( sdl_image->pixels,
+ sdl_image->w, sdl_image->h,
+ sdl_image->w, sdl_image->h, sdl_image->format->Amask );
SDL_FreeSurface(sdl_image);
return opengles_image;
}
# redef fun start_document do
# # save the location of the start of the document
# # for future use.
-# start_loc = new SAXLocatorImpl.with(locator)
+# start_loc = new SAXLocatorImpl.from(locator)
# end
# end
#
# Parameters:
#
# * `locator`: locator to copy.
- init with(locator: SAXLocator) do
+ init from(locator: SAXLocator) do
public_id = locator.public_id
system_id = locator.system_id
line_number = locator.line_number
# caused the error or warning.
# * `column_number`: column number of the end of the text that
# caused the error or warning.
- init with(message: String, public_id: nullable String,
+ init with_info(message: String, public_id: nullable String,
system_id: nullable String, line_number: Int, column_number: Int) do
init(message)
self.public_id = public_id
expected.document_locator = new SAXLocatorImpl
expected.start_document
expected.start_element("", "a", "a", new AttributesImpl)
- expected.fatal_error(new SAXParseException.with(
+ expected.fatal_error(new SAXParseException.with_info(
"The type in the closing tag (`b`) does not match the type " +
"in the opening tag (`a`).", null, null, 1, 8))
expected.end_document
end
# Hang up detected on controlling terminal or death of controlling process
-protected fun sighup: Int do return 1
+fun sighup: Int do return 1
# Issued if the user sends an interrupt signal
-protected fun sigint: Int do return 2
+fun sigint: Int do return 2
# Issued if the user sends a quit signal
-protected fun sigquit: Int do return 3
+fun sigquit: Int do return 3
# Issued if the user attempts to execute an illegal, malformed, unknown, or privileged instruction
-protected fun sigill: Int do return 4
+fun sigill: Int do return 4
# Issued when an exception occurs: a condition that a debugger has requested to be informed of
-protected fun sigtrap: Int do return 5
+fun sigtrap: Int do return 5
# This signal is sent to a process to tell it to abort, i. e. to terminate
-protected fun sigabrt: Int do return 6
+fun sigabrt: Int do return 6
# This signal is sent to a process when it causes a bus error
-protected fun sigbus: Int do return 7
+fun sigbus: Int do return 7
# Issued if an illegal mathematical operation is attempted
-protected fun sigfpe: Int do return 8
+fun sigfpe: Int do return 8
# If a process gets this signal it must quit immediately and will not perform any clean-up operations
-protected fun sigkill: Int do return 9
+fun sigkill: Int do return 9
# Sent to a process to indicate user-defined conditions
-protected fun sigusr1: Int do return 10
+fun sigusr1: Int do return 10
# Sent to a process when it makes an invalid virtual memory reference, or segmentation fault
-protected fun sigsegv: Int do return 11
+fun sigsegv: Int do return 11
# Sent to a process to indicate user-defined conditions
-protected fun sigusr2: Int do return 12
+fun sigusr2: Int do return 12
# Sent to a process when it attempts to write to a pipe without a process connected to the other end
-protected fun sigpipe: Int do return 13
+fun sigpipe: Int do return 13
# Alarm Clock signal
-protected fun sigalarm: Int do return 14
+fun sigalarm: Int do return 14
# Software termination signal
-protected fun sigterm: Int do return 15
+fun sigterm: Int do return 15
# Sent to a process when a child process terminates or is interrupted
-protected fun sigchild: Int do return 17
+fun sigchild: Int do return 17
# Tell the operating system to continue (restart) a process previously paused by the SIGSTOP or SIGTSTP signal
-protected fun sigcont: Int do return 18
+fun sigcont: Int do return 18
# Tell the operating system to stop a process
-protected fun sigstop: Int do return 19
+fun sigstop: Int do return 19
# Sent to a process by its terminal to request it to stop temporarily
-protected fun sigtstp: Int do return 20
+fun sigtstp: Int do return 20
# Sent to a process when a socket has urgent or out-of-band data available to read
-protected fun sigurg: Int do return 23
+fun sigurg: Int do return 23
# Sent to a process when it has used the CPU for a duration that exceeds a user-settable value
-protected fun sigxcpu: Int do return 24
+fun sigxcpu: Int do return 24
# Sent to a process when it grows a file larger than the maximum allowed size
-protected fun sigxfsz: Int do return 25
+fun sigxfsz: Int do return 25
# Virtual timer expired
-protected fun sigvtalrm: Int do return 26
+fun sigvtalrm: Int do return 26
# Profiling timer expired
-protected fun sigprof: Int do return 27
+fun sigprof: Int do return 27
# Sent to a process when its controlling terminal changes its window size
-protected fun sigwinch: Int do return 28
+fun sigwinch: Int do return 28
# Sent to a process when the system experiences a power failure
-protected fun sigpwr: Int do return 30
+fun sigpwr: Int do return 30
# Sent to a process when it passes a bad argument to a system call
-protected fun sigsys: Int do return 31
+fun sigsys: Int do return 31
closed = true
return
end
- addrin = new NativeSocketAddrIn.with(port, new NativeSocketAddressFamilies.af_inet)
+ addrin = new NativeSocketAddrIn.with_port(port, new NativeSocketAddressFamilies.af_inet)
address = addrin.address
# Bind it
return sai;
`}
- new with(port: Int, family: NativeSocketAddressFamilies) `{
+ new with_port(port: Int, family: NativeSocketAddressFamilies) `{
struct sockaddr_in *sai = NULL;
sai = malloc(sizeof(struct sockaddr_in));
sai->sin_family = family;
# This module introduces the standard array structure.
# It also implements two other abstract collections : ArrayMap and ArraySet
-module array
+module array is
+ no_warning "useless-type-test" # to avoid warning with nitc while compiling with c_src
+end
import abstract_collection
private var free_iterator: nullable ArrayIterator[E] = null
redef fun reverse_iterator do return new ArrayReverseIterator[E](self)
+
+ # Returns a sub-array containing `count` elements starting from `from`.
+ #
+ # For most cases (see other case bellow),
+ # the first element is `from` and
+ # the last element is `from+count-1`.
+ #
+ # ~~~
+ # var a = [10, 20, 30, 40, 50]
+ # assert a.sub(0, 3) == [10, 20, 30]
+ # assert a.sub(3, 2) == [40, 50]
+ # assert a.sub(3, 1) == [40]
+ # ~~~
+ #
+ # If `count` is 0 or negative then an empty array is returned
+ #
+ # ~~~
+ # assert a.sub(3,0).is_empty
+ # assert a.sub(3,-1).is_empty
+ # ~~~
+ #
+ # If `from < 0` or `from+count>length` then inexistent elements are ignored.
+ # In this case the length of the result is lower than count.
+ #
+ # ~~~
+ # assert a.sub(-2, 4) == [10, 20]
+ # assert a.sub(4, 99) == [50]
+ # assert a.sub(-9, 99) == [10,20,30,40,50]
+ # assert a.sub(-99, 9).is_empty
+ # ~~~
+ fun sub(from: Int, count: Int): Array[E] do
+ if from < 0 then
+ count += from
+ from = 0
+ end
+ if count < 0 then
+ count = 0
+ end
+ var to = from + count
+ if to > length then
+ to = length
+ end
+ var res = new Array[E].with_capacity(to - from)
+ while from < to do
+ res.add(self[from])
+ from += 1
+ end
+ return res
+ end
end
# Resizable one dimension array of objects.
redef fun compare(a, b) do return a <=> b
end
+# This comparator uses the operator `<=>` to compare objects in a reverse order.
+#
+# See `default_reverse_comparator` for an easy-to-use general stateless reverse
+# default comparator.
+class DefaultReverseComparator
+ super Comparator
+
+ redef type COMPARED: Comparable
+
+ # Returns `b <=> a`.
+ redef fun compare(a, b) do return b <=> a
+end
+
# Easy-to-use general stateless default comparator that uses `<=>` to compare things.
fun default_comparator: DefaultComparator do return once new DefaultComparator
+
+# Easy-to-use general stateless default reverse comparator.
+#
+# Does the same as `default_comparator` but in reverse order.
+fun default_reverse_comparator: DefaultReverseComparator do
+ return once new DefaultReverseComparator
+end
private var file: nullable NativeFile = null
# The status of a file. see POSIX stat(2).
- fun file_stat: NativeFileStat do return _file.file_stat
+ #
+ # var f = new FileReader.open("/etc/issue")
+ # assert f.file_stat.is_file
+ #
+ # Return null in case of error
+ fun file_stat: nullable FileStat
+ do
+ var stat = _file.file_stat
+ if stat.address_is_null then return null
+ return new FileStat(stat)
+ end
# File descriptor of this file
fun fd: Int do return _file.fileno
# Open the same file again.
# The original path is reused, therefore the reopened file can be a different file.
+ #
+ # var f = new FileReader.open("/etc/issue")
+ # var l = f.read_line
+ # f.reopen
+ # assert l == f.read_line
fun reopen
do
if not eof and not _file.address_is_null then close
redef var end_reached: Bool = false
# Open the file at `path` for reading.
+ #
+ # var f = new FileReader.open("/etc/issue")
+ # assert not f.end_reached
+ # f.close
+ #
+ # In case of error, `last_error` is set
+ #
+ # f = new FileReader.open("/fail/does not/exist")
+ # assert f.end_reached
+ # assert f.last_error != null
init open(path: String)
do
self.path = path
end
# Creates a new File stream from a file descriptor
+ #
+ # This is a low-level method.
init from_fd(fd: Int) do
self.path = ""
prepare_buffer(1)
end
# Constant for read-only file streams
-private fun read_only: NativeString do return "r".to_cstring
+private fun read_only: NativeString do return once "r".to_cstring
# Constant for write-only file streams
#
# If a stream is opened on a file with this method,
# it will wipe the previous file if any.
# Else, it will create the file.
-private fun wipe_write: NativeString do return "w".to_cstring
+private fun wipe_write: NativeString do return once "w".to_cstring
###############################################################################
# Standard input stream.
+#
+# The class of the default value of `sys.stdin`.
class Stdin
super FileReader
end
# Standard output stream.
+#
+# The class of the default value of `sys.stdout`.
class Stdout
super FileWriter
init do
end
# Standard error stream.
+#
+# The class of the default value of `sys.stderr`.
class Stderr
super FileWriter
init do
#
# Returns `null` if there is no file at `self`.
#
+ # assert "/etc/".to_path.stat.is_dir
+ # assert "/etc/issue".to_path.stat.is_file
+ # assert "/fail/does not/exist".to_path.stat == null
+ #
# ~~~
# var p = "/tmp/".to_path
# var stat = p.stat
end
# Delete a file from the file system, return `true` on success
- #
- # Require: `exists`
fun delete: Bool do return path.to_cstring.file_delete
# Copy content of file at `path` to `dest`
end
# Delete the directory itself
- if ok then path.to_cstring.rmdir
+ if ok then ok = path.to_cstring.rmdir and ok
return ok
end
return stat.atime
end
+ # Returns the last access time
+ #
+ # alias for `last_access_time`
+ fun atime: Int do return last_access_time
+
# Returns the last modification time in seconds since Epoch
fun last_modification_time: Int
do
return stat.mtime
end
+ # Returns the last modification time
+ #
+ # alias for `last_modification_time`
+ fun mtime: Int do return last_modification_time
+
+
# Size of the file at `path`
fun size: Int
do
return stat.size
end
- # Is this a regular file and not a device file, pipe, socket, etc.?
+ # Is self a regular file and not a device file, pipe, socket, etc.?
fun is_file: Bool
do
assert not finalized
return stat.is_reg
end
+ # Alias for `is_file`
+ fun is_reg: Bool do return is_file
+
# Is this a directory?
fun is_dir: Bool
do
return stat.ctime
end
+ # Returns the last status change time
+ #
+ # alias for `last_status_change_time`
+ fun ctime: Int do return last_status_change_time
+
# Returns the permission bits of file
fun mode: Int
do
fun file_exists: Bool do return to_cstring.file_exists
# The status of a file. see POSIX stat(2).
- fun file_stat: NativeFileStat do return to_cstring.file_stat
+ fun file_stat: nullable FileStat
+ do
+ var stat = to_cstring.file_stat
+ if stat.address_is_null then return null
+ return new FileStat(stat)
+ end
# The status of a file or of a symlink. see POSIX lstat(2).
- fun file_lstat: NativeFileStat do return to_cstring.file_lstat
+ fun file_lstat: nullable FileStat
+ do
+ var stat = to_cstring.file_lstat
+ if stat.address_is_null then return null
+ return new FileStat(stat)
+ end
# Remove a file, return true if success
fun file_delete: Bool do return to_cstring.file_delete
end
# Simplify a file path by remove useless ".", removing "//", and resolving ".."
- # ".." are not resolved if they start the path
- # starting "/" is not removed
- # trainling "/" is removed
#
- # Note that the method only wonrk on the string:
+ # * ".." are not resolved if they start the path
+ # * starting "/" is not removed
+ # * trailing "/" is removed
+ #
+ # Note that the method only work on the string:
#
# * no I/O access is performed
# * the validity of the path is not checked
# Using a standard "{self}/{path}" does not work in the following cases:
#
# * `self` is empty.
- # * `path` ends with `'/'`.
# * `path` starts with `'/'`.
#
# This method ensures that the join is valid.
end
# Create a directory (and all intermediate directories if needed)
- fun mkdir
+ #
+ # Return an error object in case of error.
+ #
+ # assert "/etc/".mkdir != null
+ fun mkdir: nullable Error
do
var dirs = self.split_with("/")
var path = new FlatBuffer
- if dirs.is_empty then return
+ if dirs.is_empty then return null
if dirs[0].is_empty then
# it was a starting /
path.add('/')
end
+ var error: nullable Error = null
for d in dirs do
if d.is_empty then continue
path.append(d)
path.add('/')
- path.to_s.to_cstring.file_mkdir
+ var res = path.to_s.to_cstring.file_mkdir
+ if not res and error == null then
+ error = new IOError("Cannot create directory `{path}`: {sys.errno.strerror}")
+ end
end
+ return error
end
# Delete a directory and all of its content, return `true` on success
#
# Does not go through symbolic links and may get stuck in a cycle if there
# is a cycle in the filesystem.
- fun rmdir: Bool do return to_path.rmdir
+ #
+ # Return an error object in case of error.
+ #
+ # assert "/fail/does not/exist".rmdir != null
+ fun rmdir: nullable Error
+ do
+ var res = to_path.rmdir
+ if res then return null
+ var error = new IOError("Cannot change remove `{self}`: {sys.errno.strerror}")
+ return error
+ end
# Change the current working directory
#
# "..".chdir
# assert getcwd == "/"
#
- # TODO: errno
- fun chdir do to_cstring.file_chdir
+ # Return an error object in case of error.
+ #
+ # assert "/etc".chdir == null
+ # assert "/fail/does no/exist".chdir != null
+ # assert getcwd == "/etc" # unchanger
+ fun chdir: nullable Error
+ do
+ var res = to_cstring.file_chdir
+ if res then return null
+ var error = new IOError("Cannot change directory to `{self}`: {sys.errno.strerror}")
+ return error
+ end
# Return right-most extension (without the dot)
#
end
end
- # returns files contained within the directory represented by self
+ # Returns entries contained within the directory represented by self.
+ #
+ # var files = "/etc".files
+ # assert files.has("issue")
+ #
+ # Returns an empty array in case of error
+ #
+ # files = "/etc/issue".files
+ # assert files.is_empty
+ #
+ # TODO find a better way to handle errors and to give them back to the user.
fun files: Array[String] is extern import Array[String], Array[String].add, NativeString.to_s, String.to_cstring `{
char *dir_path;
DIR *dir;
dir_path = String_to_cstring( recv );
if ((dir = opendir(dir_path)) == NULL)
{
- perror( dir_path );
- exit( 1 );
+ //perror( dir_path );
+ //exit( 1 );
+ Array_of_String results;
+ results = new_Array_of_String();
+ return results;
}
else
{
return stat_element;
`}
private fun file_mkdir: Bool is extern "string_NativeString_NativeString_file_mkdir_0"
- private fun rmdir: Bool `{ return rmdir(recv); `}
+ private fun rmdir: Bool `{ return !rmdir(recv); `}
private fun file_delete: Bool is extern "string_NativeString_NativeString_file_delete_0"
- private fun file_chdir is extern "string_NativeString_NativeString_file_chdir_0"
+ private fun file_chdir: Bool is extern "string_NativeString_NativeString_file_chdir_0"
private fun file_realpath: NativeString is extern "file_NativeString_realpath"
end
# This class is system dependent ... must reify the vfs
-extern class NativeFileStat `{ struct stat * `}
+private extern class NativeFileStat `{ struct stat * `}
# Returns the permission bits of file
fun mode: Int is extern "file_FileStat_FileStat_mode_0"
# Returns the last access time
end
# Print `objects` on the standard output (`stdout`).
-protected fun printn(objects: Object...)
+fun printn(objects: Object...)
do
sys.stdout.write(objects.to_s)
end
# Print an `object` on the standard output (`stdout`) and add a newline.
-protected fun print(object: Object)
+fun print(object: Object)
do
sys.stdout.write(object.to_s)
sys.stdout.write("\n")
end
# Read a character from the standard input (`stdin`).
-protected fun getc: Char
+fun getc: Char
do
return sys.stdin.read_char.ascii
end
# Read a line from the standard input (`stdin`).
-protected fun gets: String
+fun gets: String
do
return sys.stdin.read_line
end
# Return the working (current) directory
-protected fun getcwd: String do return file_getcwd.to_s
+fun getcwd: String do return file_getcwd.to_s
private fun file_getcwd: NativeString is extern "string_NativeString_NativeString_file_getcwd_0"
#define file_Sys_Sys_buffer_mode_line_0(self) _IOLBF
#define file_Sys_Sys_buffer_mode_none_0(self) _IONBF
-#define string_NativeString_NativeString_file_mkdir_0(p) (mkdir(p, 0777))
+#define string_NativeString_NativeString_file_mkdir_0(p) (!mkdir(p, 0777))
#define string_NativeString_NativeString_file_getcwd_0(p) (getcwd(NULL, 0))
-#define string_NativeString_NativeString_file_chdir_0(p) (chdir(p)?-1:0) /* hack to avoid warn_unused_result */
+#define string_NativeString_NativeString_file_chdir_0(p) (!chdir(p))
#define file_NativeString_realpath(p) (realpath(p, NULL))
#define file_stdin_poll_in(self) file_stdin_poll_in_()
import end # Mark this module is a top level one. (must be only one)
-`{
-#include <errno.h>
-`}
-
###############################################################################
# System Classes #
###############################################################################
fun run do main
# Number of the last error
- fun errno: Int is extern `{
- return errno;
- `}
+ fun errno: Int is extern "sys_errno"
end
# Quit the program with a specific return code
# assert 5.lshift(1) == 10
fun lshift(i: Int): Int is intern
+ # alias of `lshift`
+ fun <<(i: Int): Int do return lshift(i)
+
# `i` bits shift fo the right (aka >>)
#
# assert 5.rshift(1) == 2
fun rshift(i: Int): Int is intern
+ # alias of `rshift`
+ fun >>(i: Int): Int do return rshift(i)
+
redef fun to_i do return self
redef fun to_f is intern
*/
#include <stdlib.h>
+#include <errno.h>
#define address_is_null(x) ((x)==NULL)
+#define sys_errno(x) (errno)
#endif
# Real items, used as cache for to_cstring is called
private var real_items: nullable NativeString = null
+ # Returns a char* starting at position `index_from`
+ #
+ # WARNING: If you choose to use this service, be careful of the following.
+ #
+ # Strings and NativeString are *ideally* always allocated through a Garbage Collector.
+ # Since the GC tracks the use of the pointer for the beginning of the char*, it may be
+ # deallocated at any moment, rendering the pointer returned by this function invalid.
+ # Any access to freed memory may very likely cause undefined behaviour or a crash.
+ # (Failure to do so will most certainly result in long and painful debugging hours)
+ #
+ # The only safe use of this pointer is if it is ephemeral (e.g. read in a C function
+ # then immediately return).
+ #
+ # As always, do not modify the content of the String in C code, if this is what you want
+ # copy locally the char* as Nit Strings are immutable.
+ private fun fast_cstring: NativeString is abstract
+
redef var length: Int = 0
redef fun output
#
# assert "randomMethodId".to_snake_case == "random_method_id"
#
- # If `self` is upper, it is returned unchanged
+ # The rules are the following:
#
- # assert "RANDOM_METHOD_ID".to_snake_case == "RANDOM_METHOD_ID"
+ # An uppercase is always converted to a lowercase
#
- # If the identifier is prefixed by an underscore, the underscore is ignored
+ # assert "HELLO_WORLD".to_snake_case == "hello_world"
+ #
+ # An uppercase that follows a lowercase is prefixed with an underscore
+ #
+ # assert "HelloTheWORLD".to_snake_case == "hello_the_world"
+ #
+ # An uppercase that follows an uppercase and is followed by a lowercase, is prefixed with an underscore
+ #
+ # assert "HelloTHEWorld".to_snake_case == "hello_the_world"
#
- # assert "_privateField".to_snake_case == "_private_field"
+ # All other characters are kept as is; `self` does not need to be a proper CamelCased string.
+ #
+ # assert "=-_H3ll0Th3W0rld_-=".to_snake_case == "=-_h3ll0th3w0rld_-="
fun to_snake_case: SELFTYPE
do
- if self.is_upper then return self
+ if self.is_lower then return self
var new_str = new FlatBuffer.with_capacity(self.length)
- var is_first_char = true
+ var prev_is_lower = false
+ var prev_is_upper = false
for i in [0..length[ do
var char = chars[i]
- if is_first_char then
- new_str.add(char.to_lower)
- is_first_char = false
+ if char.is_lower then
+ new_str.add(char)
+ prev_is_lower = true
+ prev_is_upper = false
else if char.is_upper then
- new_str.add('_')
+ if prev_is_lower then
+ new_str.add('_')
+ else if prev_is_upper and i+1 < length and chars[i+1].is_lower then
+ new_str.add('_')
+ end
new_str.add(char.to_lower)
+ prev_is_lower = false
+ prev_is_upper = true
else
new_str.add(char)
+ prev_is_lower = false
+ prev_is_upper = false
end
end
return native.to_s_with_length(self.length)
end
+ redef fun fast_cstring do return items.fast_cstring(index_from)
+
redef fun substring(from, count)
do
assert count >= 0
private var capacity: Int = 0
+ redef fun fast_cstring do return items.fast_cstring(0)
+
redef fun substrings do return new FlatSubstringsIter(self)
# Re-copies the `NativeString` into a new one and sets it as the new `Buffer`
redef class Int
# Wrapper of strerror C function
- private fun strerror_ext: NativeString is extern `{
- return strerror(recv);
- `}
+ private fun strerror_ext: NativeString is extern "strerror"
# Returns a string describing error number
fun strerror: String do return strerror_ext.to_s
# Creates a new NativeString with a capacity of `length`
new(length: Int) is intern
+ # Returns a char* starting at `index`.
+ #
+ # WARNING: Unsafe for extern code, use only for temporary
+ # pointer manipulation purposes (e.g. write to file or such)
+ fun fast_cstring(index: Int): NativeString is intern
+
# Get char at `index`.
fun [](index: Int): Char is intern
fun split_once_on(p: Pattern): Array[SELFTYPE]
do
var m = p.search_in(self, 0)
- if m == null then return [self]
- return new Array[SELFTYPE].with_items(substring(0, m.from), substring_from(m.after))
+ var res = new Array[SELFTYPE]
+ if m == null then
+ res.add self
+ else
+ res.add substring(0, m.from)
+ res.add substring_from(m.after)
+ end
+ return res
end
# Replace all occurences of a pattern with a string
## Documentation in preview window
-You can display the documentation for the entity under the cursor with `:call Nitdoc()`.
-It will use the same metadata files as the omnifunc and the preview window.
+The command `:Nitdoc` searches the documentation for the word under the cursor.
+The results are displayed in the preview window in order of relevance.
+You can search for any word by passing it as an argument, as in `:Nitdoc modulo`.
+The Nitdoc command uses the same metadata files as the omnifunc.
You may want to map the function to a shortcut by adding the following code to `~/.vimrc`.
~~~
" Map displaying Nitdoc to Ctrl-D
-map <C-d> :call Nitdoc()<enter>
+map <C-d> :Nitdoc<enter>
~~~
## Search declarations and usages of the word under the cursor
--- /dev/null
+#!/bin/bash
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Check the build and the execution of software in examples/ and contrib/
+# The script must be run from the root Nit directory.
+#
+# various .xml junit file will be generated in the root directory for jenkins.
+
+projects=`echo examples/*/Makefile contrib/*/Makefile`
+
+failed=
+for p in $projects; do
+ dir=`dirname "$p"`
+ name=`basename "$dir"`
+ echo "*** make $dir ***"
+ if misc/jenkins/unitrun.sh "run-$name-make" make -C "$dir"; then
+ # Make OK, is there a `check` rule?
+ make -C "$dir" check -n 2>/dev/null || continue
+ echo "*** makecheck $dir ***"
+ if misc/jenkins/unitrun.sh "run-$name-makecheck" make -C "$dir" check; then
+ :
+ else
+ failed="$failed $name-check"
+ fi
+
+ else
+ failed="$failed $name"
+ fi
+done
+grep '<error message' *-make.xml *-makecheck.xml
+if test -n "$failed"; then
+ echo "FAILED: $failed"
+ exit 1
+fi
+exit 0
" Get path to the best metadata file named `name`
"
" Returns an empty string if not found.
-fun NitMetadataFile(name)
+fun s:NitMetadataFile(name)
" Where are the generated metadata files?
if empty($NIT_VIM_DIR)
let metadata_dir = $HOME . '/.vim/nit'
let synopsis_matches = []
let doc_matches = []
- let path = NitMetadataFile(a:path)
+ let path = s:NitMetadataFile(a:path)
if empty(path)
return
endif
" Add?
if name == a:base
" Exact match
- call NitOmnifuncAddAMatch(a:matches, words, name)
+ call s:NitOmnifuncAddAMatch(a:matches, words, name)
elseif name =~? '^'.a:base
" Common-prefix match
- call NitOmnifuncAddAMatch(prefix_matches, words, name)
+ call s:NitOmnifuncAddAMatch(prefix_matches, words, name)
elseif name =~? a:base
" Substring match
- call NitOmnifuncAddAMatch(substring_matches, words, name)
+ call s:NitOmnifuncAddAMatch(substring_matches, words, name)
elseif get(words, 2, '') =~? a:base
" Match in the synopsis
- call NitOmnifuncAddAMatch(synopsis_matches, words, name)
+ call s:NitOmnifuncAddAMatch(synopsis_matches, words, name)
elseif get(words, 3, '') =~? a:base
" Match in the longer doc
- call NitOmnifuncAddAMatch(synopsis_matches, words, name)
+ call s:NitOmnifuncAddAMatch(doc_matches, words, name)
endif
endfor
endfun
" Internal function to search parse the information from a metadata line
-fun NitOmnifuncAddAMatch(matches, words, name)
+fun s:NitOmnifuncAddAMatch(matches, words, name)
let pretty = get(a:words, 1, '')
let synopsis = get(a:words, 2, '')
let desc = get(a:words, 3, '')
endfun
" Show doc for the entity under the cursor in the preview window
-fun Nitdoc()
- " Word under cursor
- let word = expand("<cword>")
+fun Nitdoc(...)
+ if a:0 == 0 || empty(a:1)
+ " Word under cursor
+ let word = expand("<cword>")
+ else
+ let word = join(a:000, ' ')
+ endif
" All possible docs (there may be more than one entity with the same name)
let docs = []
+ let prefix_matches = []
+ let substring_matches = []
+ let synopsis_matches = []
+ let doc_matches = []
" Search in all metadata files
for file in ['modules', 'classes', 'properties']
- let path = NitMetadataFile(file.'.txt')
+ let path = s:NitMetadataFile(file.'.txt')
if empty(path)
continue
endif
for line in readfile(path)
let words = split(line, '#====#', 1)
let name = get(words, 0, '')
- if name =~ '^' . word . '\>'
- " It fits our word, get long doc
- let desc = get(words,3,'')
- let desc = join(split(desc, '#nnnn#', 1), "\n")
- call add(docs, desc)
+ if name =~ '^'.word.'\>'
+ " Exact match
+ call s:NitdocAdd(docs, words)
+ elseif name =~? '^'.word
+ " Common-prefix match
+ call s:NitdocAdd(prefix_matches, words)
+ elseif name =~? word
+ " Substring match
+ call s:NitdocAdd(substring_matches, words)
+ elseif get(words, 2, '') =~? word
+ " Match in the synopsis
+ call s:NitdocAdd(synopsis_matches, words)
+ elseif get(words, 3, '') =~? word
+ " Match in the longer doc
+ call s:NitdocAdd(doc_matches, words)
endif
endfor
endfor
+ " Unite all results in prefered order
+ call extend(docs, sort(prefix_matches))
+ call extend(docs, sort(substring_matches))
+ call extend(docs, sort(synopsis_matches))
+ call extend(docs, sort(doc_matches))
+
" Found no doc, give up
if empty(docs) || !(join(docs, '') =~ '\w')
+ echo 'Nitdoc found nothing for "' . word . '"'
return
endif
silent put = ''
endif
endfor
+ execute 0
+ delete " the first empty line
" Set options
setlocal buftype=nofile
redraw!
endfun
+" Internal function to search parse the information from a metadata line
+fun s:NitdocAdd(matches, words)
+ let desc = get(a:words, 3, '')
+ let desc = join(split(desc, '#nnnn#', 1), "\n")
+ call add(a:matches, desc)
+endfun
+
" Call `git grep` on the word under the cursor
"
" Shows declarations first, then all matches, in the preview window.
" Activate the omnifunc on Nit files
autocmd FileType nit set omnifunc=NitOmnifunc
+" Define the user command Nitdoc for ease of use
+command -nargs=* Nitdoc call Nitdoc("<args>")
+
let s:script_dir = fnamemodify(resolve(expand('<sfile>:p')), ':h')
`--stub-man`
: Generate a stub manpage in pandoc markdown format.
+`--keep-going`
+: Continue after errors, whatever the consequences.
+
+The tool does not stop after some errors but continue until it produces incorrect result, crashes, erases the hard drive, or just continue forever in an infinite loop.
+This option is used to test the robustness of the tools by allowing phases to progress on incorrect data.
# ENVIRONMENT VARIABLES
`--check`
: Check format of Nit source files
+ This option creates a temporary pretty printed file then checks if the output
+ of the diff command on the source file and the pretty printed one is empty.
+
+`--break-strings`
+: Break too long string literals
+
+`--inline-do`
+: Force do keyword on the same line as the method signature
+
+`--skip-empty`
+: Force formatting of empty lines
+
+ By default empty lines are kept as they were typed in the file.
+ When enabling this option, `nitpretty` will decide where to break lines and
+ will put empty lines to separate properties and code blocks.
+
# SPECIFICATION
The specification of the pretty printing is described here.
var res = get_annotations(name)
if res.is_empty then return null
if res.length > 1 then
- modelbuilder.error(res[1], "Error: multiple annotation `{name}`. A previous one is defined line {res[0].location.line_start}")
+ modelbuilder.error(res[1], "Syntax Error: multiple `{name}`. A previous one is defined line {res[0].location.line_start}.")
end
return res.first
end
if arg != null then return arg
end
- modelbuilder.error(self, "Annotation error: \"{name}\" expects a single String as argument.")
+ modelbuilder.error(self, "Syntax Error: `{name}` expects a single String as argument.")
return null
end
if arg != null then return arg
end
- modelbuilder.error(self, "Annotation error: \"{name}\" expects a single Int as argument.")
+ modelbuilder.error(self, "Syntax Error: `{name}` expects a single Int as argument.")
return null
end
if arg != null then return arg
end
- modelbuilder.error(self, "Annotation error: \"{name}\" expects a single identifier as argument.")
+ modelbuilder.error(self, "Syntax Error: `{name}` expects a single identifier as argument.")
return null
end
end
for annot in annotations do locs.add(annot.location)
toolcontext.error(mmodule.location,
- "Priority conflict on annotation {name}, it has been defined in: {locs.join(", ")}")
+ "Error: priority conflict on annotation `{name}`, it has been defined in: {locs.join(", ")}.")
end
return annotations.first
end
do
super
if mtype == null and not is_typed then
- debug "TYPING: untyped expression"
+ #debug "TYPING: untyped expression"
end
end
end
# Default is nitstack
opt_stacktrace.value = "nitstack"
else
- print "Error: unknown value `{st}` for --stacktrace. Use `none`, `libunwind`, `nitstack` or `auto`."
+ print "Option Error: unknown value `{st}` for --stacktrace. Use `none`, `libunwind`, `nitstack` or `auto`."
exit(1)
end
if opt_output.value != null and opt_dir.value != null then
- print "Error: cannot use both --dir and --output"
+ print "Option Error: cannot use both --dir and --output"
exit(1)
end
# Get the default name of the executable to produce
fun default_outname: String
do
- var mainmodule = compiler.mainmodule
-
- # Search a non fictive module
- var res = mainmodule.name
- while mainmodule.is_fictive do
- mainmodule = mainmodule.in_importation.direct_greaters.first
- res = mainmodule.name
- end
- return res
+ var mainmodule = compiler.mainmodule.first_real_mmodule
+ return mainmodule.name
end
# Combine options and platform informations to get the final path of the outfile
var makeflags = self.toolcontext.opt_make_flags.value
if makeflags == null then makeflags = ""
- self.toolcontext.info("make -B -C {compile_dir} -f {makename} -j 4 {makeflags}", 2)
+
+ var command = "make -B -C {compile_dir} -f {makename} -j 4 {makeflags}"
+ self.toolcontext.info(command, 2)
var res
if self.toolcontext.verbose_level >= 3 then
- res = sys.system("make -B -C {compile_dir} -f {makename} -j 4 {makeflags} 2>&1")
+ res = sys.system("{command} 2>&1")
else
- res = sys.system("make -B -C {compile_dir} -f {makename} -j 4 {makeflags} 2>&1 >/dev/null")
+ res = sys.system("{command} 2>&1 >/dev/null")
end
if res != 0 then
- toolcontext.error(null, "make failed! Error code: {res}.")
+ toolcontext.error(null, "Compilation Error: `make` failed with error code: {res}. The command was `{command}`.")
end
end
end
var finalize_meth = mainmodule.try_get_primitive_method("finalize", finalizable_type.mclass)
if finalize_meth == null then
- modelbuilder.toolcontext.error(null, "The `Finalizable` class doesn't declare the `finalize` method.")
+ modelbuilder.toolcontext.error(null, "Error: the `Finalizable` class does not declare the `finalize` method.")
return
end
# Evaluate `args` as expressions in the call of `mpropdef` on `recv`.
# This method is used to manage varargs in signatures and returns the real array
# of runtime variables to use in the call.
- fun varargize(mpropdef: MMethodDef, recv: RuntimeVariable, args: SequenceRead[AExpr]): Array[RuntimeVariable]
+ fun varargize(mpropdef: MMethodDef, map: nullable SignatureMap, recv: RuntimeVariable, args: SequenceRead[AExpr]): Array[RuntimeVariable]
do
var msignature = mpropdef.new_msignature or else mpropdef.msignature.as(not null)
var res = new Array[RuntimeVariable]
res.add(recv)
- if args.is_empty then return res
+ if msignature.arity == 0 then return res
+
+ if map == null then
+ assert args.length == msignature.arity
+ for ne in args do
+ res.add self.expr(ne, null)
+ end
+ return res
+ end
- var vararg_rank = msignature.vararg_rank
- var vararg_len = args.length - msignature.arity
- if vararg_len < 0 then vararg_len = 0
+ # Eval in order of arguments, not parameters
+ var exprs = new Array[RuntimeVariable].with_capacity(args.length)
+ for ne in args do
+ exprs.add self.expr(ne, null)
+ end
+ # Fill `res` with the result of the evaluation according to the mapping
for i in [0..msignature.arity[ do
- if i == vararg_rank then
- var ne = args[i]
- if ne isa AVarargExpr then
- var e = self.expr(ne.n_expr, null)
- res.add(e)
- continue
- end
- var vararg = new Array[RuntimeVariable]
- for j in [vararg_rank..vararg_rank+vararg_len] do
- var e = self.expr(args[j], null)
- vararg.add(e)
- end
- var elttype = msignature.mparameters[vararg_rank].mtype
+ var param = msignature.mparameters[i]
+ var j = map.map.get_or_null(i)
+ if j == null then
+ # default value
+ res.add(null_instance)
+ continue
+ end
+ if param.is_vararg and map.vararg_decl > 0 then
+ var vararg = exprs.sub(j, map.vararg_decl)
+ var elttype = param.mtype
var arg = self.vararg_instance(mpropdef, recv, vararg, elttype)
res.add(arg)
- else
- var j = i
- if i > vararg_rank then j += vararg_len
- var e = self.expr(args[j], null)
- res.add(e)
+ continue
end
+ res.add exprs[j]
end
return res
end
fun stmt(nexpr: nullable AExpr)
do
if nexpr == null then return
+ if nexpr.mtype == null and not nexpr.is_typed then
+ # Untyped expression.
+ # Might mean dead code
+ # So just return
+ return
+ end
var narray = nexpr.comprehension
if narray != null then
# `mtype` is the expected return type, pass null if no specific type is expected.
fun expr(nexpr: AExpr, mtype: nullable MType): RuntimeVariable
do
+ if nexpr.mtype == null then
+ # Untyped expression.
+ # Might mean dead code
+ # so return a placebo result
+ if mtype == null then mtype = compiler.mainmodule.object_type
+ return new_var(mtype)
+ end
var old = self.current_node
self.current_node = nexpr
var res = nexpr.expr(self).as(not null)
else if pname == "unary -" then
v.ret(v.new_expr("-{arguments[0]}", ret.as(not null)))
return true
+ else if pname == "unary +" then
+ v.ret(arguments[0])
+ return true
else if pname == "*" then
v.ret(v.new_expr("{arguments[0]} * {arguments[1]}", ret.as(not null)))
return true
else if pname == "unary -" then
v.ret(v.new_expr("-{arguments[0]}", ret.as(not null)))
return true
+ else if pname == "unary +" then
+ v.ret(arguments[0])
+ return true
else if pname == "succ" then
v.ret(v.new_expr("{arguments[0]}+1", ret.as(not null)))
return true
else if pname == "atoi" then
v.ret(v.new_expr("atoi({arguments[0]});", ret.as(not null)))
return true
+ else if pname == "fast_cstring" then
+ v.ret(v.new_expr("{arguments[0]} + {arguments[1]}", ret.as(not null)))
+ return true
else if pname == "new" then
v.ret(v.new_expr("(char*)nit_alloc({arguments[1]})", ret.as(not null)))
return true
var oldnode = v.current_node
v.current_node = self
var old_frame = v.frame
- var frame = new StaticFrame(v, self.mpropdef.as(not null), recv.mcasttype.as_notnullable.as(MClassType), [recv])
+ var frame = new StaticFrame(v, self.mpropdef.as(not null), recv.mcasttype.undecorate.as(MClassType), [recv])
v.frame = frame
var value
redef fun expr(v) do return v.frame.arguments.first
end
+redef class AImplicitSelfExpr
+ redef fun expr(v) do
+ if not is_sys then return super
+ return v.new_expr("glob_sys", mtype.as(not null))
+ end
+end
+
redef class AEscapeExpr
redef fun stmt(v) do v.add("goto BREAK_{v.escapemark_name(self.escapemark)};")
end
do
var recv = v.expr(self.n_expr, null)
var callsite = self.callsite.as(not null)
- var args = v.varargize(callsite.mpropdef, recv, self.raw_arguments)
+ var args = v.varargize(callsite.mpropdef, callsite.signaturemap, recv, self.raw_arguments)
return v.compile_callsite(callsite, args)
end
end
do
var recv = v.expr(self.n_expr, null)
var callsite = self.callsite.as(not null)
- var args = v.varargize(callsite.mpropdef, recv, self.raw_arguments)
+ var args = v.varargize(callsite.mpropdef, callsite.signaturemap, recv, self.raw_arguments)
var value = v.expr(self.n_value, null)
var callsite = self.callsite
if callsite != null then
- var args = v.varargize(callsite.mpropdef, recv, self.n_args.n_exprs)
+ var args
- # Add additional arguments for the super init call
- if args.length == 1 then
+ if self.n_args.n_exprs.is_empty then
+ # Add automatic arguments for the super init call
+ args = [recv]
for i in [0..callsite.msignature.arity[ do
args.add(v.frame.arguments[i+1])
end
+ else
+ args = v.varargize(callsite.mpropdef, callsite.signaturemap, recv, self.n_args.n_exprs)
end
+
# Super init call
var res = v.compile_callsite(callsite, args)
return res
end
var mpropdef = self.mpropdef.as(not null)
- var args = v.varargize(mpropdef, recv, self.n_args.n_exprs)
- if args.length == 1 then
+
+ var args
+ if self.n_args.n_exprs.is_empty then
args = v.frame.arguments
+ else
+ args = v.varargize(mpropdef, signaturemap, recv, self.n_args.n_exprs)
end
- # stantard call-next-method
+ # Standard call-next-method
return v.supercall(mpropdef, recv.mtype.as(MClassType), args)
end
end
var recv = v.init_instance_or_extern(mtype)
- var callsite = self.callsite.as(not null)
- var args = v.varargize(callsite.mpropdef, recv, self.n_args.n_exprs)
+ var callsite = self.callsite
+ if callsite == null then return recv
+
+ var args = v.varargize(callsite.mpropdef, callsite.signaturemap, recv, self.n_args.n_exprs)
var res2 = v.compile_callsite(callsite, args)
if res2 != null then
#self.debug("got {res2} from {mproperty}. drop {recv}")
end
end
+redef class AVarargExpr
+ redef fun expr(v)
+ do
+ return v.expr(self.n_expr, null)
+ end
+end
+
redef class ADebugTypeExpr
redef fun stmt(v)
do
var arguments = toolcontext.option_context.rest
if arguments.length > 1 and toolcontext.opt_output.value != null then
- print "Error: --output needs a single source file. Do you prefer --dir?"
+ print "Option Error: --output needs a single source file. Do you prefer --dir?"
exit 1
end
private fun get_recvtype(m: MMethodDef, recvtype: MClassType, args: Array[RuntimeVariable]): MClassType
do
check_valid_reciever(recvtype)
- #debug("call {m} on {recvtype} on {args.first}:{args.first.mtype}")
- if m.mproperty.is_toplevel then
- # Do not customize top-level methods
- recvtype = m.mclassdef.bound_mtype
- end
return recvtype
end
var mtypes_by_class = new MultiHashMap[MClass, MType]
for e in mtypes do
- var c = e.as_notnullable.as(MClassType).mclass
+ var c = e.undecorate.as(MClassType).mclass
mtypes_by_class[c].add(e)
poset.add_node(e)
end
var casttypes_by_class = new MultiHashMap[MClass, MType]
for e in cast_types do
- var c = e.as_notnullable.as(MClassType).mclass
+ var c = e.undecorate.as(MClassType).mclass
casttypes_by_class[c].add(e)
poset.add_node(e)
end
# Group cast_type by their classes
var bucklets = new HashMap[MClass, Set[MType]]
for e in cast_types do
- var c = e.as_notnullable.as(MClassType).mclass
+ var c = e.undecorate.as(MClassType).mclass
if not bucklets.has_key(c) then
bucklets[c] = new HashSet[MType]
end
# resolution table (for receiver)
if is_live then
- var mclass_type = mtype.as_notnullable
+ var mclass_type = mtype.undecorate
assert mclass_type isa MClassType
if resolution_tables[mclass_type].is_empty then
v.add_decl("NULL, /*NO RESOLUTIONS*/")
fun compile_type_resolution_table(mtype: MType) do
- var mclass_type = mtype.as_notnullable.as(MClassType)
+ var mclass_type = mtype.undecorate.as(MClassType)
# extern const struct resolution_table_X resolution_table_X
self.provide_declaration("resolution_table_{mtype.c_name}", "extern const struct types resolution_table_{mtype.c_name};")
fun can_be_primitive(value: RuntimeVariable): Bool
do
- var t = value.mcasttype.as_notnullable
+ var t = value.mcasttype.undecorate
if not t isa MClassType then return false
var k = t.mclass.kind
return k == interface_kind or t.is_c_primitive
abstract class DocComposite
# Parent element.
- var parent: nullable DocComposite = null
+ var parent: nullable DocComposite = null is writable
# Does `self` have a `parent`?
fun is_root: Bool do return parent == null
#
# Shortcut for `children.add`.
fun add_child(child: DocComposite) do
+ child.parent = self
children.add child
end
end
if article == null then continue
# FIXME avoid diff
# page.root.add article
- page.root.children[1].children.insert(article, 0)
+ article.parent = page.root.children.first.children[1]
+ page.root.children.first.children[1].children.insert(article, 0)
end
end
end
var clients = self.clients.to_a
v.name_sorter.sort(clients)
section.add_child new HierarchyListArticle(mentity, "Clients", clients)
- root.children.insert(section, 1)
+ section.parent = root.children.first
+ root.children.first.children.insert(section, 1)
end
end
var descendants = self.descendants.to_a
v.name_sorter.sort(descendants)
section.add_child new HierarchyListArticle(mentity, "Descendants", descendants)
- root.children.insert(section, 1)
+ section.parent = root.children.first
+ root.children.first.children.insert(section, 1)
end
end
var git_dir = opt_github_gitdir
var opts = [upstream.value, base_sha.value, git_dir.value]
if not opts.has_only(null) and opts.has(null) then
- print "Error: Options {upstream.names.first}, " +
+ print "Option Error: options {upstream.names.first}, " +
"{base_sha.names.first} and {git_dir.names.first} " +
"are required to enable the GitHub plugin"
exit 1
var dir = ctx.nit_dir
sharedir = dir/"share/nitdoc"
if not sharedir.file_exists then
- print "Error: Cannot locate nitdoc share files. Uses --sharedir or envvar NIT_DIR"
+ print "Error: cannot locate nitdoc share files. Uses --sharedir or envvar NIT_DIR"
abort
end
end
# Build top menu template if any.
fun init_topmenu(v: RenderHTMLPhase, doc: DocModel) do
- topmenu = new TplTopMenu(html_url)
+ topmenu = new DocTopMenu
var brand = v.ctx.opt_custom_brand.value
if brand != null then
var tpl = new Template
tpl.add "</span>"
topmenu.brand = tpl
end
- topmenu.add_link new TplLink("index.html", "Overview")
- topmenu.add_link new TplLink("search.html", "Index")
+ var title = "Overview"
+ if v.ctx.opt_custom_title.value != null then
+ title = v.ctx.opt_custom_title.value.to_s
+ end
+ topmenu.add_li new ListItem(new Link("index.html", title))
+ topmenu.add_li new ListItem(new Link("search.html", "Index"))
+ topmenu.active_item = topmenu.items.first
end
# Build page sidebar if any.
var ssection = new TplSection.with_title("projects", "Projects")
for mproject in mprojects do
var sarticle = mproject.tpl_article
- sarticle.subtitle = mproject.tpl_declaration
+ sarticle.subtitle = mproject.html_declaration
sarticle.content = mproject.tpl_definition
- var mdoc = mproject.mdoc_or_fallback
- if mdoc != null then
- sarticle.content = mdoc.tpl_short_comment
+ var comment = mproject.html_short_comment
+ if comment != null then
+ sarticle.content = comment
end
ssection.add_child sarticle
end
redef class SearchPage
redef var html_url = "search.html"
redef fun init_title(v, doc) do title = "Index"
+
+ redef fun init_topmenu(v, doc) do
+ super
+ topmenu.active_item = topmenu.items.last
+ end
+
redef fun init_sidebar(v, doc) do end
# TODO this should be done in StructurePhase.
tpl.title = "Index"
# modules list
for mmodule in modules_list(v, doc) do
- tpl.modules.add mmodule.tpl_link
+ tpl.modules.add mmodule.html_link
end
# classes list
for mclass in classes_list(v, doc) do
- tpl.classes.add mclass.tpl_link
+ tpl.classes.add mclass.html_link
end
# properties list
for mproperty in mprops_list(v, doc) do
var m = new Template
- m.add mproperty.intro.tpl_link
+ m.add mproperty.intro.html_link
m.add " ("
- m.add mproperty.intro.mclassdef.mclass.tpl_link
+ m.add mproperty.intro.mclassdef.mclass.html_link
m.add ")"
tpl.props.add m
end
redef class MEntityPage
redef var html_url is lazy do return mentity.nitdoc_url
- redef fun init_title(v, doc) do title = mentity.nitdoc_name
+ redef fun init_title(v, doc) do title = mentity.html_name
redef fun init_content(v, doc) do add_section root.start_rendering(v, doc, self)
end
super
var mproject = mentity.mproject
if not mentity.is_root then
- topmenu.add_link new TplLink(mproject.nitdoc_url, mproject.nitdoc_name)
+ topmenu.add_li new ListItem(new Link(mproject.nitdoc_url, mproject.html_name))
end
- topmenu.add_link new TplLink(html_url, mproject.nitdoc_name)
+ topmenu.add_li new ListItem(new Link(html_url, mproject.html_name))
+ topmenu.active_item = topmenu.items.last
end
redef fun init_sidebar(v, doc) do
end
var lnk = new Template
lnk.add new TplLabel.with_classes(classes)
- lnk.add def.tpl_link
+ lnk.add def.html_link
return new TplListItem.with_content(lnk)
end
end
redef fun init_topmenu(v, doc) do
super
var mproject = mentity.mproject
- topmenu.add_link new TplLink(mproject.nitdoc_url, mproject.nitdoc_name)
- topmenu.add_link new TplLink(mentity.nitdoc_url, mentity.nitdoc_name)
+ topmenu.add_li new ListItem(new Link(mproject.nitdoc_url, mproject.html_name))
+ topmenu.add_li new ListItem(new Link(mentity.nitdoc_url, mentity.html_name))
+ topmenu.active_item = topmenu.items.last
end
# Class list to display in sidebar
end
var lnk = new Template
lnk.add new TplLabel.with_classes(classes)
- lnk.add def.tpl_link
+ lnk.add def.html_link
return new TplListItem.with_content(lnk)
end
end
redef class MClassPage
- redef fun init_title(v, doc) do
- title = "{mentity.nitdoc_name}{mentity.tpl_signature.write_to_string}"
- end
-
redef fun init_topmenu(v, doc) do
super
var mproject = mentity.intro_mmodule.mgroup.mproject
- topmenu.add_link new TplLink("{mproject.nitdoc_url}", "{mproject.nitdoc_name}")
- topmenu.add_link new TplLink(html_url, mentity.nitdoc_name)
+ topmenu.add_li new ListItem(new Link(mproject.nitdoc_url, mproject.html_name))
+ topmenu.add_li new ListItem(new Link(html_url, mentity.html_name))
+ topmenu.active_item = topmenu.items.last
end
redef fun init_sidebar(v, doc) do
classes.add "inherit"
var cls_url = mprop.intro.mclassdef.mclass.nitdoc_url
var def_url = "{cls_url}#{mprop.nitdoc_id}"
- var lnk = new TplLink(def_url, mprop.nitdoc_name)
+ var lnk = new TplLink(def_url, mprop.html_name)
var mdoc = mprop.intro.mdoc_or_fallback
if mdoc != null then lnk.title = mdoc.short_comment
var item = new Template
end
var lnk = new Template
lnk.add new TplLabel.with_classes(classes)
- lnk.add mprop.tpl_anchor
+ lnk.add mprop.html_link_to_anchor
return new TplListItem.with_content(lnk)
end
redef class MPropertyPage
redef fun init_title(v, doc) do
- title = "{mentity.nitdoc_name}{mentity.tpl_signature.write_to_string}"
+ title = "{mentity.html_name}{mentity.html_short_signature.write_to_string}"
end
redef fun init_topmenu(v, doc) do
var mmodule = mentity.intro_mclassdef.mmodule
var mproject = mmodule.mgroup.mproject
var mclass = mentity.intro_mclassdef.mclass
- topmenu.add_link new TplLink("{mproject.nitdoc_url}", "{mproject.nitdoc_name}")
- topmenu.add_link new TplLink("{mclass.nitdoc_url}", "{mclass.nitdoc_name}")
- topmenu.add_link new TplLink(html_url, mentity.nitdoc_name)
+ topmenu.add_li new ListItem(new Link(mproject.nitdoc_url, mproject.html_name))
+ topmenu.add_li new ListItem(new Link(mclass.nitdoc_url, mclass.html_name))
+ topmenu.add_li new ListItem(new Link(html_url, mentity.html_name))
+ topmenu.active_item = topmenu.items.last
end
end
fun start_rendering(v: RenderHTMLPhase, doc: DocModel, page: MEntityPage): TplSection do
var section = new TplSection("top")
var mentity = page.mentity
- section.title = mentity.nitdoc_name
- section.subtitle = mentity.tpl_declaration
+ section.title = mentity.html_name
+ section.subtitle = mentity.html_declaration
# FIXME ugly hack to avoid diff
if mentity isa MGroup and mentity.is_root then
- section.title = mentity.mproject.nitdoc_name
- section.subtitle = mentity.mproject.tpl_declaration
- else if mentity isa MClass then
- section.title = "{mentity.nitdoc_name}{mentity.tpl_signature.write_to_string}"
+ section.title = mentity.mproject.html_name
+ section.subtitle = mentity.mproject.html_declaration
else if mentity isa MProperty then
- section.title = "{mentity.nitdoc_name}{mentity.intro.tpl_signature.write_to_string}"
- section.subtitle = mentity.tpl_namespace
- section.summary_title = mentity.nitdoc_name
+ section.title = "{mentity.html_name}{mentity.intro.html_signature.write_to_string}"
+ section.subtitle = mentity.html_namespace
+ section.summary_title = mentity.html_name
end
render(v, doc, page, section)
return section
var title = new Template
if mmodule == page.mentity then
title.add "in "
- section.summary_title = "in {mmodule.nitdoc_name}"
+ section.summary_title = "in {mmodule.html_name}"
else
title.add "from "
- section.summary_title = "from {mmodule.nitdoc_name}"
+ section.summary_title = "from {mmodule.html_name}"
end
- title.add mmodule.tpl_namespace
+ title.add mmodule.html_namespace
section.title = title
end
private fun render_concern_other(page: MEntityPage, section: TplSection, mmodule: MModule) do
var title = new Template
title.add "in "
- title.add mmodule.tpl_namespace
+ title.add mmodule.html_namespace
section.title = title
- section.summary_title = "in {mmodule.nitdoc_name}"
+ section.summary_title = "in {mmodule.html_name}"
+ end
+end
+
+redef class MEntitySection
+ redef fun render(v, doc, page, parent) do
+ for child in children do child.render(v, doc, page, parent)
end
end
else if mentity isa MPropDef then
article.source_link = v.tpl_showsource(mentity.location)
end
- # article.subtitle = mentity.tpl_declaration
+ # article.subtitle = mentity.html_declaration
# FIXME diff hack
if mentity isa MProperty then
# intro title
- var ns = mentity.intro.mclassdef.mmodule.tpl_namespace
+ var ns = mentity.intro.mclassdef.mmodule.html_namespace
var section = new TplSection("intro")
var title = new Template
title.add "Introduction in "
# FIXME hideous hacks...
if mentity isa MModule then
article = mentity.tpl_article
- article.subtitle = mentity.tpl_declaration
+ article.subtitle = mentity.html_declaration
article.content = mentity.tpl_definition
else if mentity isa MClass then
article = make_mclass_article(v, page)
article = make_mpropdef_article(v, doc, page)
else
article = mentity.tpl_article
- article.subtitle = mentity.tpl_declaration
+ article.subtitle = mentity.html_declaration
if mentity isa MPropDef then
article.source_link = v.tpl_showsource(mentity.location)
end
- if not mentity isa MVirtualTypeProp then
- # article.content = mentity.tpl_comment
- end
end
for child in children do
child.render(v, doc, page, article)
private fun make_mclass_article(v: RenderHTMLPhase, page: MEntityPage): TplArticle do
var article = mentity.tpl_article
- article.subtitle = mentity.tpl_namespace
+ article.subtitle = mentity.html_namespace
article.content = null
return article
end
end
var title = new Template
title.add "in "
- title.add mclassdef.mmodule.tpl_namespace
+ title.add mclassdef.mmodule.html_namespace
article.subtitle = title
return article
end
title.add mprop.tpl_icon
title.add "<span id='{mpropdef.nitdoc_id}'></span>"
if mpropdef.is_intro then
- title.add mprop.tpl_link
- title.add mprop.intro.tpl_signature
+ title.add mprop.html_link
+ title.add mprop.intro.html_signature
else
var cls_url = mprop.intro.mclassdef.mclass.nitdoc_url
var def_url = "{cls_url}#{mprop.nitdoc_id}"
- var lnk = new TplLink.with_title(def_url, mprop.nitdoc_name,
+ var lnk = new TplLink.with_title(def_url, mprop.html_name,
"Go to introduction")
title.add "redef "
title.add lnk
end
article.title = title
article.title_classes.add "signature"
- article.summary_title = "{mprop.nitdoc_name}"
- article.subtitle = mpropdef.tpl_namespace
- if mpropdef.mdoc_or_fallback != null then
- article.content = mpropdef.mdoc_or_fallback.tpl_comment
+ article.summary_title = "{mprop.html_name}"
+ article.subtitle = mpropdef.html_namespace
+ var comment = mpropdef.html_comment
+ if comment != null then
+ article.content = comment
end
# TODO move in its own phase? let's see after doc_template refactoring.
# Add linearization
parent.add_child article
end
end
+
+redef class Location
+ # Github url based on this location
+ fun github(gitdir: String): String do
+ var base_dir = getcwd.join_path(gitdir).simplify_path
+ var file_loc = getcwd.join_path(file.filename).simplify_path
+ var gith_loc = file_loc.substring(base_dir.length + 1, file_loc.length)
+ return "{gith_loc}:{line_start},{column_start}--{line_end},{column_end}"
+ end
+end
+
+redef class MEntity
+ # A template article that briefly describe the entity
+ fun tpl_short_article: TplArticle do
+ var tpl = tpl_article
+ var comment = html_short_comment
+ if comment != null then
+ tpl.content = comment
+ end
+ return tpl
+ end
+
+ # A template article that describe the entity
+ fun tpl_article: TplArticle do
+ var tpl = new TplArticle.with_title(nitdoc_id, tpl_title)
+ tpl.title_classes.add "signature"
+ tpl.subtitle = html_namespace
+ tpl.summary_title = html_name
+ return tpl
+ end
+
+ # A template definition of the mentity
+ # include name, sysnopsys, comment and namespace
+ fun tpl_definition: TplDefinition is abstract
+
+ # A li element that can go in a list
+ fun tpl_list_item: TplListItem do
+ var lnk = new Template
+ lnk.add new TplLabel.with_classes(tpl_css_classes)
+ lnk.add html_link
+ var comment = html_short_comment
+ if comment != null then
+ lnk.add ": "
+ lnk.add comment
+ end
+ return new TplListItem.with_content(lnk)
+ end
+
+ var tpl_css_classes = new Array[String]
+
+ # Box title for this mentity
+ fun tpl_title: Template do
+ var title = new Template
+ title.add tpl_icon
+ title.add html_namespace
+ return title
+ end
+
+ # Icon that will be displayed before the title
+ fun tpl_icon: TplIcon do
+ var icon = new TplIcon.with_icon("tag")
+ icon.css_classes.add_all(tpl_css_classes)
+ return icon
+ end
+end
+
+redef class MConcern
+ # Return a li element for `self` that can be displayed in a concern list
+ private fun tpl_concern_item: TplListItem do
+ var lnk = new Template
+ lnk.add html_link_to_anchor
+ var comment = html_short_comment
+ if comment != null then
+ lnk.add ": "
+ lnk.add comment
+ end
+ return new TplListItem.with_content(lnk)
+ end
+end
+
+redef class MProject
+ redef fun tpl_definition do
+ var tpl = new TplDefinition
+ var comment = html_comment
+ if comment != null then
+ tpl.comment = comment
+ end
+ return tpl
+ end
+
+ redef fun tpl_css_classes do return ["public"]
+end
+
+redef class MGroup
+ redef fun tpl_definition do
+ var tpl = new TplDefinition
+ var comment = html_comment
+ if comment != null then
+ tpl.comment = comment
+ end
+ return tpl
+ end
+end
+
+redef class MModule
+ redef fun tpl_definition do
+ var tpl = new TplClassDefinition
+ var comment = html_comment
+ if comment != null then
+ tpl.comment = comment
+ end
+ return tpl
+ end
+
+ redef fun tpl_css_classes do return ["public"]
+end
+
+redef class MClass
+ redef fun tpl_definition do return intro.tpl_definition
+
+ redef fun tpl_title do
+ var title = new Template
+ title.add tpl_icon
+ title.add html_link
+ return title
+ end
+
+ redef fun tpl_icon do return intro.tpl_icon
+ redef fun tpl_css_classes do return intro.tpl_css_classes
+end
+
+redef class MClassDef
+ redef fun tpl_article do
+ var tpl = new TplArticle(nitdoc_id)
+ tpl.summary_title = "in {mmodule.html_name}"
+ tpl.title = html_declaration
+ tpl.title_classes.add "signature"
+ var title = new Template
+ title.add "in "
+ title.add mmodule.html_namespace
+ tpl.subtitle = title
+ var comment = html_comment
+ if comment != null then
+ tpl.content = comment
+ end
+ return tpl
+ end
+
+ redef fun tpl_title do
+ var title = new Template
+ title.add tpl_icon
+ title.add html_link
+ return title
+ end
+
+ redef fun tpl_definition do
+ var tpl = new TplClassDefinition
+ var comment = html_comment
+ if comment != null then
+ tpl.comment = comment
+ end
+ return tpl
+ end
+
+ redef fun tpl_css_classes do
+ var set = new HashSet[String]
+ if is_intro then set.add "intro"
+ for m in mclass.intro.modifiers do set.add m.to_cmangle
+ for m in modifiers do set.add m.to_cmangle
+ return set.to_a
+ end
+
+ fun tpl_modifiers: Template do
+ var tpl = new Template
+ for modifier in modifiers do
+ if modifier == "public" then continue
+ tpl.add "{modifier.html_escape} "
+ end
+ return tpl
+ end
+end
+
+redef class MProperty
+ redef fun tpl_title do return intro.tpl_title
+ redef fun tpl_icon do return intro.tpl_icon
+ redef fun tpl_css_classes do return intro.tpl_css_classes
+end
+
+redef class MPropDef
+ redef fun tpl_article do
+ var tpl = new TplArticle(nitdoc_id)
+ tpl.summary_title = "in {mclassdef.html_name}"
+ var title = new Template
+ title.add "in "
+ title.add mclassdef.html_link
+ tpl.title = title
+ tpl.subtitle = html_declaration
+ var comment = html_comment
+ if comment != null then
+ tpl.content = comment
+ end
+ return tpl
+ end
+
+ redef fun tpl_definition do
+ var tpl = new TplDefinition
+ var comment = html_comment
+ if comment != null then
+ tpl.comment = comment
+ end
+ return tpl
+ end
+
+ redef fun tpl_css_classes do
+ var set = new HashSet[String]
+ if is_intro then set.add "intro"
+ for m in mproperty.intro.modifiers do set.add m.to_cmangle
+ for m in modifiers do set.add m.to_cmangle
+ return set.to_a
+ end
+
+ fun tpl_modifiers: Template do
+ var tpl = new Template
+ for modifier in modifiers do
+ if modifier == "public" then continue
+ tpl.add "{modifier.html_escape} "
+ end
+ return tpl
+ end
+
+ redef fun tpl_list_item do
+ var lnk = new Template
+ lnk.add new TplLabel.with_classes(tpl_css_classes.to_a)
+ var atext = html_link.text
+ var ahref = "{mclassdef.mclass.nitdoc_url}#{mproperty.nitdoc_id}"
+ var atitle = html_link.title
+ var anchor = new Link.with_title(ahref, atext, atitle)
+ lnk.add anchor
+ var comment = html_short_comment
+ if comment != null then
+ lnk.add ": "
+ lnk.add comment
+ end
+ return new TplListItem.with_content(lnk)
+ end
+
+ fun tpl_inheritance_item: TplListItem do
+ var lnk = new Template
+ lnk.add new TplLabel.with_classes(tpl_css_classes.to_a)
+ lnk.add mclassdef.mmodule.html_namespace
+ lnk.add "::"
+ var atext = mclassdef.html_link.text
+ var ahref = "{mclassdef.mclass.nitdoc_url}#{mproperty.nitdoc_id}"
+ var atitle = mclassdef.html_link.title
+ var anchor = new Link.with_title(ahref, atext, atitle)
+ lnk.add anchor
+ var comment = html_short_comment
+ if comment != null then
+ lnk.add ": "
+ lnk.add comment
+ end
+ var li = new TplListItem.with_content(lnk)
+ li.css_classes.add "signature"
+ return li
+ end
+end
+
+redef class ConcernsTree
+
+ private var seen = new HashSet[MConcern]
+
+ redef fun add(p, e) do
+ if seen.has(e) then return
+ seen.add e
+ super(p, e)
+ end
+
+ fun to_tpl: TplList do
+ var lst = new TplList.with_classes(["list-unstyled", "list-definition"])
+ for r in roots do
+ var li = r.tpl_concern_item
+ lst.add_li li
+ build_list(r, li)
+ end
+ return lst
+ end
+
+ private fun build_list(e: MConcern, li: TplListItem) do
+ if not sub.has_key(e) then return
+ var subs = sub[e]
+ var lst = new TplList.with_classes(["list-unstyled", "list-definition"])
+ for e2 in subs do
+ if e2 isa MGroup and e2.is_root then
+ build_list(e2, li)
+ else
+ var sli = e2.tpl_concern_item
+ lst.add_li sli
+ build_list(e2, sli)
+ end
+ end
+ li.append lst
+ end
+end
+
+redef class MInnerClassDef
+ redef fun tpl_definition do
+ var tpl = new TplClassDefinition
+ var comment = html_comment
+ if comment != null then
+ tpl.comment = comment
+ end
+ return tpl
+ end
+end
redef class MGroupPage
redef fun apply_structure(v, doc) do
+ var section = new MEntitySection(mentity)
+ root.add_child section
if mentity.is_root then
- root.add_child new IntroArticle(mentity.mproject)
+ section.add_child new IntroArticle(mentity.mproject)
else
- root.add_child new IntroArticle(mentity)
+ section.add_child new IntroArticle(mentity)
end
var concerns = self.concerns
if concerns == null or concerns.is_empty then return
concerns.sort_with(v.concerns_sorter)
mentity.mproject.booster_rank = 0
mentity.booster_rank = 0
- root.add_child new ConcernsArticle(mentity, concerns)
+ section.add_child new ConcernsArticle(mentity, concerns)
for mentity in concerns do
if mentity isa MModule then
- root.add_child new DefinitionArticle(mentity)
+ section.add_child new DefinitionArticle(mentity)
else
- root.add_child new ConcernSection(mentity)
+ section.add_child new ConcernSection(mentity)
end
end
end
redef class MModulePage
redef fun apply_structure(v, doc) do
- root.add_child new IntroArticle(mentity)
+ var section = new MEntitySection(mentity)
+ root.add_child section
+ section.add_child new IntroArticle(mentity)
var concerns = self.concerns
if concerns == null or concerns.is_empty then return
# FIXME avoid diff
mentity.mgroup.mproject.booster_rank = 0
mentity.mgroup.booster_rank = 0
mentity.booster_rank = 0
- root.add_child new ConcernsArticle(mentity, concerns)
+ section.add_child new ConcernsArticle(mentity, concerns)
# reference list
for mentity in concerns do
- var section = new ConcernSection(mentity)
+ var ssection = new ConcernSection(mentity)
if mentity isa MModule then
var mclasses = mclasses_for_mmodule(mentity).to_a
v.name_sorter.sort(mclasses)
for mclassdef in mclassdefs do
article.add_child(new DefinitionArticle(mclassdef))
end
- section.add_child article
+ ssection.add_child article
end
end
- root.add_child section
+ section.add_child ssection
end
end
redef class MClassPage
redef fun apply_structure(v, doc) do
- root.add_child new IntroArticle(mentity)
+ var section = new MEntitySection(mentity)
+ root.add_child section
+ section.add_child new IntroArticle(mentity)
var concerns = self.concerns
if concerns == null or concerns.is_empty then return
# FIXME diff hack
mentity.intro_mmodule.mgroup.mproject.booster_rank = 0
mentity.intro_mmodule.mgroup.booster_rank = 0
mentity.intro_mmodule.booster_rank = 0
- root.add_child new ConcernsArticle(mentity, concerns)
+ section.add_child new ConcernsArticle(mentity, concerns)
for mentity in concerns do
- var section = new ConcernSection(mentity)
+ var ssection = new ConcernSection(mentity)
if mentity isa MModule then
var mprops = mproperties_for(mentity)
var by_kind = new PropertiesByKind.with_elements(mprops)
v.name_sorter.sort(group)
for mprop in group do
for mpropdef in mpropdefs_for(mprop, mentity) do
- section.add_child new DefinitionArticle(mpropdef)
+ ssection.add_child new DefinitionArticle(mpropdef)
end
end
end
end
- root.add_child section
+ section.add_child ssection
end
end
redef class MPropertyPage
redef fun apply_structure(v, doc) do
- root.add_child new IntroArticle(mentity)
+ var section = new MEntitySection(mentity)
+ root.add_child section
+ section.add_child new IntroArticle(mentity)
var concerns = self.concerns
if concerns == null or concerns.is_empty then return
# FIXME diff hack
mentity.intro.mclassdef.mmodule.mgroup.mproject.booster_rank = 0
mentity.intro.mclassdef.mmodule.mgroup.booster_rank = 0
mentity.intro.mclassdef.mmodule.booster_rank = 0
- root.add_child new ConcernsArticle(mentity, concerns)
+ section.add_child new ConcernsArticle(mentity, concerns)
for mentity in concerns do
- var section = new ConcernSection(mentity)
+ var ssection = new ConcernSection(mentity)
if mentity isa MModule then
# Add mproperties
var mpropdefs = mpropdefs_for(mentity).to_a
v.name_sorter.sort(mpropdefs)
for mpropdef in mpropdefs do
- section.add_child new DefinitionArticle(mpropdef)
+ ssection.add_child new DefinitionArticle(mpropdef)
end
end
- root.add_child section
+ section.add_child ssection
end
end
super DocArticle
end
+# A section about a Mentity.
+#
+# Used to regroup content about a MEntity.
+class MEntitySection
+ super MEntityComposite
+ super DocSection
+end
+
# An introduction article about a MEntity.
#
# Used at the top of a documentation page to introduce the documented MEntity.
# general layout elements
#########################
-# Top menu bar template
-class TplTopMenu
- super Template
-
- # Brand link to display in first position of the top menu
- private var brand: nullable Writable = null is writable
- # Elements of the topmenu
- private var elts = new Array[Writable]
-
- # The page url where the top menu is displayed.
- #
- # Used to select the active link.
- private var current_url: String
-
- # Add a new link to the menu.
- fun add_link(content: TplLink) do
- var is_active = content.href == current_url
- add_item(content, is_active)
- end
-
- # Add a content between `<li>` tags
- fun add_item(content: Writable, is_active: Bool) do
- var tpl = new Template
- tpl.add "<li"
- if is_active then
- tpl.add " class=\"active\""
- end
- tpl.add ">"
- tpl.add content
- tpl.addn "</li>"
- add_raw(tpl)
- end
-
- # Add a raw content to the menu
- fun add_raw(content: Writable) do
- elts.add content
- end
-
- redef fun rendering do
- if brand == null and elts.is_empty then return
- addn "<nav id='topmenu' class='navbar navbar-default navbar-fixed-top' role='navigation'>"
- addn " <div class='container-fluid'>"
- addn " <div class='navbar-header'>"
- add " <button type='button' class='navbar-toggle' "
- addn " data-toggle='collapse' data-target='#topmenu-collapse'>"
- addn " <span class='sr-only'>Toggle menu</span>"
- addn " <span class='icon-bar'></span>"
- addn " <span class='icon-bar'></span>"
- addn " <span class='icon-bar'></span>"
- addn " </button>"
- if brand != null then add brand.as(not null)
- addn " </div>"
- addn " <div class='collapse navbar-collapse' id='topmenu-collapse'>"
- if not elts.is_empty then
- addn "<ul class='nav navbar-nav'>"
- for elt in elts do add elt
- addn "</ul>"
- end
- addn " </div>"
- addn " </div>"
- addn "</nav>"
- end
-end
-
# A sidebar template
class TplSidebar
super Template
import doc_base
import doc_down
import html_components
+import html::bootstrap
import ordered_tree
-redef class Location
- # Github url based on this location
- fun github(gitdir: String): String do
- var base_dir = getcwd.join_path(gitdir).simplify_path
- var file_loc = getcwd.join_path(file.filename).simplify_path
- var gith_loc = file_loc.substring(base_dir.length + 1, file_loc.length)
- return "{gith_loc}:{line_start},{column_start}--{line_end},{column_end}"
- end
-end
-
redef class MEntity
# ID used as a HTML unique ID and in file names.
#
# URL of this entity’s Nitdoc page.
fun nitdoc_url: String is abstract
- # A template link to the mentity `nitdoc_id`
- fun tpl_anchor: TplLink do
- var tpl = new TplLink("#{nitdoc_id}", nitdoc_name)
+ # Returns the mentity name without short signature.
+ #
+ # * MProject: `foo`
+ # * MGroup: `foo`
+ # * MModule: `foo`
+ # * MClass: `Foo[E]`
+ # * MClassDef: `Foo[E]`
+ # * MProperty: `foo(e)`
+ # * MPropdef: `foo(e)`
+ var html_name: String is lazy do return name.html_escape
+
+ # Returns a Link to the mentity `html_url`.
+ #
+ # Example: `<a href="html_url" title="mdoc.short_comment">html_short_name</a>
+ var html_link: Link is lazy do
+ var tpl = new Link(nitdoc_url, html_name)
var mdoc = mdoc_or_fallback
if mdoc != null then
tpl.title = mdoc.short_comment
return tpl
end
- # A template link to the mentity `nitdoc_url`
- fun tpl_link: TplLink do
- var tpl = new TplLink(nitdoc_url, nitdoc_name)
+ # Returns a Link to the mentity `nitdoc_id`.
+ #
+ # Example: `<a href="#nitdoc_id" title="mdoc.short_comment">html_short_name</a>
+ fun html_link_to_anchor: Link do
+ var tpl = new Link("#{nitdoc_id}", html_name)
var mdoc = mdoc_or_fallback
if mdoc != null then
tpl.title = mdoc.short_comment
return tpl
end
- # A template article that briefly describe the entity
- fun tpl_short_article: TplArticle do
- var tpl = tpl_article
- var mdoc = mdoc_or_fallback
- if mdoc != null then
- tpl.content = mdoc.tpl_short_comment
- end
- return tpl
- end
+ # Returns the list of keyword used in `self` declaration.
+ fun html_modifiers: Array[String] is abstract
- # A template article that describe the entity
- fun tpl_article: TplArticle do
- var tpl = new TplArticle.with_title(nitdoc_id, tpl_title)
- tpl.title_classes.add "signature"
- tpl.subtitle = tpl_namespace
- tpl.summary_title = nitdoc_name
+ # Returns the complete MEntity declaration decorated with HTML.
+ #
+ # * MProject: `project foo`
+ # * MGroup: `group foo`
+ # * MModule: `module foo`
+ # * MClass: `private abstract class Foo[E: Object]`
+ # * MClassDef: `redef class Foo[E]`
+ # * MProperty: `private fun foo(e: Object): Int`
+ # * MPropdef: `redef fun foo(e)`
+ fun html_declaration: Template do
+ var tpl = new Template
+ tpl.add "<span>"
+ tpl.add html_modifiers.join(" ")
+ tpl.add " "
+ tpl.add html_link
+ tpl.add "</span>"
return tpl
end
- # A template signature that contains modifiers and parameters
- fun tpl_declaration: Template is abstract
-
- # A template namespace
- fun tpl_namespace: Template is abstract
-
- # A template definition of the mentity
- # include name, sysnopsys, comment and namespace
- fun tpl_definition: TplDefinition is abstract
-
- # A li element that can go in a list
- fun tpl_list_item: TplListItem do
- var lnk = new Template
- lnk.add new TplLabel.with_classes(tpl_css_classes)
- lnk.add tpl_link
+ # Returns `self` namespace decorated with HTML links.
+ #
+ # * MProject: `mproject`
+ # * MGroup: `mproject(::group)`
+ # * MModule: `mgroup::mmodule`
+ # * MClass: `mproject::mclass`
+ # * MClassDef: `mmodule::mclassdef`
+ # * MProperty: `mclass::mprop`
+ # * MPropdef: `mclassdef:mpropdef`
+ fun html_namespace: Template is abstract
+
+ # Returns the comment of this MEntity formatted as HTML.
+ var html_comment: nullable Writable is lazy do
var mdoc = mdoc_or_fallback
- if mdoc != null then
- lnk.add ": "
- lnk.add mdoc.tpl_short_comment
- end
- return new TplListItem.with_content(lnk)
- end
-
- var tpl_css_classes = new Array[String]
-
- # Box title for this mentity
- fun tpl_title: Template do
- var title = new Template
- title.add tpl_icon
- title.add tpl_namespace
- return title
+ if mdoc == null then return null
+ return mdoc.tpl_comment
end
- # Icon that will be displayed before the title
- fun tpl_icon: TplIcon do
- var icon = new TplIcon.with_icon("tag")
- icon.css_classes.add_all(tpl_css_classes)
- return icon
- end
-end
-
-redef class MConcern
- # Return a li element for `self` that can be displayed in a concern list
- private fun tpl_concern_item: TplListItem do
- var lnk = new Template
- lnk.add tpl_anchor
+ # Returns the comment of this MEntity formatted as HTML.
+ var html_short_comment: nullable Writable is lazy do
var mdoc = mdoc_or_fallback
- if mdoc != null then
- lnk.add ": "
- lnk.add mdoc.tpl_short_comment
- end
- return new TplListItem.with_content(lnk)
+ if mdoc == null then return null
+ return mdoc.tpl_short_comment
end
end
redef class MProject
redef var nitdoc_id = name.to_cmangle is lazy
redef fun nitdoc_url do return root.nitdoc_url
-
- redef fun tpl_declaration do
- var tpl = new Template
- tpl.add "<span>project "
- tpl.add tpl_link
- tpl.add "</span>"
- return tpl
- end
-
- redef fun tpl_namespace do return tpl_link
-
- redef fun tpl_definition do
- var tpl = new TplDefinition
- var mdoc = mdoc_or_fallback
- if mdoc != null then
- tpl.comment = mdoc.tpl_comment
- end
- return tpl
- end
-
- redef fun tpl_css_classes do return ["public"]
+ redef var html_modifiers = ["project"]
+ redef fun html_namespace do return html_link
end
redef class MGroup
end
redef fun nitdoc_url do return "group_{nitdoc_id}.html"
+ redef var html_modifiers = ["group"]
- redef fun tpl_namespace do
+ # Depends if `self` is root or not.
+ #
+ # * If root `mproject`.
+ # * Else `mproject::self`.
+ redef fun html_namespace do
var tpl = new Template
- tpl.add mproject.tpl_namespace
+ tpl.add mproject.html_namespace
if mproject.root != self then
tpl.add "::"
- tpl.add tpl_link
- end
- return tpl
- end
-
- redef fun tpl_declaration do
- var tpl = new Template
- tpl.add "<span>group "
- tpl.add tpl_link
- tpl.add "</span>"
- return tpl
- end
-
- redef fun tpl_definition do
- var tpl = new TplDefinition
- var mdoc = mdoc_or_fallback
- if mdoc != null then
- tpl.comment = mdoc.tpl_comment
+ tpl.add html_link
end
return tpl
end
end
redef fun nitdoc_url do return "module_{nitdoc_id}.html"
+ redef var html_modifiers = ["module"]
- redef fun tpl_declaration do
- var tpl = new Template
- tpl.add "<span>module "
- tpl.add tpl_namespace
- tpl.add "</span>"
- return tpl
- end
-
- redef fun tpl_namespace do
+ # Depends if `self` belongs to a MGroup.
+ #
+ # * If mgroup `mgroup::self`.
+ # * Else `self`.
+ redef fun html_namespace do
var tpl = new Template
if mgroup != null then
- tpl.add mgroup.tpl_namespace
+ tpl.add mgroup.html_namespace
tpl.add "::"
end
- tpl.add tpl_link
- return tpl
- end
-
- redef fun tpl_definition do
- var tpl = new TplClassDefinition
- var mdoc = mdoc_or_fallback
- if mdoc != null then
- tpl.comment = mdoc.tpl_comment
- end
+ tpl.add html_link
return tpl
end
-
- redef fun tpl_css_classes do return ["public"]
end
redef class MClass
redef fun nitdoc_url do return "class_{nitdoc_id}.html"
redef fun mdoc_or_fallback do return intro.mdoc
- redef fun tpl_declaration do return intro.tpl_declaration
- redef fun tpl_definition do return intro.tpl_definition
-
- redef fun tpl_namespace do
- var tpl = new Template
- tpl.add intro_mmodule.mgroup.mproject.tpl_namespace
- tpl.add "::<span>"
- tpl.add tpl_link
- tpl.add "</span>"
- return tpl
- end
-
- redef fun tpl_title do
- var title = new Template
- title.add tpl_icon
- title.add tpl_link
- title.add tpl_signature
- return title
- end
-
- redef fun tpl_icon do return intro.tpl_icon
-
- fun tpl_signature: Template do
+ # Format: `Foo[E]`
+ redef var html_name is lazy do
var tpl = new Template
+ tpl.add name.html_escape
if arity > 0 then
tpl.add "["
var parameter_names = new Array[String]
for p in mparameters do
- parameter_names.add(p.nitdoc_name)
+ parameter_names.add(p.html_name)
end
tpl.add parameter_names.join(", ")
tpl.add "]"
end
- return tpl
+ return tpl.write_to_string
end
- redef fun tpl_article do
- var tpl = super
- tpl.summary_title = "{nitdoc_name}{tpl_signature.write_to_string}"
+ redef fun html_modifiers do return intro.html_modifiers
+ redef fun html_declaration do return intro.html_declaration
+
+ # Returns `mproject::self`.
+ redef fun html_namespace do
+ var tpl = new Template
+ tpl.add intro_mmodule.mgroup.mproject.html_namespace
+ tpl.add "::<span>"
+ tpl.add html_link
+ tpl.add "</span>"
return tpl
end
- redef fun tpl_css_classes do return intro.tpl_css_classes
+ # Returns `intro.html_short_signature`.
+ fun html_short_signature: Template do return intro.html_short_signature
+
+ # Returns `intro.html_signature`.
+ fun html_signature: Template do return intro.html_signature
end
redef class MClassDef
redef var nitdoc_id = "{mmodule.nitdoc_id}__{name.to_cmangle}" is lazy
redef fun nitdoc_url do return "{mclass.nitdoc_url}#{nitdoc_id}"
-
redef fun mdoc_or_fallback do return mdoc or else mclass.mdoc_or_fallback
- redef fun tpl_namespace do
- var tpl = new Template
- tpl.add mmodule.tpl_namespace
- tpl.add "::<span>"
- tpl.add mclass.tpl_link
- tpl.add "</span>"
- return tpl
- end
-
- redef fun tpl_article do
- var tpl = new TplArticle(nitdoc_id)
- tpl.summary_title = "in {mmodule.nitdoc_name}"
- tpl.title = tpl_declaration
- tpl.title_classes.add "signature"
- var title = new Template
- title.add "in "
- title.add mmodule.tpl_namespace
- tpl.subtitle = title
- var mdoc = mdoc_or_fallback
- if mdoc != null then
- tpl.content = mdoc.tpl_comment
+ # Depends if `self` is an intro or not.
+ #
+ # * If intro contains the visibility and kind.
+ # * If redef contains the `redef` keyword and kind.
+ redef fun html_modifiers do
+ var res = new Array[String]
+ if not is_intro then
+ res.add "redef"
+ else
+ if mclass.visibility != public_visibility then
+ res.add mclass.visibility.to_s
+ end
end
- return tpl
+ res.add mclass.kind.to_s
+ return res
end
- redef fun tpl_title do
- var title = new Template
- title.add tpl_icon
- title.add tpl_link
- title.add tpl_signature
- return title
+ # Depends if `self` is an intro or not.
+ #
+ # For intro: `private abstract class Foo[E: Object]`
+ # For redef: `redef class Foo[E]`
+ # TODO change the implementation to correspond to the comment.
+ redef fun html_declaration do
+ var tpl = new Template
+ tpl.add "<span>"
+ tpl.add html_modifiers.join(" ")
+ tpl.add " "
+ tpl.add html_link
+ tpl.add html_signature
+ tpl.add "</span>"
+ return tpl
end
- redef fun tpl_declaration do
+ # Returns `mmodule::self`
+ redef fun html_namespace do
var tpl = new Template
- tpl.add tpl_modifiers
- tpl.add tpl_link
- tpl.add tpl_signature
+ tpl.add mmodule.html_namespace
+ tpl.add "::<span>"
+ tpl.add mclass.html_link
+ tpl.add "</span>"
return tpl
end
- fun tpl_signature: Template do
+ # Returns the MClassDef generic signature without static bounds.
+ fun html_short_signature: Template do
var tpl = new Template
var mparameters = mclass.mparameters
if not mparameters.is_empty then
tpl.add "["
for i in [0..mparameters.length[ do
- tpl.add "{mparameters[i].nitdoc_name}: "
- tpl.add bound_mtype.arguments[i].tpl_signature
+ tpl.add mparameters[i].html_name
if i < mparameters.length - 1 then tpl.add ", "
end
tpl.add "]"
return tpl
end
- redef fun tpl_definition do
- var tpl = new TplClassDefinition
- var mdoc = mdoc_or_fallback
- if mdoc != null then
- tpl.comment = mdoc.tpl_comment
- end
- return tpl
- end
-
- redef fun tpl_css_classes do
- var set = new HashSet[String]
- if is_intro then set.add "intro"
- for m in mclass.intro.modifiers do set.add m.to_cmangle
- for m in modifiers do set.add m.to_cmangle
- return set.to_a
- end
-
- fun tpl_modifiers: Template do
+ # Returns the MClassDef generic signature with static bounds.
+ fun html_signature: Template do
var tpl = new Template
- for modifier in modifiers do
- if modifier == "public" then continue
- tpl.add "{modifier.html_escape} "
+ var mparameters = mclass.mparameters
+ if not mparameters.is_empty then
+ tpl.add "["
+ for i in [0..mparameters.length[ do
+ tpl.add "{mparameters[i].html_name}: "
+ tpl.add bound_mtype.arguments[i].html_signature
+ if i < mparameters.length - 1 then tpl.add ", "
+ end
+ tpl.add "]"
end
return tpl
end
redef class MProperty
redef var nitdoc_id = "{intro_mclassdef.mclass.nitdoc_id}__{name.to_cmangle}" is lazy
redef fun nitdoc_url do return "property_{nitdoc_id}.html"
-
redef fun mdoc_or_fallback do return intro.mdoc
+ redef fun html_modifiers do return intro.html_modifiers
+ redef fun html_declaration do return intro.html_declaration
- redef fun tpl_namespace do
+ # Returns `mclass::self`.
+ redef fun html_namespace do
var tpl = new Template
- tpl.add intro_mclassdef.mclass.tpl_namespace
+ tpl.add intro_mclassdef.mclass.html_namespace
tpl.add "::<span>"
- tpl.add intro.tpl_link
+ tpl.add intro.html_link
tpl.add "</span>"
return tpl
end
- redef fun tpl_declaration do return intro.tpl_declaration
+ # Returns `intro.html_short_signature`.
+ fun html_short_signature: Template do return intro.html_short_signature
- fun tpl_signature: Template do return new Template
-
- redef fun tpl_title do return intro.tpl_title
-
- redef fun tpl_icon do return intro.tpl_icon
-
- redef fun tpl_css_classes do return intro.tpl_css_classes
+ # Returns `intro.html_signature`.
+ fun html_signature: Template do return intro.html_signature
end
redef class MPropDef
redef var nitdoc_id = "{mclassdef.nitdoc_id}__{name.to_cmangle}" is lazy
redef fun nitdoc_url do return "{mproperty.nitdoc_url}#{nitdoc_id}"
-
redef fun mdoc_or_fallback do return mdoc or else mproperty.mdoc_or_fallback
- redef fun tpl_namespace do
- var tpl = new Template
- tpl.add mclassdef.tpl_namespace
- tpl.add "::"
- tpl.add tpl_link
- return tpl
- end
-
- redef fun tpl_article do
- var tpl = new TplArticle(nitdoc_id)
- tpl.summary_title = "in {mclassdef.nitdoc_name}"
- var title = new Template
- title.add "in "
- title.add mclassdef.tpl_link
- tpl.title = title
- tpl.subtitle = tpl_declaration
- var mdoc = mdoc_or_fallback
- if mdoc != null then
- tpl.content = mdoc.tpl_comment
+ # Depends if `self` is an intro or not.
+ #
+ # * If intro contains the visibility and kind.
+ # * If redef contains the `redef` keyword and kind.
+ redef fun html_modifiers do
+ var res = new Array[String]
+ if not is_intro then
+ res.add "redef"
+ else
+ if mproperty.visibility != public_visibility then
+ res.add mproperty.visibility.to_s
+ end
end
- return tpl
+ return res
end
- redef fun tpl_definition do
- var tpl = new TplDefinition
- var mdoc = mdoc_or_fallback
- if mdoc != null then
- tpl.comment = mdoc.tpl_comment
- end
+ # Depends if `self` is an intro or not.
+ #
+ # For intro: `private fun foo(e: Object): Bar is abstract`
+ # For redef: `redef fun foo(e) is cached`
+ # TODO change the implementation to correspond to the comment.
+ redef fun html_declaration do
+ var tpl = new Template
+ tpl.add "<span>"
+ tpl.add html_modifiers.join(" ")
+ tpl.add " "
+ tpl.add html_link
+ tpl.add html_signature
+ tpl.add "</span>"
return tpl
end
- redef fun tpl_declaration do
+ # Returns `mclassdef::self`
+ redef fun html_namespace do
var tpl = new Template
- tpl.add tpl_modifiers
- tpl.add tpl_link
- tpl.add tpl_signature
+ tpl.add mclassdef.html_namespace
+ tpl.add "::"
+ tpl.add html_link
return tpl
end
- redef fun tpl_css_classes do
- var set = new HashSet[String]
- if is_intro then set.add "intro"
- for m in mproperty.intro.modifiers do set.add m.to_cmangle
- for m in modifiers do set.add m.to_cmangle
- return set.to_a
- end
+ # Returns the MPropdDef signature without static types.
+ fun html_short_signature: Template is abstract
- fun tpl_modifiers: Template do
- var tpl = new Template
- for modifier in modifiers do
- if modifier == "public" then continue
- tpl.add "{modifier.html_escape} "
- end
- return tpl
- end
+ # Returns the MPropDef signature with static types.
+ fun html_signature: Template is abstract
+end
- fun tpl_signature: Template do return new Template
+redef class MAttributeDef
- redef fun tpl_list_item do
- var lnk = new Template
- lnk.add new TplLabel.with_classes(tpl_css_classes.to_a)
- var anchor = tpl_link
- anchor.href = "{mclassdef.mclass.nitdoc_url}#{mproperty.nitdoc_id}"
- lnk.add anchor
- var mdoc = mdoc_or_fallback
- if mdoc != null then
- lnk.add ": "
- lnk.add mdoc.tpl_short_comment
- end
- return new TplListItem.with_content(lnk)
+ redef fun html_modifiers do
+ var res = super
+ res.add "var"
+ return res
end
- fun tpl_inheritance_item: TplListItem do
- var lnk = new Template
- lnk.add new TplLabel.with_classes(tpl_css_classes.to_a)
- lnk.add mclassdef.mmodule.tpl_namespace
- lnk.add "::"
- var anchor = mclassdef.tpl_link
- anchor.href = "{mclassdef.mclass.nitdoc_url}#{mproperty.nitdoc_id}"
- lnk.add anchor
- var mdoc = mdoc_or_fallback
- if mdoc != null then
- lnk.add ": "
- lnk.add mdoc.tpl_short_comment
- end
- var li = new TplListItem.with_content(lnk)
- li.css_classes.add "signature"
- return li
- end
-end
+ redef fun html_short_signature do return new Template
-redef class MAttributeDef
- redef fun tpl_signature do
+ redef fun html_signature do
var tpl = new Template
if static_mtype != null then
tpl.add ": "
- tpl.add static_mtype.tpl_signature
+ tpl.add static_mtype.html_signature
end
return tpl
end
end
-redef class MMethod
- redef fun tpl_signature do
- var tpl = new Template
- var params = new Array[String]
- for param in intro.msignature.mparameters do
- params.add param.name.html_escape
+redef class MMethodDef
+
+ # FIXME annotation should be handled in their own way
+ redef fun html_modifiers do
+ var res = super
+ if is_abstract then
+ res.add "abstract"
+ else if is_intern then
+ res.add "intern"
end
- if not params.is_empty then
- tpl.add "("
- tpl.add params.join(", ")
- tpl.add ")"
+ if mproperty.is_init then
+ res.add "init"
+ else
+ res.add "fun"
end
- return tpl
+ return res
end
-end
-redef class MMethodDef
- redef fun tpl_signature do return msignature.tpl_signature
+ redef fun html_short_signature do return msignature.html_short_signature
+ redef fun html_signature do return msignature.html_signature
end
redef class MVirtualTypeProp
- redef fun tpl_link do return mvirtualtype.tpl_link
- redef fun tpl_signature do return tpl_link
+ redef fun html_link do return mvirtualtype.html_link
end
redef class MVirtualTypeDef
- redef fun tpl_signature do
+
+ redef fun html_modifiers do
+ var res = super
+ res.add "type"
+ return res
+ end
+
+ redef fun html_short_signature do return new Template
+
+ redef fun html_signature do
var tpl = new Template
if bound == null then return tpl
tpl.add ": "
- tpl.add bound.tpl_signature
+ tpl.add bound.html_signature
return tpl
end
end
redef class MType
- fun tpl_signature: Template is abstract
+ # Returns the signature of this type whithout bounds.
+ fun html_short_signature: Template is abstract
+
+ # Returns the signature of this type.
+ fun html_signature: Template is abstract
end
redef class MClassType
- redef fun tpl_link do return mclass.tpl_link
- redef fun tpl_signature do return tpl_link
+ redef fun html_link do return mclass.html_link
+ redef fun html_short_signature do return html_link
+ redef fun html_signature do return html_link
end
redef class MNullableType
- redef fun tpl_signature do
+
+ redef fun html_short_signature do
+ var tpl = new Template
+ tpl.add "nullable "
+ tpl.add mtype.html_short_signature
+ return tpl
+ end
+
+ redef fun html_signature do
var tpl = new Template
tpl.add "nullable "
- tpl.add mtype.tpl_signature
+ tpl.add mtype.html_signature
return tpl
end
end
redef class MGenericType
- redef fun tpl_signature do
+ redef fun html_short_signature do
+ var lnk = html_link
var tpl = new Template
- tpl.add tpl_link
+ tpl.add new Link.with_title(lnk.href, mclass.name.html_escape, lnk.title)
tpl.add "["
for i in [0..arguments.length[ do
- tpl.add arguments[i].tpl_signature
+ tpl.add arguments[i].html_short_signature
+ if i < arguments.length - 1 then tpl.add ", "
+ end
+ tpl.add "]"
+ return tpl
+ end
+
+ redef fun html_signature do
+ var lnk = html_link
+ var tpl = new Template
+ tpl.add new Link.with_title(lnk.href, mclass.name.html_escape, lnk.title)
+ tpl.add "["
+ for i in [0..arguments.length[ do
+ tpl.add arguments[i].html_signature
if i < arguments.length - 1 then tpl.add ", "
end
tpl.add "]"
end
redef class MParameterType
- redef fun tpl_link do
- return new TplLink.with_title("{mclass.nitdoc_url}#FT_{name.to_cmangle}", name, "formal type")
+ redef fun html_link do
+ return new Link.with_title("{mclass.nitdoc_url}#FT_{name.to_cmangle}", name, "formal type")
end
- redef fun tpl_signature do return tpl_link
+
+ redef fun html_short_signature do return html_link
+ redef fun html_signature do return html_link
end
redef class MVirtualType
- redef fun tpl_link do return mproperty.intro.tpl_link
- redef fun tpl_signature do return tpl_link
+ redef fun html_link do return mproperty.intro.html_link
+ redef fun html_signature do return html_link
end
redef class MSignature
- redef fun tpl_signature do
+
+ redef fun html_short_signature do
+ var tpl = new Template
+ if not mparameters.is_empty then
+ tpl.add "("
+ for i in [0..mparameters.length[ do
+ tpl.add mparameters[i].html_short_signature
+ if i < mparameters.length - 1 then tpl.add ", "
+ end
+ tpl.add ")"
+ end
+ return tpl
+ end
+
+ redef fun html_signature do
var tpl = new Template
if not mparameters.is_empty then
tpl.add "("
for i in [0..mparameters.length[ do
- tpl.add mparameters[i].tpl_signature
+ tpl.add mparameters[i].html_signature
if i < mparameters.length - 1 then tpl.add ", "
end
tpl.add ")"
end
if return_mtype != null then
tpl.add ": "
- tpl.add return_mtype.tpl_signature
+ tpl.add return_mtype.html_signature
end
return tpl
end
end
redef class MParameter
- fun tpl_signature: Template do
+
+ # Returns `self` name and ellipsys if any.
+ fun html_short_signature: Template do
var tpl = new Template
- tpl.add "{name}: "
- tpl.add mtype.tpl_signature
+ tpl.add name
if is_vararg then tpl.add "..."
return tpl
end
-end
-
-redef class ConcernsTree
-
- private var seen = new HashSet[MConcern]
-
- redef fun add(p, e) do
- if seen.has(e) then return
- seen.add e
- super(p, e)
- end
- fun to_tpl: TplList do
- var lst = new TplList.with_classes(["list-unstyled", "list-definition"])
- for r in roots do
- var li = r.tpl_concern_item
- lst.add_li li
- build_list(r, li)
- end
- return lst
- end
-
- private fun build_list(e: MConcern, li: TplListItem) do
- if not sub.has_key(e) then return
- var subs = sub[e]
- var lst = new TplList.with_classes(["list-unstyled", "list-definition"])
- for e2 in subs do
- if e2 isa MGroup and e2.is_root then
- build_list(e2, li)
- else
- var sli = e2.tpl_concern_item
- lst.add_li sli
- build_list(e2, sli)
- end
- end
- li.append lst
+ # Returns `self` name with it's static type and ellipsys if any.
+ fun html_signature: Template do
+ var tpl = new Template
+ tpl.add "{name}: "
+ tpl.add mtype.html_signature
+ if is_vararg then tpl.add "..."
+ return tpl
end
end
-
################################################################################
# Additions to `model_ext`.
redef class MRawType
- redef fun tpl_signature do
+ redef fun html_signature do
var tpl = new Template
for part in parts do
if part.target != null then
- tpl.add part.target.as(not null).tpl_link
+ tpl.add part.target.as(not null).html_link
else
tpl.add part.text.html_escape
end
redef class MInnerClass
redef fun nitdoc_url do return inner.nitdoc_url
- redef fun tpl_signature do return inner.tpl_signature
+ redef fun html_signature do return inner.html_signature
end
redef class MInnerClassDef
redef fun nitdoc_url do return inner.nitdoc_url
- redef fun tpl_anchor do return inner.tpl_anchor
- redef fun tpl_link do return inner.tpl_link
- redef fun tpl_signature do return inner.tpl_signature
-
- redef fun tpl_definition do
- var tpl = new TplClassDefinition
- var mdoc = mdoc_or_fallback
- if mdoc != null then
- tpl.comment = mdoc.tpl_comment
- end
- return tpl
- end
+ redef fun html_link_to_anchor do return inner.html_link_to_anchor
+ redef fun html_link do return inner.html_link
+ redef fun html_signature do return inner.html_signature
end
module html_templates
import html_model
+import html::bootstrap
# Renders the page as HTML.
redef class DocPage
var body_attrs = new Array[TagAttribute]
# Top menu template if any.
- var topmenu: TplTopMenu is writable, noinit
+ var topmenu: DocTopMenu is writable, noinit
# Sidebar template if any.
var sidebar: nullable TplSidebar = null is writable
addn ">"
end
- # Renders the topmenu template.
- private fun render_topmenu do
- addn " <div class='row'>"
- add topmenu
- addn " </div>"
- end
-
# Renders the sidebar template.
#
# Sidebar is automatically populated with a summary of all sections
redef fun rendering do
render_head
addn "<div class='container-fluid'>"
- render_topmenu
+ addn " <div class='row'>"
+ add topmenu
+ addn " </div>"
addn " <div class='row' id='content'>"
if sidebar != null then
addn "<div class='col col-xs-3 col-lg-2'>"
render_footer
end
end
+
+# Top menu bar template.
+#
+# FIXME should be a Bootstrap component template
+# At this moment, the topmenu structure stills to specific to Nitdoc to use the
+# generic component.
+class DocTopMenu
+ super UnorderedList
+
+ # Brand link to display in first position of the top menu.
+ #
+ # This is where you want to put your logo.
+ var brand: nullable Writable is noinit, writable
+
+ # Active menu item.
+ #
+ # Depends on the current page, this allows to hilighted the current item.
+ #
+ # FIXME should be using Boostrap breadcrumbs component.
+ # This will still like this to avoid diff and be changed in further fixes
+ # when we will modify the output.
+ var active_item: nullable ListItem is noinit, writable
+
+ redef fun rendering do
+ addn "<nav id='topmenu' class='navbar navbar-default navbar-fixed-top' role='navigation'>"
+ addn " <div class='container-fluid'>"
+ addn " <div class='navbar-header'>"
+ add " <button type='button' class='navbar-toggle' "
+ addn " data-toggle='collapse' data-target='#topmenu-collapse'>"
+ addn " <span class='sr-only'>Toggle menu</span>"
+ addn " <span class='icon-bar'></span>"
+ addn " <span class='icon-bar'></span>"
+ addn " <span class='icon-bar'></span>"
+ addn " </button>"
+ if brand != null then
+ add "<span class='navbar-brand'>"
+ add brand.write_to_string
+ add "</span>"
+ end
+ addn " </div>"
+ addn " <div class='collapse navbar-collapse' id='topmenu-collapse'>"
+ addn " <ul class='nav navbar-nav'>"
+ for item in items do
+ if item == active_item then item.css_classes.add "active"
+ add item.write_to_string
+ end
+ addn " </ul>"
+ addn " </div>"
+ addn " </div>"
+ addn "</nav>"
+ end
+end
+
+redef class DocComposite
+ super Template
+
+ # HTML anchor id
+ var html_id: String is noinit
+
+ # Title to display if any.
+ #
+ # This title can be decorated with HTML.
+ var html_title: nullable Writable is noinit, writable
+
+ # Subtitle to display if any.
+ var html_subtitle: nullable Writable is noinit, writable
+
+ # Render the element title and subtitle.
+ private fun render_title do
+ if html_title != null then
+ addn new Header(hlvl, html_title.write_to_string)
+ end
+ if html_subtitle != null then
+ addn "<div class='info subtitle'>"
+ addn html_subtitle.write_to_string
+ addn "</div>"
+ end
+ end
+
+ # Render the element body.
+ private fun render_body do end
+
+ redef fun rendering do
+ if is_hidden then return
+ render_title
+ render_body
+ end
+
+ # Level <hX> for HTML heading.
+ private fun hlvl: Int do
+ if parent == null then return 1
+ return parent.hlvl + 1
+ end
+
+ # Is `self` not displayed in the page.
+ #
+ # By default, empty elements are hidden.
+ fun is_hidden: Bool do return is_empty
+end
+
+redef class DocSection
+ super BSComponent
+
+ redef fun rendering do
+ if is_hidden then
+ addn "<a id=\"{html_id}\"></a>"
+ return
+ end
+ render_body
+ end
+end
+
+redef class DocArticle
+ super BSComponent
+
+ # Never displays the title for article.
+ #
+ # This is to maintain compatibility with old components, this may change
+ # without notice in further version.
+ redef fun render_title do end
+end
stream.close
var error = stream.last_error
if error != null then
- toolcontext.error(null, "Failed to write Vim autocomplete file: {error}")
+ toolcontext.error(null, "Error: failed to write Vim autocomplete file: {error}.")
end
end
end
var modelbuilder = toolcontext.modelbuilder
if not nmoduledecl isa AModuledecl then
- modelbuilder.error(nat, "Syntax error: only the declaration of modules may use \"{annotation_name}\".")
+ modelbuilder.error(nat, "Syntax Error: only the declaration of modules may use `{annotation_name}`.")
return
end
var args = nat.n_args
if args.is_empty then
- modelbuilder.error(nat, "Syntax error: \"{annotation_name}\" expects at least one argument.")
+ modelbuilder.error(nat, "Syntax Error: `{annotation_name}` expects at least one argument.")
return
end
# We support calls to "exec" only
var exec_args = expr.n_args.to_a
if expr.n_id.text != "exec" or exec_args.is_empty then
- modelbuilder.error(nat, "Syntax error: \"{annotation_name}\" accepts only calls to `exec` with the command as arguments.")
+ modelbuilder.error(nat, "Syntax Error: `{annotation_name}` accepts only calls to `exec` with the command as arguments.")
return
end
var exec_args_as_strings = new Array[String]
for exec_arg in exec_args do
if not exec_arg isa AStringFormExpr then
- modelbuilder.error(nat, "Syntax error: calls to `exec` expects the arguments to be String literals.")
+ modelbuilder.error(nat, "Syntax Error: calls to `exec` expects the arguments to be String literals.")
return
else
var arg_string = exec_arg.collect_text
var opt = new ExecCCompilerOption(exec_args_as_strings, expr)
options.add(opt)
else
- modelbuilder.error(nat, "Syntax error: \"{annotation_name}\" expects its arguments to be the name of the package as String literals.")
+ modelbuilder.error(nat, "Syntax Error: `{annotation_name}` expects its arguments to be the name of the package as String literals.")
return
end
end
# check result
var status = proc.status
if status != 0 then
- modelbuilder.error(opt.exec_node, "Annotation error: Something went wrong executing the argument of annotation \"{annotation_name}\", make sure the command is valid.")
+ modelbuilder.error(opt.exec_node, "Error: something went wrong when executing the argument of `{annotation_name}`, make sure the command is valid.")
return
end
# process result
var result = proc.read_all.replace("\n", " ")
if result.is_empty then
- modelbuilder.error(opt.exec_node, "Annotation error: Got no result from the command, make sure it is valid.")
+ modelbuilder.error(opt.exec_node, "Error: got no result from the command, make sure it is valid.")
return
end
simplified_options.add(new DirectCCompilerOption(result))
if annots != null then
var items = annots.n_items
if items.length > 1 then
- modelbuilder.error(annots, "Annotation error: `annotation_name` accepts only a single annotation, the platform name")
+ modelbuilder.error(annots, "Syntax Error: `{annotation_name}` accepts only a single annotation, the platform name.")
return
end
assert items.length == 1
if code_block == null then return
if nclassdef.n_kwredef != null then
- # A redef cannot specifiy a different extern type
- toolcontext.error(nclassdef.location, "Only the introduction of a class can specify an extern type.")
+ # A redef cannot specify a different extern type
+ toolcontext.error(nclassdef.location, "FFI Error: only the introduction of a class can declare an extern type.")
return
end
if not nclassdef isa AStdClassdef then return
var mclassdef = nclassdef.mclassdef
- var mclass = nclassdef.mclass
+ if mclassdef == null then return
+ var mclass = mclassdef.mclass
# We only need to do this once per class
- if mclass.intro != mclassdef then return
+ if not mclassdef.is_intro then return
if mclass.kind != extern_kind then return
else
# detect conflict
if super_ftype != ftype_b then
- v.toolcontext.error(null, "Extern type conflict in {self}")
+ v.toolcontext.error(null, "FFI Error: extern type conflict in `{self}`.")
return null
end
end
var modelbuilder = toolcontext.modelbuilder
if not nmoduledecl isa AModuledecl then
- modelbuilder.error(nat, "Syntax error: only the declaration of modules may use \"{annot_name}\".")
+ modelbuilder.error(nat, "Syntax Error: only the declaration of modules may use `{annot_name}`.")
return
end
var args = nat.n_args
if args.is_empty then
- modelbuilder.error(nat, "Syntax error: \"{annot_name}\" expects at least one argument.")
+ modelbuilder.error(nat, "Syntax Error: `{annot_name}` expects at least one argument.")
return
end
mmodule.extra_java_files = java_files
end
- var format_error = "Syntax error: \"{annot_name}\" expects its arguments to be paths to java files."
+ var format_error = "Syntax Error: `{annot_name}` expects its arguments to be paths to java files."
for arg in args do
var path = arg.as_string
if path == null then
if source_file != null then path = "{source_file.filename.dirname}/{path}"
if not path.file_exists then
- modelbuilder.error(nat, "FFI with Java error: file \"{path}\" not found.")
+ modelbuilder.error(nat, "FFI with Java Error: file `{path}` not found.")
continue
end
var identified = v.identify_language(n)
if identified then
if found and identified then
- toolcontext.error(n.location, "Two languages identified as possible handlers.")
+ toolcontext.error(n.location, "FFI Error: two languages identified as possible handlers.")
end
n.language = v
found = true
end
end
- if not found then toolcontext.error(n.location, "Unsupported language.")
+ if not found then toolcontext.error(n.location, "FFI Error: unsupported language.")
end
end
assert sys_class != null
var sys_jni_env_meth = modelbuilder.try_get_mproperty_by_name2(self, mmodule, sys_class.mclass_type, "jni_env")
if sys_jni_env_meth == null or not sys_jni_env_meth isa MMethod then
- toolcontext.error(self.location, "Java FFI error: you must import the `java` module when using the FFI with Java")
+ toolcontext.error(self.location, "Java FFI Error: you must import the `java` module when using the FFI with Java")
return
end
var modelbuilder = toolcontext.modelbuilder
if not nmoduledecl isa AModuledecl then
- modelbuilder.error(nat, "Syntax error: only the declaration of modules may use \"pkgconfig\".")
+ modelbuilder.error(nat, "Syntax Error: only the declaration of modules may use `pkgconfig`.")
return
end
for arg in args do
var pkg = arg.as_string
if pkg == null then
- modelbuilder.error(nat, "Syntax error: \"pkgconfig\" expects its arguments to be the name of the package as String literals.")
+ modelbuilder.error(nat, "Syntax Error: `pkgconfig` expects its arguments to be the name of the package as String literals.")
return
end
proc_which.wait
var status = proc_which.status
if status != 0 then
- modelbuilder.error(nat, "Error: program pkg-config not found, make sure it is installed.")
+ modelbuilder.error(nat, "Error: program `pkg-config` not found, make sure it is installed.")
return
end
proc_exist.wait
status = proc_exist.status
if status == 1 then
- modelbuilder.error(nat, "Error: package \"{pkg}\" unknown by pkg-config, make sure the development package is be installed.")
+ modelbuilder.error(nat, "Error: package `{pkg}` unknown by `pkg-config`, make sure the development package is be installed.")
return
else if status != 0 then
- modelbuilder.error(nat, "Error: something went wrong calling pkg-config, make sure it is correctly installed.")
+ modelbuilder.error(nat, "Error: something went wrong calling `pkg-config`, make sure it is correctly installed.")
return
end
do
# Get the mmodule
var mmodule = nmodule.mmodule
- assert mmodule != null
+ if mmodule == null then return
self.mmodule = mmodule
# If no decl block then quit
for m in super_mmodules do
if declared_annotations[m].has(name) then
- modelbuilder.warning(annot, "multiple-annotation-declarations", "Warning: an annotation `{name}` is already declared in module `{m}`")
+ modelbuilder.warning(annot, "multiple-annotation-declarations", "Warning: an annotation `{name}` is already declared in module `{m}`.")
break label
end
end
if primtives_annotations.has(name) then return
var mmodule = self.mmodule
- assert mmodule != null
+ if mmodule == null then return
# Lazily build the full user-list
var annots = user_annotations.get_or_null(mmodule)
if annots.has(name) then return
- toolcontext.modelbuilder.warning(nat, "unknown-annotation", "Warning: unknown annotation `{name}`")
+ toolcontext.modelbuilder.warning(nat, "unknown-annotation", "Warning: unknown annotation `{name}`.")
annots.add(name) # to avoid multiple errors on the same name
end
do
if nat.name == "auto_inspect" then
if not nclassdef isa AStdClassdef then
- toolcontext.error(nclassdef.location, "Syntax error: only a concrete class can be `{nat.name}`.")
+ toolcontext.error(nclassdef.location, "Syntax Error: only a concrete class can be `{nat.name}`.")
else
generate_inspect_method(nclassdef)
end
if nat.name == "auto_derive" then
if not nclassdef isa AStdClassdef then
- toolcontext.error(nclassdef.location, "Syntax error: only a concrete class can be `{nat.name}`.")
+ toolcontext.error(nclassdef.location, "Syntax Error: only a concrete class can be `{nat.name}`.")
else
generate_derive_to_map_method(nclassdef, nat)
end
redef fun process_nmodule(nmodule)
do
# The AST node is not enough, we need also the associated model element
- var mmodule = nmodule.mmodule.as(not null)
+ var mmodule = nmodule.mmodule
+ if mmodule == null then return
# For the specific job we have, the simpler it to launch a visitor on
# all elements of the AST.
var visitor = new DivByZeroVisitor(toolcontext, mmodule)
if not op1.mtype.is_subtype(mmodule, null, int_type) then return
# Error detected
- toolcontext.error(node.location, "Error: Definitely division by zero")
+ toolcontext.warning(node.location, "div-by-zero", "Warning: division by zero.")
end
end
# Only applicable on strings
if not nstring isa AStringFormExpr then
toolcontext.error(nstring.location,
- "Syntax error: only a string literal can be annotated as \"{annot_name}\".")
+ "Syntax Error: only a string literal can be annotated as `{annot_name}`.")
return
end
tool_is_in_path = in_path
if not in_path then
toolcontext.warning(nat.location, "glslvalidator",
- "Warning: program \"glslangValidator\" not in PATH, cannot validate this shader.")
+ "Warning: program `glslangValidator` not in PATH, cannot validate this shader.")
return
end
end
do
# Get the mmodule
var mmodule = nmodule.mmodule
- assert mmodule != null
+ if mmodule == null then return
var source = nmodule.location.file
if annots.is_empty then return
if source == null then
- modelbuilder.warning(annots.first, "file-less-module", "Warning: annotation `{name}` does not currently work on file-less modules.")
+ modelbuilder.warning(annots.first, "file-less-module", "Warning: `{name}` does not currently work on file-less modules.")
return
end
for annot in annots do
var args = annot.n_args
if args.is_empty then
- modelbuilder.error(annot, "Annotation error: `{name}` needs a list of warnings. Use `\"all\"` to disable all warnings.")
+ modelbuilder.error(annot, "Syntax Error: `{name}` expects a list of warnings. Use `\"all\"` to disable all warnings.")
continue
end
for arg in args do
var tag = arg.as_string
if tag == null then
- modelbuilder.error(arg, "Annotation error: `{name}` expects String as arguments.")
+ modelbuilder.error(arg, "Syntax Error: `{name}` expects String as arguments.")
continue
end
if nat.n_atid.n_id.text != "threaded" then return
if not nmethdef isa AMethPropdef then
- toolcontext.error(nmethdef.location, "Syntax error: only a method can be threaded.")
+ toolcontext.error(nat.location, "Syntax Error: only a method can be threaded.")
return
end
# Skip if we are not interested
if nat.n_atid.n_id.text != "auto_serializable" then return
if not nclassdef isa AStdClassdef then
- toolcontext.error(nclassdef.location, "Syntax error: only a concrete class can be automatically serialized.")
+ toolcontext.error(nclassdef.location, "Syntax Error: only a concrete class can be automatically serialized.")
return
end
code.add " redef fun deserialize_class(name)"
code.add " do"
else
- toolcontext.error(deserializer_npropdef.location, "Annotation error: you cannot define Deserializer::deserialize_class in a module where you use \"auto_serializable\".")
+ toolcontext.error(deserializer_npropdef.location, "Error: you cannot define `Deserializer::deserialize_class` in a module where you use `auto_serializable`.")
return
end
redef fun process_nmodule(nmodule)
do
for npropdef in nmodule.inits_to_retype do
- var v = new PreciseTypeVisitor(npropdef, npropdef.mpropdef.mclassdef, toolcontext)
+ var mpropdef = npropdef.mpropdef
+ if mpropdef == null then continue # skip error
+ var v = new PreciseTypeVisitor(npropdef, mpropdef.mclassdef, toolcontext)
npropdef.accept_precise_type_visitor v
end
end
htmlize(s.first_token.as(not null), s.last_token.as(not null))
end
+ private fun full_tag(anode: ANode, hv: HighlightVisitor): nullable HTMLTag
+ do
+ var tag = anode.make_tag(hv)
+ if tag == null then return null
+ var infobox = anode.infobox(hv)
+ if infobox == null and anode isa Token then
+ var pa = anode.parent
+ if pa != null then
+ var c = anode
+ if c isa TId or c isa TClassid or c isa TAttrid or c isa TokenLiteral or c isa TokenOperator or c isa TComment and pa isa ADoc then
+ infobox = pa.decorate_tag(hv, tag, anode)
+ end
+ end
+ end
+ var messages = anode.location.messages
+ if messages != null then
+ tag.css("border-bottom", "solid 2px red")
+ if infobox == null then
+ infobox = new HInfoBox(hv, "Messages")
+ end
+ var c = infobox.new_dropdown("{messages.length} message(s)", "")
+ for m in messages do
+ c.open("li").append(m.text)
+ end
+ end
+ if infobox != null then
+ tag.attach_infobox(infobox)
+ end
+ return tag
+ end
+
# Produce HTML between two tokens
protected fun htmlize(first_token, last_token: Token)
do
if c0 != null then starting = c0.starting_prods
if starting != null then for p in starting do
if not p.is_block then continue
- var tag = p.make_tag(hv)
+ var tag = full_tag(p, hv)
if tag == null then continue
tag.add_class("foldable")
- var infobox = p.infobox(hv)
- if infobox != null then tag.attach_infobox(infobox)
stack2.add(html)
html.add tag
html = tag
starting = c.starting_prods
if starting != null then for p in starting do
if not p.is_span then continue
- var tag = p.make_tag(hv)
+ var tag = full_tag(p, hv)
if tag == null then continue
- var infobox = p.infobox(hv)
- if infobox != null then tag.attach_infobox(infobox)
stack2.add(html)
html.add tag
html = tag
if c isa TEol then
html.append "\n"
else
- var tag = c.make_tag(hv)
- var pa = c.parent
- var infobox = null
- if c isa TId or c isa TClassid or c isa TAttrid or c isa TokenLiteral or c isa TokenOperator then
- assert c != null
- if pa != null then infobox = pa.decorate_tag(hv, tag, c)
- else if c isa TComment and pa isa ADoc then
- infobox = pa.decorate_tag(hv, tag, c)
- end
- if infobox != null then tag.attach_infobox(infobox)
- html.add tag
+ var tag = full_tag(c, hv)
+ if tag != null then html.add tag
end
# Handle ending span productions
c = n
end
- assert stack.is_empty
- assert stack2.is_empty
+ #assert stack.is_empty
+ #assert stack2.is_empty
end
# Return a default CSS content related to CSS classes used in the `html` tree.
end
end
+redef class MNotNullType
+ redef fun infobox(v)
+ do
+ return mtype.infobox(v)
+ end
+ redef fun linkto
+ do
+ var res = new HTMLTag("span")
+ res.append("not null ").add(mtype.linkto)
+ return res
+ end
+end
+
+redef class MNullType
+ redef fun infobox(v)
+ do
+ var res = new HInfoBox(v, to_s)
+ return res
+ end
+ redef fun linkto
+ do
+ var res = new HTMLTag("span")
+ res.append("null")
+ return res
+ end
+end
+
redef class MSignature
redef fun linkto
do
end
redef fun decorate_tag(v, res, token)
do
+ if not token isa TClassid then return null
res.add_class("nc_def")
var md = mclassdef
do
var mt = mtype
if mt == null then return null
- mt = mt.as_notnullable
- if mt isa MVirtualType or mt isa MParameterType then
+ mt = mt.undecorate
+ if mt isa MFormalType then
res.add_class("nc_vt")
end
return mt.infobox(v)
# This method is used to manage varargs in signatures and returns the real array
# of instances to use in the call.
# Return `null` if one of the evaluation of the arguments return null.
- fun varargize(mpropdef: MMethodDef, recv: Instance, args: SequenceRead[AExpr]): nullable Array[Instance]
+ fun varargize(mpropdef: MMethodDef, map: nullable SignatureMap, recv: Instance, args: SequenceRead[AExpr]): nullable Array[Instance]
do
var msignature = mpropdef.new_msignature or else mpropdef.msignature.as(not null)
var res = new Array[Instance]
res.add(recv)
- if args.is_empty then return res
+ if msignature.arity == 0 then return res
- var vararg_rank = msignature.vararg_rank
- var vararg_len = args.length - msignature.arity
- if vararg_len < 0 then vararg_len = 0
+ if map == null then
+ assert args.length == msignature.arity else debug("Expected {msignature.arity} args, got {args.length}")
+ for ne in args do
+ var e = self.expr(ne)
+ if e == null then return null
+ res.add e
+ end
+ return res
+ end
+
+ # Eval in order of arguments, not parameters
+ var exprs = new Array[Instance].with_capacity(args.length)
+ for ne in args do
+ var e = self.expr(ne)
+ if e == null then return null
+ exprs.add e
+ end
+
+ # Fill `res` with the result of the evaluation according to the mapping
for i in [0..msignature.arity[ do
- if i == vararg_rank then
- var ne = args[i]
- if ne isa AVarargExpr then
- var e = self.expr(ne.n_expr)
- if e == null then return null
- res.add(e)
- continue
- end
- var vararg = new Array[Instance]
- for j in [vararg_rank..vararg_rank+vararg_len] do
- var e = self.expr(args[j])
- if e == null then return null
- vararg.add(e)
- end
- var elttype = msignature.mparameters[vararg_rank].mtype.anchor_to(self.mainmodule, recv.mtype.as(MClassType))
- res.add(self.array_instance(vararg, elttype))
- else
- var j = i
- if i > vararg_rank then j += vararg_len
- var e = self.expr(args[j])
- if e == null then return null
- res.add(e)
+ var param = msignature.mparameters[i]
+ var j = map.map.get_or_null(i)
+ if j == null then
+ # default value
+ res.add(null_instance)
+ continue
+ end
+ if param.is_vararg and map.vararg_decl > 0 then
+ var vararg = exprs.sub(j, map.vararg_decl)
+ var elttype = param.mtype.anchor_to(self.mainmodule, recv.mtype.as(MClassType))
+ var arg = self.array_instance(vararg, elttype)
+ res.add(arg)
+ continue
end
+ res.add exprs[j]
end
return res
end
var recvval = args[0].to_i
if pname == "unary -" then
return v.int_instance(-args[0].to_i)
+ else if pname == "unary +" then
+ return args[0]
else if pname == "+" then
return v.int_instance(args[0].to_i + args[1].to_i)
else if pname == "-" then
var recv = args[0].to_f
if pname == "unary -" then
return v.float_instance(-recv)
+ else if pname == "unary +" then
+ return args[0]
else if pname == "+" then
return v.float_instance(recv + args[1].to_f)
else if pname == "-" then
else if pname == "file_exists" then
return v.bool_instance(recvval.to_s.file_exists)
else if pname == "file_mkdir" then
- recvval.to_s.mkdir
- return null
+ var res = recvval.to_s.mkdir
+ return v.bool_instance(res == null)
else if pname == "file_chdir" then
- recvval.to_s.chdir
- return null
+ var res = recvval.to_s.chdir
+ return v.bool_instance(res == null)
else if pname == "file_realpath" then
return v.native_string_instance(recvval.to_s.realpath)
else if pname == "get_environ" then
return v.int_instance(res)
else if pname == "atof" then
return v.float_instance(recvval.to_f)
+ else if pname == "fast_cstring" then
+ var ns = recvval.to_cstring.to_s.substring_from(args[1].to_i)
+ return v.native_string_instance(ns)
end
else if cname == "String" then
var cs = v.send(v.force_get_primitive_method("to_cstring", args.first.mtype), [args.first])
end
redef class AVardeclExpr
- redef fun stmt(v)
+ redef fun expr(v)
do
var ne = self.n_expr
if ne != null then
var i = v.expr(ne)
- if i == null then return
+ if i == null then return null
v.write_variable(self.variable.as(not null), i)
+ return i
end
+ return null
end
end
end
end
+redef class AImplicitSelfExpr
+ redef fun expr(v)
+ do
+ if not is_sys then return super
+ return v.mainobj
+ end
+end
+
redef class AEscapeExpr
redef fun stmt(v)
do
end
end
+redef class AWithExpr
+ redef fun stmt(v)
+ do
+ var expr = v.expr(self.n_expr)
+ if expr == null then return
+
+ v.callsite(method_start, [expr])
+ v.stmt(self.n_block)
+ v.is_escape(self.break_mark) # Clear the break
+ v.callsite(method_finish, [expr])
+ end
+end
+
redef class AAssertExpr
redef fun stmt(v)
do
do
var recv = v.expr(self.n_expr)
if recv == null then return null
- var args = v.varargize(callsite.mpropdef, recv, self.raw_arguments)
+ var args = v.varargize(callsite.mpropdef, callsite.signaturemap, recv, self.raw_arguments)
if args == null then return null
var res = v.callsite(callsite, args)
do
var recv = v.expr(self.n_expr)
if recv == null then return
- var args = v.varargize(callsite.mpropdef, recv, self.raw_arguments)
+ var args = v.varargize(callsite.mpropdef, callsite.signaturemap, recv, self.raw_arguments)
if args == null then return
var value = v.expr(self.n_value)
if value == null then return
var callsite = self.callsite
if callsite != null then
- var args = v.varargize(callsite.mpropdef, recv, self.n_args.n_exprs)
- if args == null then return null
- # Add additional arguments for the super init call
- if args.length == 1 then
+ var args
+ if self.n_args.n_exprs.is_empty then
+ # Add automatic arguments for the super init call
+ args = [recv]
for i in [0..callsite.msignature.arity[ do
args.add(v.frame.arguments[i+1])
end
+ else
+ args = v.varargize(callsite.mpropdef, callsite.signaturemap, recv, self.n_args.n_exprs)
+ if args == null then return null
end
+
# Super init call
var res = v.callsite(callsite, args)
return res
end
- # standard call-next-method
+ # Standard call-next-method
var mpropdef = self.mpropdef
mpropdef = mpropdef.lookup_next_definition(v.mainmodule, recv.mtype)
- var args = v.varargize(mpropdef, recv, self.n_args.n_exprs)
- if args == null then return null
-
- if args.length == 1 then
+ var args
+ if self.n_args.n_exprs.is_empty then
args = v.frame.arguments
+ else
+ args = v.varargize(mpropdef, signaturemap, recv, self.n_args.n_exprs)
+ if args == null then return null
end
+
var res = v.call(mpropdef, args)
return res
end
var mtype = v.unanchor_type(self.recvtype.as(not null))
var recv: Instance = new MutableInstance(mtype)
v.init_instance(recv)
- var args = v.varargize(callsite.mpropdef, recv, self.n_args.n_exprs)
+ var callsite = self.callsite
+ if callsite == null then return recv
+
+ var args = v.varargize(callsite.mpropdef, callsite.signaturemap, recv, self.n_args.n_exprs)
if args == null then return null
var res2 = v.callsite(callsite, args)
if res2 != null then
end
end
+redef class AVarargExpr
+ redef fun expr(v)
+ do
+ return v.expr(self.n_expr)
+ end
+end
+
redef class ADebugTypeExpr
redef fun stmt(v)
do
do
var txt = self.n_char.text.unescape_nit
if txt.length != 3 then
- v.toolcontext.error(self.hot_location, "Invalid character literal {txt}")
+ v.toolcontext.error(self.hot_location, "Syntax Error: invalid character literal `{txt}`.")
return
end
self.value = txt.chars[1]
if nmodule == null then continue # Skip error
# Load imported module
build_module_importation(nmodule)
-
- mmodules.add(nmodule.mmodule.as(not null))
+ var mmodule = nmodule.mmodule
+ if mmodule == null then continue # skip error
+ mmodules.add mmodule
end
var time1 = get_time
self.toolcontext.info("*** END PARSE: {time1-time0} ***", 2)
if nmodule == null then continue # Skip error
# Load imported module
build_module_importation(nmodule)
-
- res.add(nmodule.mmodule.as(not null))
+ var mmodule = nmodule.mmodule
+ if mmodule == null then continue # Skip error
+ res.add mmodule
end
end
return res
end
# Load a bunch of modules and groups.
- # Each name can be a module or a group.
- # If it is a group then recursively all its modules are parsed.
+ #
+ # Each name can be:
+ #
+ # * a path to a module, a group or a directory of projects.
+ # * a short name of a module or a group that are looked in the `paths` (-I)
+ #
+ # Then, for each entry, if it is:
+ #
+ # * a module, then is it parser and returned.
+ # * a group then recursively all its modules are parsed.
+ # * a directory of projects then all the modules of all projects are parsed.
+ # * else an error is displayed.
+ #
# See `parse` for details.
fun parse_full(names: Sequence[String]): Array[MModule]
do
self.toolcontext.info("*** PARSE ***", 1)
var mmodules = new ArraySet[MModule]
for a in names do
+ # Case of a group
var mgroup = self.get_mgroup(a)
if mgroup != null then
mmodules.add_all parse_group(mgroup)
continue
end
+
+ # Case of a directory that is not a group
+ var stat = a.to_path.stat
+ if stat != null and stat.is_dir then
+ self.toolcontext.info("look in directory {a}", 2)
+ var fs = a.files
+ # Try each entry as a group or a module
+ for f in fs do
+ var af = a/f
+ mgroup = get_mgroup(af)
+ if mgroup != null then
+ mmodules.add_all parse_group(mgroup)
+ continue
+ end
+ var mp = identify_file(af)
+ if mp != null then
+ var nmodule = self.load_module(af)
+ if nmodule == null then continue # Skip error
+ build_module_importation(nmodule)
+ var mmodule = nmodule.mmodule
+ if mmodule == null then continue # Skip error
+ mmodules.add mmodule
+ else
+ self.toolcontext.info("ignore file {af}", 2)
+ end
+ end
+ continue
+ end
+
var nmodule = self.load_module(a)
if nmodule == null then continue # Skip error
# Load imported module
build_module_importation(nmodule)
-
- mmodules.add(nmodule.mmodule.as(not null))
+ var mmodule = nmodule.mmodule
+ if mmodule == null then continue # Skip error
+ mmodules.add mmodule
end
var time1 = get_time
self.toolcontext.info("*** END PARSE: {time1-time0} ***", 2)
if candidate == null then
if mgroup != null then
- error(anode, "Error: cannot find module {name} from {mgroup.name}. tried {lookpaths.join(", ")}")
+ error(anode, "Error: cannot find module `{name}` from `{mgroup.name}`. Tried: {lookpaths.join(", ")}.")
else
- error(anode, "Error: cannot find module {name}. tried {lookpaths.join(", ")}")
+ error(anode, "Error: cannot find module `{name}`. Tried: {lookpaths.join(", ")}.")
end
return null
end
if res == null then return null # Forward error
# Load imported module
build_module_importation(res)
- return res.mmodule.as(not null)
+ return res.mmodule
end
# Search a module `name` from path `lookpaths`.
var abs_candidate = module_absolute_path(candidate)
var abs_try_file = module_absolute_path(try_file)
if abs_candidate != abs_try_file then
- toolcontext.error(location, "Error: conflicting module file for {name}: {candidate} {try_file}")
+ toolcontext.error(location, "Error: conflicting module file for `{name}`: `{candidate}` `{try_file}`")
end
end
end
var abs_candidate = module_absolute_path(candidate)
var abs_try_file = module_absolute_path(try_file)
if abs_candidate != abs_try_file then
- toolcontext.error(location, "Error: conflicting module file for {name}: {candidate} {try_file}")
+ toolcontext.error(location, "Error: conflicting module file for `{name}`: `{candidate}` `{try_file}`")
end
end
end
return mgroups[rdp]
end
- # Hack, a group is determined by:
+ # Hack, a group is determined by one of the following:
# * the presence of a honomymous nit file
# * the fact that the directory is named `src`
+ # * the fact that there is a sub-directory named `src`
var pn = rdp.basename(".nit")
var mp = dirpath.join_path(pn + ".nit").simplify_path
+ # dirpath2 is the root directory
+ # dirpath is the src subdirectory directory, if any, else it is the same that dirpath2
var dirpath2 = dirpath
if not mp.file_exists then
if pn == "src" then
dirpath2 = rdp.dirname
pn = dirpath2.basename("")
else
- return null
+ # Check a `src` subdirectory
+ dirpath = dirpath2 / "src"
+ if not dirpath.file_exists then
+ # All rules failed, so return null
+ return null
+ end
end
end
# check parent directory
- var parentpath = dirpath.join_path("..").simplify_path
+ var parentpath = dirpath2.join_path("..").simplify_path
var parent = get_mgroup(parentpath)
var mgroup
mgroup = new MGroup(pn, parent.mproject, parent)
toolcontext.info("found sub group `{mgroup.full_name}` at {dirpath}", 2)
end
- var readme = dirpath2.join_path("README.md")
+
+ # search documentation
+ # in src first so the documentation of the project code can be distinct for the documentation of the project usage
+ var readme = dirpath.join_path("README.md")
+ if not readme.file_exists then readme = dirpath.join_path("README")
+ if not readme.file_exists then readme = dirpath2.join_path("README.md")
if not readme.file_exists then readme = dirpath2.join_path("README")
if readme.file_exists then
var mdoc = load_markdown(readme)
mgroup.mdoc = mdoc
mdoc.original_mentity = mgroup
end
+
mgroup.filepath = dirpath
- mgroups[rdp] = mgroup
+ mgroups[module_absolute_path(dirpath)] = mgroup
+ mgroups[module_absolute_path(dirpath2)] = mgroup
return mgroup
end
fun load_module_ast(filename: String): nullable AModule
do
if filename.file_extension != "nit" then
- self.toolcontext.error(null, "Error: file {filename} is not a valid nit module.")
+ self.toolcontext.error(null, "Error: file `{filename}` is not a valid nit module.")
return null
end
if not filename.file_exists then
- self.toolcontext.error(null, "Error: file {filename} not found.")
+ self.toolcontext.error(null, "Error: file `{filename}` not found.")
return null
end
if decl != null then
var decl_name = decl.n_name.n_id.text
if decl_name != mod_name then
- error(decl.n_name, "Error: module name missmatch; declared {decl_name} file named {mod_name}")
+ error(decl.n_name, "Error: module name mismatch; declared {decl_name} file named {mod_name}.")
end
end
if other.mgroup!= null and other.mgroup.mproject == mgroup.mproject then
var node: ANode
if decl == null then node = nmodule else node = decl.n_name
- error(node, "Error: A module named `{other.full_name}` already exists at {other.location}")
+ error(node, "Error: a module named `{other.full_name}` already exists at {other.location}.")
break
end
end
if aimport.n_name.n_quad != null then mgroup = null # Start from top level
for grp in aimport.n_name.n_path do
var path = search_mmodule_by_name(grp, mgroup, grp.text)
- if path == null then return # Skip error
+ if path == null then
+ nmodule.mmodule = null # invalidate the module
+ return # Skip error
+ end
mgroup = path.mgroup
end
var mod_name = aimport.n_name.n_id.text
var sup = self.get_mmodule_by_name(aimport.n_name, mgroup, mod_name)
- if sup == null then continue # Skip error
+ if sup == null then
+ nmodule.mmodule = null # invalidate the module
+ continue # Skip error
+ end
aimport.mmodule = sup
imported_modules.add(sup)
var mvisibility = aimport.n_visibility.mvisibility
if mvisibility == protected_visibility then
error(aimport.n_visibility, "Error: only properties can be protected.")
+ nmodule.mmodule = null # invalidate the module
return
end
if sup == mmodule then
- error(aimport.n_name, "Error: Dependency loop in module {mmodule}.")
+ error(aimport.n_name, "Error: dependency loop in module {mmodule}.")
+ nmodule.mmodule = null # invalidate the module
end
if sup.in_importation < mmodule then
- error(aimport.n_name, "Error: Dependency loop between modules {mmodule} and {sup}.")
+ error(aimport.n_name, "Error: dependency loop between modules {mmodule} and {sup}.")
+ nmodule.mmodule = null # invalidate the module
return
end
mmodule.set_visibility_for(sup, mvisibility)
if stdimport then
var mod_name = "standard"
var sup = self.get_mmodule_by_name(nmodule, null, mod_name)
- if sup != null then # Skip error
+ if sup == null then
+ nmodule.mmodule = null # invalidate the module
+ else # Skip error
imported_modules.add(sup)
mmodule.set_visibility_for(sup, public_visibility)
end
# Returns true if the test concern real generic covariance
fun count_types(node, elem: ANode, sub, sup: MType, mmodule: MModule, anchor: nullable MClassType): Bool
do
- sub = sub.as_notnullable
- sup = sup.as_notnullable
+ sub = sub.undecorate
+ sup = sup.undecorate
# Category of the target type
if sub isa MGenericType then
fun count_cast(node: ANode, sub, sup: MType, mmodule: MModule, anchor: nullable MClassType)
do
var nsup = sup
- sup = sup.as_notnullable
- sub = sub.as_notnullable
+ sup = sup.undecorate
+ sub = sub.undecorate
if sub == nsup then
cpt_cast_pattern.inc("monomorphic cast!?!")
return sub
end
- redef fun check_subtype(node: ANode, sub, sup: MType): nullable MType
+ redef fun check_subtype(node: ANode, sub, sup: MType, autocast: Bool): nullable MType
do
var res = super
if node isa AAsCastExpr then
return res
end
+ if not autocast then
+ return res
+ end
sup = supx.resolve_for(anchor.mclass.mclass_type, anchor, mmodule, true)
if self.is_subtype(sub, sup) then
dcp.cpt_autocast.inc("vt")
dcp.cpt_autocast.inc("vt+pt")
dcp.count_cast(node, supx, sub, mmodule, anchor)
else
- self.modelbuilder.error(node, "Type error: expected {sup}, got {sub}")
+ self.modelbuilder.error(node, "Type Error: expected `{sup}`, got `{sub}`")
return null
end
end
# Now the case of direct null and nullable is over.
# If `sub` is a formal type, then it is accepted if its bound is accepted
- while sub isa MParameterType or sub isa MVirtualType do
+ while sub isa MFormalType do
#print "3.is {sub} a {sup}?"
# A unfixed formal type can only accept itself
assert sub isa MClassType # It is the only remaining type
# A unfixed formal type can only accept itself
- if sup isa MParameterType or sup isa MVirtualType then
+ if sup isa MFormalType then
return false
end
if pd isa MMethodDef then
# Parameters (contravariant)
for p in pd.msignature.mparameters do
- var t = p.mtype.as_notnullable
+ var t = p.mtype.undecorate
if not t.need_anchor then
# OK
else if t isa MParameterType then
# Return (covariant)
var t = pd.msignature.return_mtype
if t != null and t.need_anchor then
- t = t.as_notnullable
+ t = t.undecorate
if t isa MParameterType then
covar_pt.add(t)
else if t isa MVirtualType then
# Attribute (invariant)
var t = pd.static_mtype
if t != null and t.need_anchor then
- t = t.as_notnullable
+ t = t.undecorate
if t isa MParameterType then
covar_pt.add t
contravar_pt.add t
# Virtual type bound (covariant)
var t = pd.bound
if t != null and t.need_anchor then
- t = t.as_notnullable
+ t = t.undecorate
if t isa MParameterType then
covar_pt.add t
else if t isa MVirtualType then
# Process the generic types in a covariant position
for c in covar_classes do for i in [0..c.mclass.arity[ do
# The type used in the argument
- var ta = c.arguments[i].as_notnullable
+ var ta = c.arguments[i].undecorate
# The associated formal parameter
var tp = c.mclass.mparameters[i]
# Process the generic types in a contravariant position
for c in contravar_classes do for i in [0..c.mclass.arity[ do
# The type used in the argument
- var ta = c.arguments[i].as_notnullable
+ var ta = c.arguments[i].undecorate
# The associated formal parameter
var tp = c.mclass.mparameters[i]
import modelize
redef class ToolContext
+ # Compute MENDEL metrics.
+ #
+ # See `mendel_metrics` module documentation.
var mendel_metrics_phase: Phase = new MendelMetricsPhase(self, null)
end
metrics.collect(mclasses)
if csv then metrics.to_csv.save("{out}/mendel.csv")
- print toolcontext.format_h4("\tlarge mclasses (threshold: {cnblp.threshold})")
- for mclass in cnblp.above_threshold do
- print toolcontext.format_p("\t {mclass.name}: {cnblp.values[mclass]}")
+ var threshold = cnblp.threshold
+ print toolcontext.format_h4("\tlarge mclasses (threshold: {threshold})")
+ for mclass in cnblp.sort do
+ var val = cnblp.values[mclass]
+ if val.to_f < threshold then break
+ print toolcontext.format_p("\t {mclass.name}: {val}")
end
- print toolcontext.format_h4("\tbudding mclasses (threshold: {cnvi.threshold})")
- for mclass in cnvi.above_threshold do
- print toolcontext.format_p("\t {mclass.name}: {cnvi.values[mclass]}")
+ threshold = cnvi.threshold
+ print toolcontext.format_h4("\tbudding mclasses (threshold: {threshold})")
+ for mclass in cnvi.sort do
+ var val = cnvi.values[mclass]
+ if val.to_f < threshold then break
+ print toolcontext.format_p("\t {mclass.name}: {val}")
end
- print toolcontext.format_h4("\tblooming mclasses (threshold: {cnvs.threshold})")
- for mclass in cnvs.above_threshold do
- print toolcontext.format_p("\t {mclass.name}: {cnvs.values[mclass]}")
- end
-
- print toolcontext.format_h4("\tblooming mclasses (threshold: {cnvs.threshold})")
- for mclass in cnvs.above_threshold do
- print toolcontext.format_p("\t {mclass.name}: {cnvs.values[mclass]}")
+ threshold = cnvs.threshold
+ print toolcontext.format_h4("\tblooming mclasses (threshold: {threshold})")
+ for mclass in cnvs.sort do
+ var val = cnvs.values[mclass]
+ if val.to_f < threshold then break
+ print toolcontext.format_p("\t {mclass.name}: {val}")
end
if csv then
redef fun name do return "cbms"
redef fun desc do return "branch mean size, mean number of introduction available among ancestors"
+ # Mainmodule used to compute class hierarchy.
var mainmodule: MModule
- init(mainmodule: MModule) do self.mainmodule = mainmodule
redef fun collect(mclasses) do
for mclass in mclasses do
redef fun name do return "cnvi"
redef fun desc do return "class novelty index, contribution of the class to its branch in term of introductions"
+ # Mainmodule used to compute class hierarchy.
var mainmodule: MModule
- init(mainmodule: MModule) do self.mainmodule = mainmodule
redef fun collect(mclasses) do
var cbms = new CBMS(mainmodule)
redef fun name do return "cnvs"
redef fun desc do return "class novelty score, importance of the contribution of the class to its branch"
+ # Mainmodule used to compute class hierarchy.
var mainmodule: MModule
- init(mainmodule: MModule) do self.mainmodule = mainmodule
redef fun collect(mclasses) do
var cnvi = new CNVI(mainmodule)
var opt_generate_hyperdoc = new OptionBool("Generate Hyperdoc", "--generate_hyperdoc")
# --poset
var opt_poset = new OptionBool("Complete metrics on posets", "--poset")
-
# --no-colors
var opt_nocolors = new OptionBool("Disable colors in console outputs", "--no-colors")
-
-
+ # --dir
var opt_dir = new OptionString("Directory where some statistics files are generated", "-d", "--dir")
+
+ # Output directory for metrics files.
var output_dir: String = "."
redef init
end
end
- # colorize heading 1 for console output
+ # Format and colorize a string heading of level 1 for console output.
+ #
+ # Default style is yellow and bold.
fun format_h1(str: String): String do
if opt_nocolors.value then return str
return str.yellow.bold
end
+ # Format and colorize a string heading of level 2 for console output.
+ #
+ # Default style is white and bold.
fun format_h2(str: String): String do
if opt_nocolors.value then return str
return str.bold
end
+ # Format and colorize a string heading of level 3 for console output.
+ #
+ # Default style is white and nobold.
fun format_h3(str: String): String do
if opt_nocolors.value then return str
return str
end
+ # Format and colorize a string heading of level 4 for console output.
+ #
+ # Default style is green.
fun format_h4(str: String): String do
if opt_nocolors.value then return str
return str.green
end
+ # Format and colorize a string heading of level 5 for console output.
+ #
+ # Default style is light gray.
fun format_p(str: String): String do
if opt_nocolors.value then return str
return str.light_gray
#
# The concept is reified here for a better organization and documentation
interface Metric
+
+ # Type of elements measured by this metric.
type ELM: Object
+
+ # Type of values used to measure elements.
type VAL: Object
+
+ # Type of data representation used to associate elements and values.
type RES: Map[ELM, VAL]
+ # The name of this metric (generally an acronym about the metric).
fun name: String is abstract
+
+ # A long and understandable description about what is measured by this metric.
fun desc: String is abstract
# Clear all results for this metric
end
end
+ # The sum of all the values.
+ fun sum: VAL is abstract
+
# The values standard derivation
fun std_dev: Float is abstract
# The set of element above the threshold
fun above_threshold: Set[ELM] is abstract
+
+ # Sort the metric keys by values
+ fun sort: Array[ELM] do
+ return values.keys_sorted_by_values(default_reverse_comparator)
+ end
end
# A Metric that collects integer data
redef type VAL: Int
redef type RES: Counter[ELM]
+ # `IntMetric` uses a Counter to store values in intern.
protected var values_cache = new Counter[ELM]
+
redef fun values do return values_cache
redef fun clear do values_cache.clear
- fun sum: Int do return values_cache.sum
+ redef fun sum do return values_cache.sum
redef fun max do
assert not values_cache.is_empty
end
# Values average
- redef fun avg: Float do return values_cache.avg
+ redef fun avg do return values_cache.avg
- redef fun std_dev: Float do return values_cache.std_dev
+ redef fun std_dev do return values_cache.std_dev
redef fun above_threshold do
var above = new HashSet[ELM]
redef type VAL: Float
+ # `FloatMetric` uses a Map to store values in intern.
protected var values_cache = new HashMap[ELM, VAL]
+
redef fun values do return values_cache
redef fun clear do values_cache.clear
- fun sum: Float do
+
+ redef fun sum do
var sum = 0.0
for v in values.values do sum += v
return sum
return sum / values.length.to_f
end
- redef fun std_dev: Float do
+ redef fun std_dev do
var sum = 0.0
for value in values.values do
sum += (value - avg).pow(2.to_f)
print "{"\t" * indent} sum: {sum}"
end
end
-
end
# A MetricSet is a metric holder
#
# It purpose is to be extended with a metric collect service
class MetricSet
+
+ # Type of element measured by this `MetricSet`.
type ELM: Object
# Metrics to compute
super
tnlc.values.inc(mtype)
- mtype = mtype.as_notnullable
+ mtype = mtype.undecorate
if mtype isa MClassType then
cnlc.values.inc(mtype.mclass)
end
redef class MType
private fun signature_depth: Int do
- var mtype = self.as_notnullable
+ var mtype = self.undecorate
if not mtype isa MGenericType then return 0
var depth = 0
mainmodule.is_fictive = true
end
- var recv = mainmodule.object_type
+ var recv = mainmodule.sys_type
+ assert recv != null
var mclassdef = new MClassDef(mainmodule, recv, location)
mclassdef.add_in_hierarchy
if spl.length > 1 then val = spl[1]
var prop = mainmodule.try_get_primitive_method(name, recv.mclass)
if prop == null then
- error(null, "Error: --define: no top-level function `{name}`")
+ error(null, "Error: --define: no top-level function `{name}`.")
continue
end
var ret = prop.intro.msignature.return_mtype
var v
if ret == null then
- error(null, "Error: --define: Method `{prop}` is not a function")
+ error(null, "Error: --define: method `{prop}` is not a function.")
continue
else if ret.to_s == "Bool" then
if val == null or val == "true" then
else if val == "false" then
v = false
else
- error(null, "Error: --define: Method `{prop}` need a Bool.")
+ error(null, "Error: --define: method `{prop}` needs a Bool.")
continue
end
else if ret.to_s == "Int" then
if val != null and val.is_numeric then
v = val.to_i
else
- error(null, "Error: --define: Method `{prop}` need a Int.")
+ error(null, "Error: --define: method `{prop}` needs a Int.")
continue
end
else if ret.to_s == "String" then
if val != null then
v = val
else
- error(null, "Error: --define: Method `{prop}` need a String.")
+ error(null, "Error: --define: method `{prop}` needs a String.")
continue
end
else
- error(null, "Error: --define: Method `{prop}` return an unmanaged type {ret}.")
+ error(null, "Error: --define: method `{prop}` returns an unsupported type `{ret}`.")
continue
end
var pd = new MMethodDef(mclassdef, prop, location)
# Is `self` a unit test module used by `nitunit`?
var is_test_suite: Bool = false is writable
+ # Get the first non `is_fictive` module greater than self
+ fun first_real_mmodule: MModule
+ do
+ var mmodule = self
+ while mmodule.is_fictive do
+ mmodule = mmodule.in_importation.direct_greaters.first
+ end
+ return mmodule
+ end
+
redef fun parent_concern do return mgroup
end
fun get_primitive_class(name: String): MClass
do
var cla = self.model.get_mclasses_by_name(name)
- if cla == null then
+ # Filter classes by introducing module
+ if cla != null then cla = [for c in cla do if self.in_importation <= c.intro_mmodule then c]
+ if cla == null or cla.is_empty then
if name == "Bool" and self.model.get_mclasses_by_name("Object") != null then
# Bool is injected because it is needed by engine to code the result
# of the implicit casts.
cladef.add_in_hierarchy
return c
end
- print("Fatal Error: no primitive class {name}")
+ print("Fatal Error: no primitive class {name} in {self}")
exit(1)
end
if cla.length != 1 then
- var msg = "Fatal Error: more than one primitive class {name}:"
+ var msg = "Fatal Error: more than one primitive class {name} in {self}:"
for c in cla do msg += " {c.full_name}"
print msg
#exit(1)
# is empty if the class is not generic
var mparameters = new Array[MParameterType]
+ # A string version of the signature a generic class.
+ #
+ # eg. `Map[K: nullable Object, V: nullable Object]`
+ #
+ # If the class in non generic the name is just given.
+ #
+ # eg. `Object`
+ fun signature_to_s: String
+ do
+ if arity == 0 then return name
+ var res = new FlatBuffer
+ res.append name
+ res.append "["
+ for i in [0..arity[ do
+ if i > 0 then res.append ", "
+ res.append mparameters[i].name
+ res.append ": "
+ res.append intro.bound_mtype.arguments[i].to_s
+ end
+ res.append "]"
+ return res.to_s
+ end
+
# Initialize `mparameters` from their names.
protected fun setup_parameter_names(parameter_names: nullable Array[String]) is
autoinit
#
# Warning: such a definition may not exist in the early life of the object.
# In this case, the method will abort.
+ #
+ # Use `try_intro` instead
var intro: MClassDef is noinit
+ # The definition that introduces the class or null if not yet known.
+ #
+ # See `intro`
+ fun try_intro: nullable MClassDef do
+ if isset _intro then return _intro else return null
+ end
+
# Return the class `self` in the class hierarchy of the module `mmodule`.
#
# SEE: `MModule::flatten_mclass_hierarchy`
var in_hierarchy: nullable POSetElement[MClassDef] = null
# Is the definition the one that introduced `mclass`?
- fun is_intro: Bool do return mclass.intro == self
+ fun is_intro: Bool do return isset mclass._intro and mclass.intro == self
# All properties introduced by the classdef
var intro_mproperties = new Array[MProperty]
if sup isa MNullableType then
sup_accept_null = true
sup = sup.mtype
+ else if sup isa MNotNullType then
+ sup = sup.mtype
else if sup isa MNullType then
sup_accept_null = true
end
# Can `sub` provide null or not?
# Thus we can match with `sup_accept_null`
# Also discard the nullable marker if it exists
+ var sub_reject_null = false
if sub isa MNullableType then
if not sup_accept_null then return false
sub = sub.mtype
+ else if sub isa MNotNullType then
+ sub_reject_null = true
+ sub = sub.mtype
else if sub isa MNullType then
return sup_accept_null
end
# Now the case of direct null and nullable is over.
# If `sub` is a formal type, then it is accepted if its bound is accepted
- while sub isa MParameterType or sub isa MVirtualType do
+ while sub isa MFormalType do
#print "3.is {sub} a {sup}?"
# A unfixed formal type can only accept itself
assert anchor != null
sub = sub.lookup_bound(mmodule, anchor)
+ if sub_reject_null then sub = sub.as_notnull
#print "3.is {sub} a {sup}?"
# Manage the second layer of null/nullable
if sub isa MNullableType then
- if not sup_accept_null then return false
+ if not sup_accept_null and not sub_reject_null then return false
+ sub = sub.mtype
+ else if sub isa MNotNullType then
+ sub_reject_null = true
sub = sub.mtype
else if sub isa MNullType then
return sup_accept_null
end
#print "4.is {sub} a {sup}? <- no more resolution"
- assert sub isa MClassType # It is the only remaining type
+ assert sub isa MClassType else print "{sub} <? {sub}" # It is the only remaining type
# A unfixed formal type can only accept itself
- if sup isa MParameterType or sup isa MVirtualType then
+ if sup isa MFormalType then
return false
end
return res
end
- # Return the not nullable version of the type
- # Is the type is already not nullable, then self is returned.
+ # Remove the base type of a decorated (proxy) type.
+ # Is the type is not decorated, then self is returned.
#
- # Note: this just remove the `nullable` notation, but the result can still contains null.
+ # Most of the time it is used to return the not nullable version of a nullable type.
+ # In this case, this just remove the `nullable` notation, but the result can still contains null.
# For instance if `self isa MNullType` or self is a formal type bounded by a nullable type.
- fun as_notnullable: MType
+ # If you really want to exclude the `null` value, then use `as_notnull`
+ fun undecorate: MType
do
return self
end
+ # Returns the not null version of the type.
+ # That is `self` minus the `null` value.
+ #
+ # For most types, this return `self`.
+ # For formal types, this returns a special `MNotNullType`
+ fun as_notnull: MType do return self
+
private var as_nullable_cache: nullable MType = null
end
end
+# A formal type (either virtual of parametric).
+#
+# The main issue with formal types is that they offer very little information on their own
+# and need a context (anchor and mmodule) to be useful.
+abstract class MFormalType
+ super MType
+
+ redef var as_notnull = new MNotNullType(self) is lazy
+end
+
# A virtual formal type.
class MVirtualType
- super MType
+ super MFormalType
# The property associated with the type.
# Its the definitions of this property that determine the bound or the virtual type.
redef fun lookup_fixed(mmodule: MModule, resolved_receiver: MType): MType
do
assert not resolved_receiver.need_anchor
- resolved_receiver = resolved_receiver.as_notnullable
+ resolved_receiver = resolved_receiver.undecorate
assert resolved_receiver isa MClassType # It is the only remaining type
var prop = lookup_single_definition(mmodule, resolved_receiver)
# Note that parameter types are shared among class refinements.
# Therefore parameter only have an internal name (see `to_s` for details).
class MParameterType
- super MType
+ super MFormalType
# The generic class where the parameter belong
var mclass: MClass
redef fun lookup_bound(mmodule: MModule, resolved_receiver: MType): MType
do
assert not resolved_receiver.need_anchor
- resolved_receiver = resolved_receiver.as_notnullable
+ resolved_receiver = resolved_receiver.undecorate
assert resolved_receiver isa MClassType # It is the only remaining type
var goalclass = self.mclass
if resolved_receiver.mclass == goalclass then
redef fun lookup_fixed(mmodule: MModule, resolved_receiver: MType): MType
do
assert not resolved_receiver.need_anchor
- resolved_receiver = resolved_receiver.as_notnullable
+ resolved_receiver = resolved_receiver.undecorate
assert resolved_receiver isa MClassType # It is the only remaining type
var res = self.resolve_for(resolved_receiver.mclass.mclass_type, resolved_receiver, mmodule, false)
return res
end
end
-# A type prefixed with "nullable"
-class MNullableType
+# A type that decorates another type.
+#
+# The point of this class is to provide a common implementation of sevices that just forward to the original type.
+# Specific decorator are expected to redefine (or to extend) the default implementation as this suit them.
+abstract class MProxyType
super MType
-
- # The base type of the nullable type
+ # The base type
var mtype: MType
redef fun model do return self.mtype.model
-
- init
- do
- self.to_s = "nullable {mtype}"
- end
-
- redef var to_s: String is noinit
-
- redef var full_name is lazy do return "nullable {mtype.full_name}"
-
- redef var c_name is lazy do return "nullable__{mtype.c_name}"
-
redef fun need_anchor do return mtype.need_anchor
- redef fun as_nullable do return self
- redef fun as_notnullable do return mtype
+ redef fun as_nullable do return mtype.as_nullable
+ redef fun as_notnull do return mtype.as_notnull
+ redef fun undecorate do return mtype.undecorate
redef fun resolve_for(mtype, anchor, mmodule, cleanup_virtual)
do
var res = self.mtype.resolve_for(mtype, anchor, mmodule, cleanup_virtual)
- return res.as_nullable
+ return res
end
redef fun can_resolve_for(mtype, anchor, mmodule)
return self.mtype.can_resolve_for(mtype, anchor, mmodule)
end
- # Efficiently returns `mtype.lookup_fixed(mmodule, resolved_receiver).as_nullable`
redef fun lookup_fixed(mmodule, resolved_receiver)
do
var t = mtype.lookup_fixed(mmodule, resolved_receiver)
- if t == mtype then return self
- return t.as_nullable
+ return t
end
redef fun depth do return self.mtype.depth
end
end
+# A type prefixed with "nullable"
+class MNullableType
+ super MProxyType
+
+ init
+ do
+ self.to_s = "nullable {mtype}"
+ end
+
+ redef var to_s: String is noinit
+
+ redef var full_name is lazy do return "nullable {mtype.full_name}"
+
+ redef var c_name is lazy do return "nullable__{mtype.c_name}"
+
+ redef fun as_nullable do return self
+ redef fun resolve_for(mtype, anchor, mmodule, cleanup_virtual)
+ do
+ var res = super
+ return res.as_nullable
+ end
+
+ # Efficiently returns `mtype.lookup_fixed(mmodule, resolved_receiver).as_nullable`
+ redef fun lookup_fixed(mmodule, resolved_receiver)
+ do
+ var t = super
+ if t == mtype then return self
+ return t.as_nullable
+ end
+end
+
+# A non-null version of a formal type.
+#
+# When a formal type in bounded to a nullable type, this is the type of the not null version of it.
+class MNotNullType
+ super MProxyType
+
+ redef fun to_s do return "not null {mtype}"
+ redef var full_name is lazy do return "not null {mtype.full_name}"
+ redef var c_name is lazy do return "notnull__{mtype.c_name}"
+
+ redef fun as_notnull do return self
+
+ redef fun resolve_for(mtype, anchor, mmodule, cleanup_virtual)
+ do
+ var res = super
+ return res.as_notnull
+ end
+
+ # Efficiently returns `mtype.lookup_fixed(mmodule, resolved_receiver).as_notnull`
+ redef fun lookup_fixed(mmodule, resolved_receiver)
+ do
+ var t = super
+ if t == mtype then return self
+ return t.as_notnull
+ end
+end
+
# The type of the only value null
#
# The is only one null type per model, see `MModel::null_type`.
redef fun full_name do return "null"
redef fun c_name do return "null"
redef fun as_nullable do return self
+
+ # Aborts on `null`
+ redef fun as_notnull do abort # sorry...
redef fun need_anchor do return false
redef fun resolve_for(mtype, anchor, mmodule, cleanup_virtual) do return self
redef fun can_resolve_for(mtype, anchor, mmodule) do return true
# Example: for "(a: Int, b: Bool..., c: Char)" #-> vararg_rank=1
var vararg_rank: Int is noinit
- # The number or parameters
+ # The number of parameters
fun arity: Int do return mparameters.length
+ # The number of non-default parameters
+ #
+ # The number of default parameters is then `arity-min_arity`.
+ #
+ # Note that there cannot be both varargs and default prameters, thus
+ # if `vararg_rank != -1` then `min_arity` == `arity`
+ fun min_arity: Int
+ do
+ if vararg_rank != -1 then return arity
+ var res = 0
+ for p in mparameters do
+ if not p.is_default then res += 1
+ end
+ return res
+ end
+
redef fun to_s
do
var b = new FlatBuffer
# Is the parameter a vararg?
var is_vararg: Bool
+ # Is the parameter a default one?
+ var is_default: Bool
+
redef fun to_s
do
if is_vararg then
do
if not self.mtype.need_anchor then return self
var newtype = self.mtype.resolve_for(mtype, anchor, mmodule, cleanup_virtual)
- var res = new MParameter(self.name, newtype, self.is_vararg)
+ var res = new MParameter(self.name, newtype, self.is_vararg, self.is_default)
return res
end
fun lookup_definitions(mmodule: MModule, mtype: MType): Array[MPROPDEF]
do
assert not mtype.need_anchor
- mtype = mtype.as_notnullable
+ mtype = mtype.undecorate
var cache = self.lookup_definitions_cache[mmodule, mtype]
if cache != null then return cache
fun lookup_super_definitions(mmodule: MModule, mtype: MType): Array[MPROPDEF]
do
assert not mtype.need_anchor
- mtype = mtype.as_notnullable
+ mtype = mtype.undecorate
# First, select all candidates
var candidates = new Array[MPROPDEF]
# REQUIRE: `mtype.has_mproperty(mmodule, self)`
fun lookup_all_definitions(mmodule: MModule, mtype: MType): Array[MPROPDEF]
do
- mtype = mtype.as_notnullable
+ mtype = mtype.undecorate
var cache = self.lookup_all_definitions_cache[mmodule, mtype]
if cache != null then return cache
# Run `process_mainmodule` on all phases
fun run_global_phases(mmodules: Array[MModule])
do
- var mainmodule = make_main_module(mmodules)
- for phase in phases_list do
- if phase.disabled then continue
- phase.process_mainmodule(mainmodule, mmodules)
+ if not mmodules.is_empty then
+ var mainmodule = make_main_module(mmodules)
+ for phase in phases_list do
+ if phase.disabled then continue
+ phase.process_mainmodule(mainmodule, mmodules)
+ end
end
+
+ check_errors
+ errors_info
end
end
model.mmodule_importation_hierarchy.sort(mmodules)
var nmodules = new Array[AModule]
for mm in mmodules do
+ if mm.is_fictive then continue
nmodules.add(mmodule2node(mm).as(not null))
end
toolcontext.run_phases(nmodules)
if res == null then
res = mclass
else
- error(anode, "Ambigous class name '{name}'; conflict between {mclass.full_name} and {res.full_name}")
+ error(anode, "Error: ambiguous class name `{name}`; conflict between `{mclass.full_name}` and `{res.full_name}`.")
return null
end
end
return res
end
+ # Like `try_get_mclass_by_name` but display an error message when the class is not found
+ fun get_mclass_by_name(node: ANode, mmodule: MModule, name: String): nullable MClass
+ do
+ var mclass = try_get_mclass_by_name(node, mmodule, name)
+ if mclass == null then
+ error(node, "Type Error: missing primitive class `{name}'.")
+ end
+ return mclass
+ end
+
# Return a property named `name` on the type `mtype` visible in the module `mmodule`.
# Visibility in modules is correctly handled.
# Protected properties are returned (it is up to the caller to check and reject protected properties).
assert ress.length > 1
var s = new Array[String]
for mprop in ress do s.add mprop.full_name
- self.error(anode, "Ambigous property name '{name}' for {mtype}; conflict between {s.join(" and ")}")
+ self.error(anode, "Error: ambiguous property name `{name}` for `{mtype}`; conflict between {s.join(" and ")}.")
end
self.try_get_mproperty_by_name2_cache[mmodule, mtype, name] = res
if res == null then
var l = null
if n != null then l = n.hot_location
- self.toolcontext.fatal_error(l, "Fatal Error: {recv} must have a property named {name}.")
+ self.toolcontext.fatal_error(l, "Fatal Error: `{recv}` must have a property named `{name}`.")
abort
end
return res
var prop = try_get_mproperty_by_name(ntype, mclassdef, name).as(nullable MVirtualTypeProp)
if prop != null then
if not ntype.n_types.is_empty then
- error(ntype, "Type error: formal type {name} cannot have formal parameters.")
+ error(ntype, "Type Error: formal type `{name}` cannot have formal parameters.")
end
res = prop.mvirtualtype
if ntype.n_kwnullable != null then res = res.as_nullable
if p.name != name then continue
if not ntype.n_types.is_empty then
- error(ntype, "Type error: formal type {name} cannot have formal parameters.")
+ error(ntype, "Type Error: formal type `{name}` cannot have formal parameters.")
end
res = p
var arity = ntype.n_types.length
if arity != mclass.arity then
if arity == 0 then
- error(ntype, "Type error: '{name}' is a generic class.")
+ error(ntype, "Type Error: `{mclass.signature_to_s}` is a generic class.")
else if mclass.arity == 0 then
- error(ntype, "Type error: '{name}' is not a generic class.")
+ error(ntype, "Type Error: `{name}` is not a generic class.")
else
- error(ntype, "Type error: '{name}' has {mclass.arity} parameters ({arity} are provided).")
+ error(ntype, "Type Error: expected {mclass.arity} formal argument(s) for `{mclass.signature_to_s}`; got {arity}.")
end
return null
end
end
# If everything fail, then give up :(
- error(ntype, "Type error: class {name} not found in module {mmodule}.")
+ error(ntype, "Error: class `{name}` not found in module `{mmodule}`.")
return null
end
if mtype isa MGenericType then
var mclass = mtype.mclass
for i in [0..mclass.arity[ do
- var bound = mclass.intro.bound_mtype.arguments[i]
+ var intro = mclass.try_intro
+ if intro == null then return null # skip error
+ var bound = intro.bound_mtype.arguments[i]
var nt = ntype.n_types[i]
var mt = resolve_mtype(mmodule, mclassdef, nt)
if mt == null then return null # forward error
var anchor
if mclassdef != null then anchor = mclassdef.bound_mtype else anchor = null
if not check_subtype(nt, mmodule, anchor, mt, bound) then
- error(nt, "Type error: expected {bound}, got {mt}")
+ error(nt, "Type Error: expected `{bound}`, got `{mt}`.")
return null
end
end
var nfd = nclassdef.n_formaldefs[i]
var ptname = nfd.n_id.text
if names.has(ptname) then
- error(nfd, "Error: A formal parameter type `{ptname}' already exists")
+ error(nfd, "Error: a formal parameter type `{ptname}` already exists.")
return
end
for c in ptname.chars do if c >= 'a' and c<= 'z' then
- warning(nfd, "formal-type-name", "Warning: lowercase in the formal parameter type {ptname}")
+ warning(nfd, "formal-type-name", "Warning: lowercase in the formal parameter type `{ptname}`.")
break
end
names.add(ptname)
end
- else if nclassdef isa ATopClassdef then
+ else if nclassdef isa ATopClassdef and nclassdef.n_propdefs.first.as(AMethPropdef).n_methid.collect_text == "sys" then
+ # Special case to keep `sys` in object.
+ # Needed to keep working bootstrap and a working java FFI together.
+ # TODO: remove once safe to remove
name = "Object"
nkind = null
mkind = interface_kind
nvisibility = null
mvisibility = public_visibility
- else if nclassdef isa AMainClassdef then
+ else
name = "Sys"
nkind = null
mkind = concrete_kind
nvisibility = null
mvisibility = public_visibility
- else
- abort
end
var mclass = try_get_mclass_by_name(nclassdef, mmodule, name)
if mclass == null then
if nclassdef isa AStdClassdef and nclassdef.n_kwredef != null then
- error(nclassdef, "Redef error: No imported class {name} to refine.")
+ error(nclassdef, "Redef Error: no imported class `{name}` to refine.")
return
end
var mclasses = model.get_mclasses_by_name(name)
if mclasses != null then for other in mclasses do
if other.intro_mmodule.mgroup != null and other.intro_mmodule.mgroup.mproject == mmodule.mgroup.mproject then
- error(nclassdef, "Error: A class named `{other.full_name}` is already defined in module `{other.intro_mmodule}` at {other.intro.location}.")
+ # Skip classes that are buggy
+ if other.try_intro == null then continue
+ warning(nclassdef, "full-name-conflict", "Error: a class named `{other.full_name}` is already defined in module `{other.intro_mmodule}` at {other.intro.location}.")
break
end
end
mclass = new MClass(mmodule, name, names, mkind, mvisibility)
#print "new class {mclass}"
else if nclassdef isa AStdClassdef and nmodule.mclass2nclassdef.has_key(mclass) then
- error(nclassdef, "Error: A class {name} is already defined at line {nmodule.mclass2nclassdef[mclass].location.line_start}.")
+ error(nclassdef, "Error: a class `{name}` is already defined at line {nmodule.mclass2nclassdef[mclass].location.line_start}.")
return
else if nclassdef isa AStdClassdef and nclassdef.n_kwredef == null then
- error(nclassdef, "Redef error: {name} is an imported class. Add the redef keyword to refine it.")
+ error(nclassdef, "Redef Error: `{name}` is an imported class. Add the `redef` keyword to refine it.")
return
else if arity != 0 and mclass.arity != arity then
- error(nclassdef, "Redef error: Formal parameter arity missmatch; got {arity}, expected {mclass.arity}.")
+ error(nclassdef, "Redef Error: expected {mclass.arity} formal parameter(s) for {mclass.signature_to_s}; got {arity}.")
return
else if nkind != null and mkind != concrete_kind and mclass.kind != mkind then
- error(nkind, "Error: refinement changed the kind from a {mclass.kind} to a {mkind}")
+ error(nkind, "Redef Error: refinement changed the kind from `{mclass.kind}` to `{mkind}`.")
else if nvisibility != null and mvisibility != public_visibility and mclass.visibility != mvisibility then
- error(nvisibility, "Error: refinement changed the visibility from a {mclass.visibility} to a {mvisibility}")
+ error(nvisibility, "Redef Error: refinement changed the visibility from `{mclass.visibility}` to `{mvisibility}`")
end
nclassdef.mclass = mclass
if not nmodule.mclass2nclassdef.has_key(mclass) then
var nfd = nclassdef.n_formaldefs[i]
var pname = mclass.mparameters[i].name
if nfd.n_id.text != pname then
- error(nfd.n_id, "Error: Formal parameter type #{i} `{nfd.n_id.text}` must be named `{pname}' as in the original definition in module `{mclass.intro.mmodule}`.")
+ error(nfd.n_id, "Error: formal parameter type #{i} `{nfd.n_id.text}` must be named `{pname}` as in the original definition in module `{mclass.intro.mmodule}`.")
end
var nfdt = nfd.n_type
if nfdt != null then
if bound == null then return # Forward error
if bound.need_anchor then
# No F-bounds!
- error(nfd, "Error: Formal parameter type `{pname}' bounded with a formal parameter type")
+ error(nfd, "Error: formal parameter type `{pname}` bounded with a formal parameter type.")
else
bounds.add(bound)
nfd.bound = bound
end
if bound isa MClassType and bound.mclass.kind == enum_kind then
- warning(nfdt, "useless-bound", "Warning: Useless formal parameter type since `{bound}` cannnot have subclasses.")
+ warning(nfdt, "useless-bound", "Warning: useless formal parameter type since `{bound}` cannot have subclasses.")
end
else if mclass.mclassdefs.is_empty then
if objectclass == null then
- error(nfd, "Error: Formal parameter type `{pname}' unbounded but no Object class exist.")
+ error(nfd, "Error: formal parameter type `{pname}` unbounded but no `Object` class exists.")
return
end
# No bound, then implicitely bound by nullable Object
# Visit the AST and set the super-types of the `MClassDef` objects
private fun collect_a_mclassdef_inheritance(nmodule: AModule, nclassdef: AClassdef)
do
- var mmodule = nmodule.mmodule.as(not null)
+ var mmodule = nmodule.mmodule
+ if mmodule == null then return
var objectclass = try_get_mclass_by_name(nmodule, mmodule, "Object")
var pointerclass = try_get_mclass_by_name(nmodule, mmodule, "Pointer")
- var mclass = nclassdef.mclass.as(not null)
- var mclassdef = nclassdef.mclassdef.as(not null)
+ var mclass = nclassdef.mclass
+ if mclass == null then return
+ var mclassdef = nclassdef.mclassdef
+ if mclassdef == null then return
# Do we need to specify Object as a super class?
var specobject = true
var mtype = resolve_mtype_unchecked(mmodule, mclassdef, ntype, false)
if mtype == null then continue # Skip because of error
if not mtype isa MClassType then
- error(ntype, "Error: supertypes cannot be a formal type")
+ error(ntype, "Error: supertypes cannot be a formal type.")
return
end
if not mclass.kind.can_specialize(mtype.mclass.kind) then
- error(ntype, "Error: {mclass.kind} {mclass} cannot specialize {mtype.mclass.kind} {mtype.mclass}")
+ error(ntype, "Error: {mclass.kind} `{mclass}` cannot specialize {mtype.mclass.kind} `{mtype.mclass}`.")
end
supertypes.add mtype
#print "new super : {mclass} < {mtype}"
# Check the validity of the specialization heirarchy
private fun check_supertypes(nmodule: AModule, nclassdef: AClassdef)
do
- var mmodule = nmodule.mmodule.as(not null)
- var mclass = nclassdef.mclass.as(not null)
- var mclassdef = nclassdef.mclassdef.as(not null)
+ var mmodule = nmodule.mmodule
+ if mmodule == null then return
+ var mclass = nclassdef.mclass
+ if mclass == null then return
+ var mclassdef = nclassdef.mclassdef
+ if mclassdef == null then return
for s in mclassdef.supertypes do
if s.is_subtype(mmodule, mclassdef.bound_mtype, mclassdef.bound_mtype) then
- error(nclassdef, "Error: Inheritance loop for class {mclass} with type {s}")
+ error(nclassdef, "Error: inheritance loop for class `{mclass}` with type `{s}`.")
end
end
end
# Force building recursively
if nmodule.build_classes_is_done then return
nmodule.build_classes_is_done = true
- var mmodule = nmodule.mmodule.as(not null)
+ var mmodule = nmodule.mmodule
+ if mmodule == null then return
for imp in mmodule.in_importation.direct_greaters do
var nimp = mmodule2node(imp)
if nimp != null then build_classes(nimp)
if errcount != toolcontext.error_count then return
# Create all classes
+ # process AStdClassdef before so that non-AStdClassdef classes can be attached to existing ones, if any
for nclassdef in nmodule.n_classdefs do
+ if not nclassdef isa AStdClassdef then continue
+ self.build_a_mclass(nmodule, nclassdef)
+ end
+ for nclassdef in nmodule.n_classdefs do
+ if nclassdef isa AStdClassdef then continue
self.build_a_mclass(nmodule, nclassdef)
end
# Create all classdefs
for nclassdef in nmodule.n_classdefs do
+ if not nclassdef isa AStdClassdef then continue
+ self.build_a_mclassdef(nmodule, nclassdef)
+ end
+ for nclassdef in nmodule.n_classdefs do
+ if nclassdef isa AStdClassdef then continue
self.build_a_mclassdef(nmodule, nclassdef)
end
# Check clash of ancestors
for nclassdef in nmodule.n_classdefs do
- var mclassdef = nclassdef.mclassdef.as(not null)
+ var mclassdef = nclassdef.mclassdef
+ if mclassdef == null then continue
var superclasses = new HashMap[MClass, MClassType]
for scd in mclassdef.in_hierarchy.greaters do
for st in scd.supertypes do
var st1 = superclasses[st.mclass].resolve_for(mclassdef.mclass.mclass_type, mclassdef.bound_mtype, mmodule, false)
var st2 = st.resolve_for(mclassdef.mclass.mclass_type, mclassdef.bound_mtype, mmodule, false)
if st1 != st2 then
- error(nclassdef, "Error: Incompatibles ancestors for {mclassdef.mclass}: {st1}, {st2}")
+ error(nclassdef, "Error: incompatible ancestors for `{mclassdef.mclass}`; conflict: `{st1}` and `{st2}`")
end
end
end
# Check that the superclasses are not already known (by transitivity)
for nclassdef in nmodule.n_classdefs do
if not nclassdef isa AStdClassdef then continue
- var mclassdef = nclassdef.mclassdef.as(not null)
+ var mclassdef = nclassdef.mclassdef
+ if mclassdef == null then continue
# Get the direct superclasses
# Since we are a mclassdef, just look at the mclassdef hierarchy
if not parents.has(sc) or sc == objectclass then
# Skip the warning on generated code
if ntype.location.file != null and not ntype.location.file.filename.is_empty then
- warning(ntype, "useless-superclass", "Warning: superfluous super-class {mtype} in class {mclassdef.mclass}.")
+ warning(ntype, "useless-superclass", "Warning: superfluous super-class `{mtype}` in class `{mclassdef.mclass}`.")
end
else if not seen_parents.has_key(sc) then
seen_parents[sc] = ntype
else
- warning(ntype, "useless-superclass", "Warning: duplicated super-class {mtype} in class {mclassdef.mclass}.")
+ warning(ntype, "useless-superclass", "Warning: duplicated super-class `{mtype}` in class `{mclassdef.mclass}`.")
end
end
end
# Registration of the nclassdef associated to each mclassdef
private var mclassdef2nclassdef = new HashMap[MClassDef, AClassdef]
+
+ # Retrieve the associated AST node of a mclassdef.
+ #
+ # This method is used to associate model entity with syntactic entities.
+ # If the class definition is not associated with a node, returns `null`.
+ fun mclassdef2node(mclassdef: MClassDef): nullable AClassdef do
+ return mclassdef2nclassdef.get_or_null(mclassdef)
+ end
end
redef class AModule
# Force building recursively
if nclassdef.build_properties_is_done then return
nclassdef.build_properties_is_done = true
- var mclassdef = nclassdef.mclassdef.as(not null)
+ var mclassdef = nclassdef.mclassdef
+ if mclassdef == null then return # skip error
if mclassdef.in_hierarchy == null then return # Skip error
for superclassdef in mclassdef.in_hierarchy.direct_greaters do
if not mclassdef2nclassdef.has_key(superclassdef) then continue
npropdef.build_signature(self)
end
for npropdef in nclassdef2.n_propdefs do
+ if not npropdef isa ATypePropdef then continue
+ # Check circularity
+ var mpropdef = npropdef.mpropdef
+ if mpropdef == null then continue
+ if mpropdef.bound == null then continue
+ if not check_virtual_types_circularity(npropdef, mpropdef.mproperty, mclassdef.bound_mtype, mclassdef.mmodule) then
+ # Invalidate the bound
+ mpropdef.bound = mclassdef.mmodule.model.null_type
+ end
+ end
+ for npropdef in nclassdef2.n_propdefs do
+ # Check ATypePropdef first since they may be required for the other properties
+ if not npropdef isa ATypePropdef then continue
+ npropdef.check_signature(self)
+ end
+
+ for npropdef in nclassdef2.n_propdefs do
+ if npropdef isa ATypePropdef then continue
npropdef.check_signature(self)
end
end
if sig == null then continue # Skip broken method
if not npropdef.mpropdef.is_intro then
- self.error(at, "Error: `autoinit` cannot be set on redefinitions")
+ self.error(at, "Error: `autoinit` cannot be set on redefinitions.")
continue
end
for param in sig.mparameters do
var ret_type = param.mtype
- var mparameter = new MParameter(param.name, ret_type, false)
+ var mparameter = new MParameter(param.name, ret_type, false, ret_type isa MNullableType)
mparameters.add(mparameter)
end
initializers.add(npropdef.mpropdef.mproperty)
var paramname = npropdef.mpropdef.mproperty.name.substring_from(1)
var ret_type = npropdef.mpropdef.static_mtype
if ret_type == null then return
- var mparameter = new MParameter(paramname, ret_type, false)
+ var mparameter = new MParameter(paramname, ret_type, false, ret_type isa MNullableType)
mparameters.add(mparameter)
var msetter = npropdef.mwritepropdef
if msetter == null then
# Look for most-specific new-stype init definitions
var spropdefs = the_root_init_mmethod.lookup_super_definitions(mclassdef.mmodule, mclassdef.bound_mtype)
if spropdefs.is_empty then
- toolcontext.error(nclassdef.location, "Error: {mclassdef} does not specialize {the_root_init_mmethod.intro_mclassdef}. Possible duplication of the root class `Object`?")
+ toolcontext.error(nclassdef.location, "Error: `{mclassdef}` does not specialize `{the_root_init_mmethod.intro_mclassdef}`. Possible duplication of the root class `Object`?")
return
end
end
if autoinit.n_args.is_empty then
- error(autoinit, "Syntax error: `autoinit` expects method identifiers, use `noautoinit` to clear all autoinits.")
+ error(autoinit, "Syntax Error: `autoinit` expects method identifiers, use `noautoinit` to clear all autoinits.")
end
# Get and check each argument
for narg in autoinit.n_args do
var id = narg.as_id
if id == null then
- error(narg, "Syntax error: `autoinit` expects method identifiers.")
+ error(narg, "Syntax Error: `autoinit` expects method identifiers.")
return
end
if pd isa MMethodDef then
# Get the signature resolved for the current receiver
var sig = pd.msignature.resolve_for(mclassdef.mclass.mclass_type, mclassdef.bound_mtype, mclassdef.mmodule, false)
- mparameters.add_all sig.mparameters
+ # Because the last parameter of setters is never default, try to default them for the autoinit.
+ for param in sig.mparameters do
+ if not param.is_default and param.mtype isa MNullableType then
+ param = new MParameter(param.name, param.mtype, param.is_vararg, true)
+ end
+ mparameters.add(param)
+ end
else
# TODO attributes?
abort
for p in spd.initializers do
if p != longest.initializers[i] then
self.error(nclassdef, "Error: conflict for inherited inits {spd}({spd.initializers.join(", ")}) and {longest}({longest.initializers.join(", ")})")
+ # TODO: invalidate the initializer to avoid more errors
return
end
i += 1
# It is a case-by case
var vis_type: nullable MVisibility = null # The own visibility of the type
var mmodule_type: nullable MModule = null # The original module of the type
- mtype = mtype.as_notnullable
+ mtype = mtype.undecorate
if mtype isa MClassType then
vis_type = mtype.mclass.visibility
mmodule_type = mtype.mclass.intro.mmodule
mmodule_type = mtype.mproperty.intro_mclassdef.mmodule
else if mtype isa MParameterType then
# nothing, always visible
+ else if mtype isa MNullType then
+ # nothing to do.
else
node.debug "Unexpected type {mtype}"
abort
assert mmodule_type != null
var vis_module_type = mmodule.visibility_for(mmodule_type) # the visibility of the original module
if mproperty.visibility > vis_type then
- error(node, "Error: The {mproperty.visibility} property `{mproperty}` cannot contain the {vis_type} type `{mtype}`")
+ error(node, "Error: the {mproperty.visibility} property `{mproperty}` cannot contain the {vis_type} type `{mtype}`.")
return
else if mproperty.visibility > vis_module_type then
- error(node, "Error: The {mproperty.visibility} property `{mproperty}` cannot contain the type `{mtype}` from the {vis_module_type} module `{mmodule_type}`")
+ error(node, "Error: the {mproperty.visibility} property `{mproperty}` cannot contain the type `{mtype}` from the {vis_module_type} module `{mmodule_type}`.")
return
end
end
for t in mtype.arguments do check_visibility(node, t, mpropdef)
end
end
+
+ # Detect circularity errors for virtual types.
+ fun check_virtual_types_circularity(node: ANode, mproperty: MVirtualTypeProp, recv: MType, mmodule: MModule): Bool
+ do
+ # Check circularity
+ # Slow case: progress on each resolution until we visit all without getting a loop
+
+ # The graph used to detect loops
+ var mtype = mproperty.mvirtualtype
+ var poset = new POSet[MType]
+
+ # The work-list of types to resolve
+ var todo = new List[MType]
+ todo.add mtype
+
+ while not todo.is_empty do
+ # The visited type
+ var t = todo.pop
+
+ if not t.need_anchor then continue
+
+ # Get the types derived of `t` (subtypes and bounds)
+ var nexts
+ if t isa MNullableType then
+ nexts = [t.mtype]
+ else if t isa MGenericType then
+ nexts = t.arguments
+ else if t isa MVirtualType then
+ var vt = t.mproperty
+ # Because `vt` is possibly unchecked, we have to do the bound-lookup manually
+ var defs = vt.lookup_definitions(mmodule, recv)
+ # TODO something to manage correctly bound conflicts
+ assert not defs.is_empty
+ nexts = new Array[MType]
+ for d in defs do
+ var next = defs.first.bound
+ if next == null then return false
+ nexts.add next
+ end
+ else if t isa MClassType then
+ # Basic type, nothing to to
+ continue
+ else if t isa MParameterType then
+ # Parameter types cannot depend on virtual types, so nothing to do
+ continue
+ else
+ abort
+ end
+
+ # For each one
+ for next in nexts do
+ if poset.has_edge(next, t) then
+ if mtype == next then
+ error(node, "Error: circularity of virtual type definition: {next} <-> {t}.")
+ else
+ error(node, "Error: circularity of virtual type definition: {mtype} -> {next} <-> {t}.")
+ end
+ return false
+ else
+ poset.add_edge(t, next)
+ todo.add next
+ end
+ end
+ end
+ return true
+ end
end
redef class MPropDef
# SELF must be declared in Object, otherwise this will create conflicts
if intro_mclassdef.mclass.name != "Object" then
- modelbuilder.error(nintro, "Error: the virtual type SELF must be declared in Object.")
+ modelbuilder.error(nintro, "Error: the virtual type `SELF` must be declared in `Object`.")
end
# SELF must be public
if mprop.visibility != public_visibility then
- modelbuilder.error(nintro, "Error: the virtual type SELF must be public.")
+ modelbuilder.error(nintro, "Error: the virtual type `SELF` must be public.")
end
# SELF must not be fixed
if intro.is_fixed then
- modelbuilder.error(nintro, "Error: the virtual type SELF cannot be fixed.")
+ modelbuilder.error(nintro, "Error: the virtual type `SELF` cannot be fixed.")
end
return
if nvisibility != null then
mvisibility = nvisibility.mvisibility
if mvisibility == intrude_visibility then
- modelbuilder.error(nvisibility, "Error: intrude is not a legal visibility for properties.")
+ modelbuilder.error(nvisibility, "Error: `intrude` is not a legal visibility for properties.")
mvisibility = public_visibility
end
end
if mclassdef.mclass.visibility == private_visibility then
if mvisibility == protected_visibility then
assert nvisibility != null
- modelbuilder.error(nvisibility, "Error: The only legal visibility for properties in a private class is private.")
+ modelbuilder.error(nvisibility, "Error: `private` is the only legal visibility for properties in a private class.")
else if mvisibility == private_visibility then
assert nvisibility != null
- modelbuilder.advice(nvisibility, "useless-visibility", "Warning: private is superfluous since the only legal visibility for properties in a private class is private.")
+ modelbuilder.advice(nvisibility, "useless-visibility", "Warning: `private` is superfluous since the only legal visibility for properties in a private class is private.")
end
mvisibility = private_visibility
end
if nvisibility == null then return
var mvisibility = nvisibility.mvisibility
if mvisibility != mprop.visibility and mvisibility != public_visibility then
- modelbuilder.error(nvisibility, "Error: redefinition changed the visibility from a {mprop.visibility} to a {mvisibility}")
+ modelbuilder.error(nvisibility, "Error: redefinition changed the visibility from `{mprop.visibility}` to `{mvisibility}`.")
end
end
private fun check_redef_keyword(modelbuilder: ModelBuilder, mclassdef: MClassDef, kwredef: nullable Token, need_redef: Bool, mprop: MProperty): Bool
do
if mclassdef.mprop2npropdef.has_key(mprop) then
- modelbuilder.error(self, "Error: A property {mprop} is already defined in class {mclassdef.mclass} at line {mclassdef.mprop2npropdef[mprop].location.line_start}.")
+ modelbuilder.error(self, "Error: a property `{mprop}` is already defined in class `{mclassdef.mclass}` at line {mclassdef.mprop2npropdef[mprop].location.line_start}.")
return false
end
- if mprop isa MMethod and mprop.is_toplevel != (parent isa ATopClassdef) then
- if mprop.is_toplevel then
- modelbuilder.error(self, "Error: {mprop} is a top level method.")
- else
- modelbuilder.error(self, "Error: {mprop} is not a top level method.")
- end
- return false
-
- end
if mprop isa MMethod and mprop.is_root_init then return true
if kwredef == null then
if need_redef then
- modelbuilder.error(self, "Redef error: {mclassdef.mclass}::{mprop.name} is an inherited property. To redefine it, add the redef keyword.")
+ modelbuilder.error(self, "Redef Error: `{mclassdef.mclass}::{mprop.name}` is an inherited property. To redefine it, add the `redef` keyword.")
return false
end
end
else
if not need_redef then
- modelbuilder.error(self, "Error: No property {mclassdef.mclass}::{mprop.name} is inherited. Remove the redef keyword to define a new property.")
+ modelbuilder.error(self, "Error: no property `{mclassdef.mclass}::{mprop.name}` is inherited. Remove the `redef` keyword to define a new property.")
return false
end
end
param_names.add(np.n_id.text)
var ntype = np.n_type
if ntype != null then
- var mtype = modelbuilder.resolve_mtype(mmodule, mclassdef, ntype)
+ var mtype = modelbuilder.resolve_mtype_unchecked(mmodule, mclassdef, ntype, true)
if mtype == null then return false # Skip error
for i in [0..param_names.length-param_types.length[ do
param_types.add(mtype)
end
if np.n_dotdotdot != null then
if self.vararg_rank != -1 then
- modelbuilder.error(np, "Error: {param_names[self.vararg_rank]} is already a vararg")
+ modelbuilder.error(np, "Error: `{param_names[self.vararg_rank]}` is already a vararg")
return false
else
self.vararg_rank = param_names.length - 1
end
var ntype = self.n_type
if ntype != null then
- self.ret_type = modelbuilder.resolve_mtype(mmodule, mclassdef, ntype)
+ self.ret_type = modelbuilder.resolve_mtype_unchecked(mmodule, mclassdef, ntype, true)
if self.ret_type == null then return false # Skip error
end
return true
end
- # Build a visited signature
- fun build_signature(modelbuilder: ModelBuilder): nullable MSignature
+ private fun check_signature(modelbuilder: ModelBuilder, mclassdef: MClassDef): Bool
do
- if param_names.length != param_types.length then
- # Some parameters are typed, other parameters are not typed.
- modelbuilder.error(self.n_params[param_types.length], "Error: Untyped parameter `{param_names[param_types.length]}'.")
- return null
+ var res = true
+ for np in self.n_params do
+ var ntype = np.n_type
+ if ntype != null then
+ if modelbuilder.resolve_mtype(mclassdef.mmodule, mclassdef, ntype) == null then
+ res = false
+ end
+ end
end
-
- var mparameters = new Array[MParameter]
- for i in [0..param_names.length[ do
- var mparameter = new MParameter(param_names[i], param_types[i], i == vararg_rank)
- self.n_params[i].mparameter = mparameter
- mparameters.add(mparameter)
+ var ntype = self.n_type
+ if ntype != null then
+ if modelbuilder.resolve_mtype(mclassdef.mmodule, mclassdef, ntype) == null then
+ res = false
+ end
end
-
- var msignature = new MSignature(mparameters, ret_type)
- return msignature
+ return res
end
end
name = amethodid.collect_text
name_node = amethodid
- if name == "-" and self.n_signature.n_params.length == 0 then
+ var arity = self.n_signature.n_params.length
+ if name == "+" and arity == 0 then
+ name = "unary +"
+ else if name == "-" and arity == 0 then
name = "unary -"
+ else if name == "~" and arity == 0 then
+ name = "unary ~"
+ else
+ if amethodid.is_binary and arity != 1 then
+ modelbuilder.error(self.n_signature, "Syntax Error: binary operator `{name}` requires exactly one parameter; got {arity}.")
+ else if amethodid.min_arity > arity then
+ modelbuilder.error(self.n_signature, "Syntax Error: `{name}` requires at least {amethodid.min_arity} parameter(s); got {arity}.")
+ end
end
end
mprop.is_init = is_init
mprop.is_new = n_kwnew != null
if mprop.is_new then mclassdef.mclass.has_new_factory = true
- if parent isa ATopClassdef then mprop.is_toplevel = true
+ if name == "sys" then mprop.is_toplevel = true # special case for sys allowed in `new` factories
self.check_redef_keyword(modelbuilder, mclassdef, n_kwredef, false, mprop)
else
if not self.check_redef_keyword(modelbuilder, mclassdef, n_kwredef, not self isa AMainMethPropdef, mprop) then return
end
end
+ var accept_special_last_parameter = self.n_methid == null or self.n_methid.accept_special_last_parameter
+ var return_is_mandatory = self.n_methid != null and self.n_methid.return_is_mandatory
+
# Retrieve info from the signature AST
var param_names = new Array[String] # Names of parameters from the AST
var param_types = new Array[MType] # Types of parameters from the AST
if param_names.length != msignature.arity then
var node: ANode
if nsig != null then node = nsig else node = self
- modelbuilder.error(node, "Redef error: {mpropdef} redefines {mpropdef.mproperty.intro} with {param_names.length} parameter(s), {msignature.arity} expected. Signature is {mpropdef}{msignature}")
+ modelbuilder.error(node, "Redef Error: expected {msignature.arity} parameter(s) for `{mpropdef.mproperty.name}{msignature}`; got {param_names.length}. See introduction at `{mpropdef.mproperty.full_name}`.")
return
end
else if mpropdef.mproperty.is_init and not mpropdef.mproperty.is_new then
if param_names.length != param_types.length then
# Some parameters are typed, other parameters are not typed.
- modelbuilder.error(nsig.n_params[param_types.length], "Error: Untyped parameter `{param_names[param_types.length]}'.")
+ modelbuilder.error(nsig.n_params[param_types.length], "Error: untyped parameter `{param_names[param_types.length]}'.")
return
end
var mparameters = new Array[MParameter]
for i in [0..param_names.length[ do
- var mparameter = new MParameter(param_names[i], param_types[i], i == vararg_rank)
+ var is_default = false
+ if vararg_rank == -1 and param_types[i] isa MNullableType then
+ if i < param_names.length-1 or accept_special_last_parameter then
+ is_default = true
+ end
+ end
+ var mparameter = new MParameter(param_names[i], param_types[i], i == vararg_rank, is_default)
if nsig != null then nsig.n_params[i].mparameter = mparameter
mparameters.add(mparameter)
end
# In `new`-factories, the return type is by default the classtype.
if ret_type == null and mpropdef.mproperty.is_new then ret_type = mclassdef.mclass.mclass_type
+ # Special checks for operator methods
+ if not accept_special_last_parameter and mparameters.not_empty and mparameters.last.is_vararg then
+ modelbuilder.error(self.n_signature.n_params.last, "Error: illegal variadic parameter `{mparameters.last}` for `{mpropdef.mproperty.name}`.")
+ end
+ if ret_type == null and return_is_mandatory then
+ modelbuilder.error(self.n_methid, "Error: mandatory return type for `{mpropdef.mproperty.name}`.")
+ end
+
msignature = new MSignature(mparameters, ret_type)
mpropdef.msignature = msignature
mpropdef.is_abstract = self.get_single_annotation("abstract", modelbuilder) != null
# Check annotations
var at = self.get_single_annotation("lazy", modelbuilder)
- if at != null then modelbuilder.error(at, "Syntax error: `lazy` must be used on attributes.")
+ if at != null then modelbuilder.error(at, "Syntax Error: `lazy` must be used on attributes.")
end
redef fun check_signature(modelbuilder)
var mysignature = self.mpropdef.msignature
if mysignature == null then return # Error thus skiped
+ # Check
+ if nsig != null then
+ if not nsig.check_signature(modelbuilder, mclassdef) then
+ self.mpropdef.msignature = null # invalidate
+ return # Forward error
+ end
+ end
+
# Lookup for signature in the precursor
# FIXME all precursors should be considered
if not mpropdef.is_intro then
var precursor_ret_type = msignature.return_mtype
var ret_type = mysignature.return_mtype
if ret_type != null and precursor_ret_type == null then
- modelbuilder.error(nsig.n_type.as(not null), "Redef Error: {mpropdef.mproperty} is a procedure, not a function.")
+ modelbuilder.error(nsig.n_type.as(not null), "Redef Error: `{mpropdef.mproperty}` is a procedure, not a function.")
+ self.mpropdef.msignature = null
return
end
var prt = msignature.mparameters[i].mtype
var node = nsig.n_params[i]
if not modelbuilder.check_sametype(node, mmodule, mclassdef.bound_mtype, myt, prt) then
- modelbuilder.error(node, "Redef Error: Wrong type for parameter `{mysignature.mparameters[i].name}'. found {myt}, expected {prt} as in {mpropdef.mproperty.intro}.")
+ modelbuilder.error(node, "Redef Error: expected `{prt}` for parameter `{mysignature.mparameters[i].name}'; got `{myt}`.")
+ self.mpropdef.msignature = null
end
end
end
# Inherit the return type
ret_type = precursor_ret_type
else if not modelbuilder.check_subtype(node, mmodule, mclassdef.bound_mtype, ret_type, precursor_ret_type) then
- modelbuilder.error(node, "Redef Error: Wrong return type. found {ret_type}, expected {precursor_ret_type} as in {mpropdef.mproperty.intro}.")
+ modelbuilder.error(node, "Redef Error: expected `{precursor_ret_type}` for return type; got `{ret_type}`.")
+ self.mpropdef.msignature = null
end
end
end
end
end
+redef class AMethid
+ # Is a return required?
+ #
+ # * True for operators and brackets.
+ # * False for id and assignment.
+ fun return_is_mandatory: Bool do return true
+
+ # Can the last parameter be special like a vararg?
+ #
+ # * False for operators: the last one is in fact the only one.
+ # * False for assignments: it is the right part of the assignment.
+ # * True for ids and brackets.
+ fun accept_special_last_parameter: Bool do return false
+
+ # The minimum required number of parameters.
+ #
+ # * 1 for binary operators
+ # * 1 for brackets
+ # * 1 for assignments
+ # * 2 for bracket assignments
+ # * 0 for ids
+ fun min_arity: Int do return 1
+
+ # Is the `self` a binary operator?
+ fun is_binary: Bool do return true
+end
+
+redef class AIdMethid
+ redef fun return_is_mandatory do return false
+ redef fun accept_special_last_parameter do return true
+ redef fun min_arity do return 0
+ redef fun is_binary do return false
+end
+
+redef class ABraMethid
+ redef fun accept_special_last_parameter do return true
+ redef fun is_binary do return false
+end
+
+redef class ABraassignMethid
+ redef fun return_is_mandatory do return false
+ redef fun min_arity do return 2
+ redef fun is_binary do return false
+end
+
+redef class AAssignMethid
+ redef fun return_is_mandatory do return false
+ redef fun is_binary do return false
+end
+
redef class AAttrPropdef
redef type MPROPDEF: MAttributeDef
var atabstract = self.get_single_annotation("abstract", modelbuilder)
if atabstract == null then
- if mclass.kind == interface_kind then
- modelbuilder.error(self, "Error: Attempt to define attribute {name} in the interface {mclass}.")
- else if mclass.kind == enum_kind then
- modelbuilder.error(self, "Error: Attempt to define attribute {name} in the enum class {mclass}.")
- else if mclass.kind == extern_kind then
- modelbuilder.error(self, "Error: Attempt to define attribute {name} in the extern class {mclass}.")
+ if not mclass.kind.need_init then
+ modelbuilder.error(self, "Error: attempt to define attribute `{name}` in the {mclass.kind} `{mclass}`.")
end
var mprop = new MAttribute(mclassdef, "_" + name, private_visibility)
has_value = n_expr != null or n_block != null
if atabstract != null and has_value then
- modelbuilder.error(atabstract, "Error: `abstract` attributes cannot have an initial value")
+ modelbuilder.error(atabstract, "Error: `abstract` attributes cannot have an initial value.")
return
end
if atnoinit != null then
noinit = true
if has_value then
- modelbuilder.error(atnoinit, "Error: `noautoinit` attributes cannot have an initial value")
+ modelbuilder.error(atnoinit, "Error: `noautoinit` attributes cannot have an initial value.")
return
end
if atabstract != null then
- modelbuilder.error(atnoinit, "Error: `noautoinit` attributes cannot be abstract")
+ modelbuilder.error(atnoinit, "Error: `noautoinit` attributes cannot be abstract.")
return
end
end
var atautoinit = self.get_single_annotation("autoinit", modelbuilder)
if atlazy != null or atautoinit != null then
if atlazy != null and atautoinit != null then
- modelbuilder.error(atlazy, "Error: lazy incompatible with autoinit")
+ modelbuilder.error(atlazy, "Error: `lazy` incompatible with `autoinit`.")
return
end
if not has_value then
if atlazy != null then
- modelbuilder.error(atlazy, "Error: a lazy attribute needs a value")
+ modelbuilder.error(atlazy, "Error: `lazy` attributes need a value.")
else if atautoinit != null then
- modelbuilder.error(atautoinit, "Error: a autoinit attribute needs a value")
+ modelbuilder.error(atautoinit, "Error: `autoinit` attributes need a value.")
end
+ has_value = true
return
end
is_lazy = true
var atreadonly = self.get_single_annotation("readonly", modelbuilder)
if atreadonly != null then
if not has_value then
- modelbuilder.error(atreadonly, "Error: a readonly attribute needs a value")
+ modelbuilder.error(atreadonly, "Error: `readonly` attributes need a value.")
end
# No setter, so just leave
return
var ntype = self.n_type
if ntype != null then
- mtype = modelbuilder.resolve_mtype(mmodule, mclassdef, ntype)
+ mtype = modelbuilder.resolve_mtype_unchecked(mmodule, mclassdef, ntype, true)
if mtype == null then return
end
if mtype == null then
if nexpr != null then
if nexpr isa ANewExpr then
- mtype = modelbuilder.resolve_mtype(mmodule, mclassdef, nexpr.n_type)
+ mtype = modelbuilder.resolve_mtype_unchecked(mmodule, mclassdef, nexpr.n_type, true)
else if nexpr isa AIntExpr then
var cla = modelbuilder.try_get_mclass_by_name(nexpr, mmodule, "Int")
if cla != null then mtype = cla.mclass_type
var cla = modelbuilder.try_get_mclass_by_name(nexpr, mmodule, "String")
if cla != null then mtype = cla.mclass_type
else
- modelbuilder.error(self, "Error: Untyped attribute {mreadpropdef}. Implicit typing allowed only for literals and new.")
+ modelbuilder.error(self, "Error: untyped attribute `{mreadpropdef}`. Implicit typing allowed only for literals and new.")
end
if mtype == null then return
end
else if ntype != null and inherited_type == mtype then
if nexpr isa ANewExpr then
- var xmtype = modelbuilder.resolve_mtype(mmodule, mclassdef, nexpr.n_type)
+ var xmtype = modelbuilder.resolve_mtype_unchecked(mmodule, mclassdef, nexpr.n_type, true)
if xmtype == mtype then
modelbuilder.advice(ntype, "useless-type", "Warning: useless type definition")
end
end
if mtype == null then
- modelbuilder.error(self, "Error: Untyped attribute {mreadpropdef}")
+ modelbuilder.error(self, "Error: untyped attribute `{mreadpropdef}`.")
return
end
if mwritepropdef != null then
var name: String
name = n_id2.text
- var mparameter = new MParameter(name, mtype, false)
+ var mparameter = new MParameter(name, mtype, false, false)
var msignature = new MSignature([mparameter], null)
mwritepropdef.msignature = msignature
end
var mtype = self.mpropdef.static_mtype
if mtype == null then return # Error thus skipped
+ var mclassdef = mpropdef.mclassdef
+ var mmodule = mclassdef.mmodule
+
+ # Check types
+ if ntype != null then
+ if modelbuilder.resolve_mtype(mmodule, mclassdef, ntype) == null then return
+ end
+ var nexpr = n_expr
+ if nexpr isa ANewExpr then
+ if modelbuilder.resolve_mtype(mmodule, mclassdef, nexpr.n_type) == null then return
+ end
+
# Lookup for signature in the precursor
# FIXME all precursors should be considered
if not mpropdef.is_intro then
if precursor_type == null then return
if mtype != precursor_type then
- modelbuilder.error(ntype.as(not null), "Redef Error: Wrong static type. found {mtype}, expected {precursor_type}.")
+ modelbuilder.error(ntype.as(not null), "Redef Error: expected `{precursor_type}` type as a bound; got `{mtype}`.")
return
end
end
if mysignature.arity != msignature.arity then
var node: ANode
if nsig != null then node = nsig else node = self
- modelbuilder.error(node, "Redef Error: {mysignature.arity} parameters found, {msignature.arity} expected. Signature is {mpropdef}{msignature}")
+ modelbuilder.error(node, "Redef Error: expected {msignature.arity} parameter(s) for `{mpropdef.mproperty.name}{msignature}`; got {mysignature.arity}. See introduction at `{mpropdef.mproperty.full_name}`.")
return
end
var precursor_ret_type = msignature.return_mtype
if ret_type != null and precursor_ret_type == null then
var node: ANode
if nsig != null then node = nsig else node = self
- modelbuilder.error(node, "Redef Error: {mpropdef.mproperty} is a procedure, not a function.")
+ modelbuilder.error(node, "Redef Error: `{mpropdef.mproperty}` is a procedure, not a function.")
return
end
var node: ANode
if nsig != null then node = nsig else node = self
if not modelbuilder.check_sametype(node, mmodule, mclassdef.bound_mtype, myt, prt) then
- modelbuilder.error(node, "Redef Error: Wrong type for parameter `{mysignature.mparameters[i].name}'. found {myt}, expected {prt}.")
+ modelbuilder.error(node, "Redef Error: expected `{prt}` type for parameter `{mysignature.mparameters[i].name}'; got `{myt}`.")
end
end
end
# Inherit the return type
ret_type = precursor_ret_type
else if not modelbuilder.check_subtype(node, mmodule, mclassdef.bound_mtype, ret_type, precursor_ret_type) then
- modelbuilder.error(node, "Redef Error: Wrong return type. found {ret_type}, expected {precursor_ret_type}.")
+ modelbuilder.error(node, "Redef Error: expected `{precursor_ret_type}` return type; got `{ret_type}`.")
end
end
end
var mvisibility = new_property_visibility(modelbuilder, mclassdef, self.n_visibility)
mprop = new MVirtualTypeProp(mclassdef, name, mvisibility)
for c in name.chars do if c >= 'a' and c<= 'z' then
- modelbuilder.warning(n_id, "bad-type-name", "Warning: lowercase in the virtual type {name}")
+ modelbuilder.warning(n_id, "bad-type-name", "Warning: lowercase in the virtual type `{name}`.")
break
end
if not self.check_redef_keyword(modelbuilder, mclassdef, self.n_kwredef, false, mprop) then return
var mtype: nullable MType = null
var ntype = self.n_type
- mtype = modelbuilder.resolve_mtype(mmodule, mclassdef, ntype)
+ mtype = modelbuilder.resolve_mtype_unchecked(mmodule, mclassdef, ntype, true)
if mtype == null then return
mpropdef.bound = mtype
var mpropdef = self.mpropdef
if mpropdef == null then return # Error thus skipped
- var bound = self.mpropdef.bound
+ var bound = mpropdef.bound
if bound == null then return # Error thus skipped
modelbuilder.check_visibility(n_type, bound, mpropdef)
var mmodule = mclassdef.mmodule
var anchor = mclassdef.bound_mtype
- # Check circularity
- if bound isa MVirtualType then
- # Slow case: progress on each resolution until: (i) we loop, or (ii) we found a non formal type
- var seen = [self.mpropdef.mproperty.mvirtualtype]
- loop
- if seen.has(bound) then
- seen.add(bound)
- modelbuilder.error(self, "Error: circularity of virtual type definition: {seen.join(" -> ")}")
- return
- end
- seen.add(bound)
- var next = bound.lookup_bound(mmodule, anchor)
- if not next isa MVirtualType then break
- bound = next
- end
+ var ntype = self.n_type
+ if modelbuilder.resolve_mtype(mmodule, mclassdef, ntype) == null then
+ mpropdef.bound = null
+ return
end
# Check redefinitions
- bound = mpropdef.bound.as(not null)
for p in mpropdef.mproperty.lookup_super_definitions(mmodule, anchor) do
var supbound = p.bound
if supbound == null then break # broken super bound, skip error
if p.is_fixed then
- modelbuilder.error(self, "Redef Error: Virtual type {mpropdef.mproperty} is fixed in super-class {p.mclassdef.mclass}")
+ modelbuilder.error(self, "Redef Error: virtual type `{mpropdef.mproperty}` is fixed in super-class `{p.mclassdef.mclass}`.")
break
end
if p.mclassdef.mclass == mclassdef.mclass then
break
end
if not modelbuilder.check_subtype(n_type, mmodule, anchor, bound, supbound) then
- modelbuilder.error(n_type, "Redef Error: Wrong bound type. Found {bound}, expected a subtype of {supbound}, as in {p}.")
+ modelbuilder.error(n_type, "Redef Error: expected `{supbound}` bound type; got `{bound}`.")
break
end
end
node.labels.add "MParameter"
node["name"] = mparameter.name
node["is_vararg"] = mparameter.is_vararg
+ node["is_default"] = mparameter.is_default
node.out_edges.add(new NeoEdge(node, "TYPE", to_node(mparameter.mtype)))
return node
end
var name = node["name"].to_s
var mtype = to_mtype(model, node.out_nodes("TYPE").first)
var is_vararg = node["is_vararg"].as(Bool)
- var mparameter = new MParameter(name, mtype, is_vararg)
+ var is_default = node["is_default"].as(Bool)
+ var mparameter = new MParameter(name, mtype, is_vararg, is_default)
mentities[node.id.as(Int)] = mparameter
return mparameter
end
end
print "[HOST ADDRESS] : {debug.address}"
-print "[HOST] : {debug.host or else "unamed"}"
+print "[HOST] : {debug.host}"
print "[PORT] : {debug.port}"
print "Connecting ... {debug.connected}"
var sum = opt_tree.value.to_i + opt_source.value.to_i + opt_project.value.to_i
if sum > 1 then
- print "Error: options --tree, --source, and --project are exclusives."
+ print "Error: options --tree, --source, and --project are exclusive."
print tc.tooldescription
exit 1
end
if nit_name == "+" then return "_plus"
if nit_name == "-" then return "_minus"
if nit_name == "unary -" then return "_unary_minus"
+ if nit_name == "unary +" then return "_unary_plus"
+ if nit_name == "unary ~" then return "_unary_tilde"
if nit_name == "*" then return "_star"
if nit_name == "/" then return "_slash"
if nit_name == "%" then return "_percent"
if nit_name == "[]=" then return "_index_assign"
if nit_name == "==" then return "_equal"
if nit_name == "<" then return "_less"
- if nit_name == ">" then return "_geater"
+ if nit_name == ">" then return "_greater"
if nit_name == "<=" then return "_less_or_equal"
if nit_name == ">=" then return "_greater_or_equal"
if nit_name == "!=" then return "_not_equal"
if nit_name == "<<" then return "_left"
if nit_name == ">>" then return "_right"
if nit_name == "<=>" then return "_starship"
+ if nit_name == "|" then return "_pipe"
+ if nit_name == "^" then return "_caret"
+ if nit_name == "&" then return "_amp"
+ if nit_name == "~" then return "_tilde"
if nit_name.chars.last == '=' then return "{nit_name.substring(0, nit_name.length-1)}__assign"
return nit_name
# return type
var rmt = mpropdef.msignature.return_mtype
if rmt != null then
- if rmt isa MParameterType or rmt isa MVirtualType then
+ if rmt isa MFormalType then
var mclass_type = mpropdef.mclassdef.bound_mtype
rmt = rmt.anchor_to(mmodule, mclass_type)
end
# params
for p in mpropdef.msignature.mparameters do
var mtype = p.mtype.resolve_for(recv_type, recv_type, mmodule, true)
- if mtype isa MParameterType or mtype isa MVirtualType then
+ if mtype isa MFormalType then
var mclass_type = mpropdef.mclassdef.bound_mtype
mtype = mtype.anchor_to(mmodule, mclass_type)
end
mmodule, mclass_type, m_name )
if method == null then
- toolcontext.error(location, "Local method {m_name} not found.")
+ toolcontext.error(location, "Error: local method `{m_name}` not found.")
return
end
if mtype == null then return
- if mtype isa MParameterType or mtype isa MVirtualType then
+ if mtype isa MFormalType then
mtype = mtype.anchor_to(mmodule, mclass_type)
end
if mtype isa MNullableType then
- toolcontext.error(location, "Type {n_type.collect_text} is nullable and thus cannot be the receiver." )
+ toolcontext.error(location, "Error: type `{n_type.collect_text}` is nullable and thus cannot be the receiver." )
return
end
mmodule, mtype, m_name )
if method == null then
- toolcontext.error(location, "Method {m_name} not found in {n_type.collect_text}." )
+ toolcontext.error(location, "Error: method `{m_name}` not found in `{n_type.collect_text}`." )
return
end
if mtype == null then return
if not mtype isa MClassType then
- toolcontext.error(location, "Type {n_type.collect_text} is not a class and thus cannot be used to instanciate a new instance." )
+ toolcontext.error(location, "Error: type `{n_type.collect_text}` is not a class and thus cannot be used to instantiate a new instance." )
return
end
end
if meth == null then
- toolcontext.error(location, "Method {meth_name} not found in {n_type.collect_text}." )
+ toolcontext.error(location, "Error: method `{meth_name}` not found in `{n_type.collect_text}`." )
return
end
redef fun from_mtype do return n_type.mtype.as_nullable
redef fun to_mtype do
var mtype = n_type.mtype.as(not null)
- mtype = mtype.as_notnullable
+ mtype = mtype.undecorate
return mtype
end
# Check formatting instead of pretty printing.
#
- # This option create a tempory pretty printed file then check if
- # the output of the diff command on the source file and the pretty
- # printed one is empty.
+ # This option creates a temporary pretty printed file then checks if the
+ # output of the diff command on the source file and the pretty printed one is
+ # empty.
var opt_check = new OptionBool("Check format of Nit source files", "--check")
end
#
# Executing on the module `game_logic` will create the module `game_logic_serial`
# in the local directory. Mixing the generated module to the main module with
-# `nitg game_logic.nit -m game_logic_serial` will create a program supporting
+# `nitc game_logic.nit -m game_logic_serial` will create a program supporting
# deserialization of all generic types visible from the main module.
#
# Because the generation is limited to the visible types, a module author might want
for mtype in rta.live_types do
# We are only interested in instanciated generics, subtypes of Serializable
- # and which are visibles.
+ # and which are visible.
if mtype isa MGenericType and
mtype.is_subtype(m, null, serializable_type) and
mtype.is_visible_from(mmodule) and
--- /dev/null
+*.class
+org/nitlanguage/gen/analysis/
+org/nitlanguage/gen/lexer/
+org/nitlanguage/gen/node/
+org/nitlanguage/gen/parser/
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
rm -f -- parser.nit parser_abs.nit parser_prod.nit lexer.nit || true
+
+java: .nit.sablecc3
+ rm -r org/nitlanguage/gen/analysis/ org/nitlanguage/gen/lexer/ org/nitlanguage/gen/node/ org/nitlanguage/gen/parser/
+ ${SABLECC3ALTGEN} .nit.sablecc3 -c .nit.sablecc3.dump
+ javac org/nitlanguage/gen/TestParser.java
* parser_nodes.nit: token and nodes classes hierarchy used by the parser and the lexer
* tables.nit, tables_nit.h: Interfaces to access the tables needed by the parser and the lexer
* xss/*.xss: alternate SableCC3 template files for the Nit language
-
+* org/nitlanguage/gen: A Nit parser in Java, used for tests. use the `make java` rule to build it.
The following are generated but present to avoid the need of sablecc3:
end
end
-redef class TKwdebug
+redef class TKwwith
redef fun parser_index: Int
do
return 50
end
end
-redef class TOpar
+redef class TKwdebug
redef fun parser_index: Int
do
return 51
end
end
-redef class TCpar
+redef class TOpar
redef fun parser_index: Int
do
return 52
end
end
-redef class TObra
+redef class TCpar
redef fun parser_index: Int
do
return 53
end
end
-redef class TCbra
+redef class TObra
redef fun parser_index: Int
do
return 54
end
end
-redef class TComma
+redef class TCbra
redef fun parser_index: Int
do
return 55
end
end
-redef class TColumn
+redef class TComma
redef fun parser_index: Int
do
return 56
end
end
-redef class TQuad
+redef class TColumn
redef fun parser_index: Int
do
return 57
end
end
-redef class TAssign
+redef class TQuad
redef fun parser_index: Int
do
return 58
end
end
-redef class TPluseq
+redef class TAssign
redef fun parser_index: Int
do
return 59
end
end
-redef class TMinuseq
+redef class TPluseq
redef fun parser_index: Int
do
return 60
end
end
-redef class TDotdotdot
+redef class TMinuseq
redef fun parser_index: Int
do
return 61
end
end
-redef class TDotdot
+redef class TStareq
redef fun parser_index: Int
do
return 62
end
end
-redef class TDot
+redef class TSlasheq
redef fun parser_index: Int
do
return 63
end
end
-redef class TPlus
+redef class TPercenteq
redef fun parser_index: Int
do
return 64
end
end
-redef class TMinus
+redef class TStarstareq
redef fun parser_index: Int
do
return 65
end
end
-redef class TStar
+redef class TPipeeq
redef fun parser_index: Int
do
return 66
end
end
-redef class TStarstar
+redef class TCareteq
redef fun parser_index: Int
do
return 67
end
end
-redef class TSlash
+redef class TAmpeq
redef fun parser_index: Int
do
return 68
end
end
-redef class TPercent
+redef class TLleq
redef fun parser_index: Int
do
return 69
end
end
-redef class TEq
+redef class TGgeq
redef fun parser_index: Int
do
return 70
end
end
-redef class TNe
+redef class TDotdotdot
redef fun parser_index: Int
do
return 71
end
end
-redef class TLt
+redef class TDotdot
redef fun parser_index: Int
do
return 72
end
end
-redef class TLe
+redef class TDot
redef fun parser_index: Int
do
return 73
end
end
-redef class TLl
+redef class TPlus
redef fun parser_index: Int
do
return 74
end
end
-redef class TGt
+redef class TMinus
redef fun parser_index: Int
do
return 75
end
end
-redef class TGe
+redef class TStar
redef fun parser_index: Int
do
return 76
end
end
-redef class TGg
+redef class TStarstar
redef fun parser_index: Int
do
return 77
end
end
-redef class TStarship
+redef class TSlash
redef fun parser_index: Int
do
return 78
end
end
-redef class TBang
+redef class TPercent
redef fun parser_index: Int
do
return 79
end
end
-redef class TAt
+redef class TPipe
redef fun parser_index: Int
do
return 80
end
end
-redef class TClassid
+redef class TCaret
redef fun parser_index: Int
do
return 81
end
end
-redef class TId
+redef class TAmp
redef fun parser_index: Int
do
return 82
end
end
-redef class TAttrid
+redef class TTilde
redef fun parser_index: Int
do
return 83
end
end
-redef class TNumber
+redef class TEq
redef fun parser_index: Int
do
return 84
end
end
-redef class THexNumber
+redef class TNe
redef fun parser_index: Int
do
return 85
end
end
-redef class TFloat
+redef class TLt
redef fun parser_index: Int
do
return 86
end
end
-redef class TString
+redef class TLe
redef fun parser_index: Int
do
return 87
end
end
-redef class TStartString
+redef class TLl
redef fun parser_index: Int
do
return 88
end
end
-redef class TMidString
+redef class TGt
redef fun parser_index: Int
do
return 89
end
end
-redef class TEndString
+redef class TGe
redef fun parser_index: Int
do
return 90
end
end
-redef class TChar
+redef class TGg
redef fun parser_index: Int
do
return 91
end
end
-redef class TBadString
+redef class TStarship
redef fun parser_index: Int
do
return 92
end
end
-redef class TBadChar
+redef class TBang
redef fun parser_index: Int
do
return 93
end
end
-redef class TExternCodeSegment
+redef class TAt
redef fun parser_index: Int
do
return 94
end
end
+redef class TClassid
+ redef fun parser_index: Int
+ do
+ return 95
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
+redef class TId
+ redef fun parser_index: Int
+ do
+ return 96
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
+redef class TAttrid
+ redef fun parser_index: Int
+ do
+ return 97
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
+redef class TNumber
+ redef fun parser_index: Int
+ do
+ return 98
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
+redef class THexNumber
+ redef fun parser_index: Int
+ do
+ return 99
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
+redef class TFloat
+ redef fun parser_index: Int
+ do
+ return 100
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
+redef class TString
+ redef fun parser_index: Int
+ do
+ return 101
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
+redef class TStartString
+ redef fun parser_index: Int
+ do
+ return 102
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
+redef class TMidString
+ redef fun parser_index: Int
+ do
+ return 103
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
+redef class TEndString
+ redef fun parser_index: Int
+ do
+ return 104
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
+redef class TChar
+ redef fun parser_index: Int
+ do
+ return 105
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
+redef class TBadString
+ redef fun parser_index: Int
+ do
+ return 106
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
+redef class TBadChar
+ redef fun parser_index: Int
+ do
+ return 107
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
+redef class TExternCodeSegment
+ redef fun parser_index: Int
+ do
+ return 108
+ end
+
+ init init_tk(loc: Location)
+ do
+ _location = loc
+ end
+end
+
redef class EOF
redef fun parser_index: Int
do
- return 95
+ return 109
end
end
return new TKwlabel.init_tk(location)
end
if accept_token == 51 then
- return new TKwdebug.init_tk(location)
+ return new TKwwith.init_tk(location)
end
if accept_token == 52 then
- return new TOpar.init_tk(location)
+ return new TKwdebug.init_tk(location)
end
if accept_token == 53 then
- return new TCpar.init_tk(location)
+ return new TOpar.init_tk(location)
end
if accept_token == 54 then
- return new TObra.init_tk(location)
+ return new TCpar.init_tk(location)
end
if accept_token == 55 then
- return new TCbra.init_tk(location)
+ return new TObra.init_tk(location)
end
if accept_token == 56 then
- return new TComma.init_tk(location)
+ return new TCbra.init_tk(location)
end
if accept_token == 57 then
- return new TColumn.init_tk(location)
+ return new TComma.init_tk(location)
end
if accept_token == 58 then
- return new TQuad.init_tk(location)
+ return new TColumn.init_tk(location)
end
if accept_token == 59 then
- return new TAssign.init_tk(location)
+ return new TQuad.init_tk(location)
end
if accept_token == 60 then
- return new TPluseq.init_tk(location)
+ return new TAssign.init_tk(location)
end
if accept_token == 61 then
- return new TMinuseq.init_tk(location)
+ return new TPluseq.init_tk(location)
end
if accept_token == 62 then
- return new TDotdotdot.init_tk(location)
+ return new TMinuseq.init_tk(location)
end
if accept_token == 63 then
- return new TDotdot.init_tk(location)
+ return new TStareq.init_tk(location)
end
if accept_token == 64 then
- return new TDot.init_tk(location)
+ return new TSlasheq.init_tk(location)
end
if accept_token == 65 then
- return new TPlus.init_tk(location)
+ return new TPercenteq.init_tk(location)
end
if accept_token == 66 then
- return new TMinus.init_tk(location)
+ return new TStarstareq.init_tk(location)
end
if accept_token == 67 then
- return new TStar.init_tk(location)
+ return new TPipeeq.init_tk(location)
end
if accept_token == 68 then
- return new TStarstar.init_tk(location)
+ return new TCareteq.init_tk(location)
end
if accept_token == 69 then
- return new TSlash.init_tk(location)
+ return new TAmpeq.init_tk(location)
end
if accept_token == 70 then
- return new TPercent.init_tk(location)
+ return new TLleq.init_tk(location)
end
if accept_token == 71 then
- return new TEq.init_tk(location)
+ return new TGgeq.init_tk(location)
end
if accept_token == 72 then
- return new TNe.init_tk(location)
+ return new TDotdotdot.init_tk(location)
end
if accept_token == 73 then
- return new TLt.init_tk(location)
+ return new TDotdot.init_tk(location)
end
if accept_token == 74 then
- return new TLe.init_tk(location)
+ return new TDot.init_tk(location)
end
if accept_token == 75 then
- return new TLl.init_tk(location)
+ return new TPlus.init_tk(location)
end
if accept_token == 76 then
- return new TGt.init_tk(location)
+ return new TMinus.init_tk(location)
end
if accept_token == 77 then
- return new TGe.init_tk(location)
+ return new TStar.init_tk(location)
end
if accept_token == 78 then
- return new TGg.init_tk(location)
+ return new TStarstar.init_tk(location)
end
if accept_token == 79 then
- return new TStarship.init_tk(location)
+ return new TSlash.init_tk(location)
end
if accept_token == 80 then
- return new TBang.init_tk(location)
+ return new TPercent.init_tk(location)
end
if accept_token == 81 then
- return new TAt.init_tk(location)
+ return new TPipe.init_tk(location)
end
if accept_token == 82 then
- return new TClassid.init_tk(location)
+ return new TCaret.init_tk(location)
end
if accept_token == 83 then
- return new TId.init_tk(location)
+ return new TAmp.init_tk(location)
end
if accept_token == 84 then
- return new TAttrid.init_tk(location)
+ return new TTilde.init_tk(location)
end
if accept_token == 85 then
- return new TNumber.init_tk(location)
+ return new TEq.init_tk(location)
end
if accept_token == 86 then
- return new THexNumber.init_tk(location)
+ return new TNe.init_tk(location)
end
if accept_token == 87 then
- return new TFloat.init_tk(location)
+ return new TLt.init_tk(location)
end
if accept_token == 88 then
- return new TString.init_tk(location)
+ return new TLe.init_tk(location)
end
if accept_token == 89 then
- return new TStartString.init_tk(location)
+ return new TLl.init_tk(location)
end
if accept_token == 90 then
- return new TMidString.init_tk(location)
+ return new TGt.init_tk(location)
end
if accept_token == 91 then
- return new TEndString.init_tk(location)
+ return new TGe.init_tk(location)
end
if accept_token == 92 then
- return new TChar.init_tk(location)
+ return new TGg.init_tk(location)
end
if accept_token == 93 then
- return new TBadString.init_tk(location)
+ return new TStarship.init_tk(location)
end
if accept_token == 94 then
- return new TBadChar.init_tk(location)
+ return new TBang.init_tk(location)
end
if accept_token == 95 then
+ return new TAt.init_tk(location)
+ end
+ if accept_token == 96 then
+ return new TClassid.init_tk(location)
+ end
+ if accept_token == 97 then
+ return new TId.init_tk(location)
+ end
+ if accept_token == 98 then
+ return new TAttrid.init_tk(location)
+ end
+ if accept_token == 99 then
+ return new TNumber.init_tk(location)
+ end
+ if accept_token == 100 then
+ return new THexNumber.init_tk(location)
+ end
+ if accept_token == 101 then
+ return new TFloat.init_tk(location)
+ end
+ if accept_token == 102 then
+ return new TString.init_tk(location)
+ end
+ if accept_token == 103 then
+ return new TStartString.init_tk(location)
+ end
+ if accept_token == 104 then
+ return new TMidString.init_tk(location)
+ end
+ if accept_token == 105 then
+ return new TEndString.init_tk(location)
+ end
+ if accept_token == 106 then
+ return new TChar.init_tk(location)
+ end
+ if accept_token == 107 then
+ return new TBadString.init_tk(location)
+ end
+ if accept_token == 108 then
+ return new TBadChar.init_tk(location)
+ end
+ if accept_token == 109 then
return new TExternCodeSegment.init_tk(location)
end
abort # unknown token index `accept_token`
end
else
if accept_state != -1 then
- var location = new Location(file, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
_pos = accept_pos
_line = accept_line
_stream_pos = start_stream_pos + accept_length
if accept_token == 0 then
+ # Ignored token (whitespaces)
return null
end
+ var location = new Location(file, start_line + 1, accept_line + 1, start_pos + 1, accept_pos)
return make_token(accept_token, location)
else
_stream_pos = sp
var location = new Location(file, start_line + 1, start_line + 1, start_pos + 1, start_pos + 1)
if sp > start_stream_pos then
var text = string.substring(start_stream_pos, sp-start_stream_pos)
- var token = new ALexerError.init_lexer_error("Syntax error: unknown token {text}.", location, text)
+ var token = new ALexerError.init_lexer_error("Syntax Error: unknown token `{text}`.", location, text)
file.last_token = token
return token
else
kwnullable = 'nullable';
kwisset = 'isset';
kwlabel = 'label';
+kwwith = 'with';
kwdebug = '__debug__';
opar = '(';
assign = '=';
pluseq = '+=';
minuseq = '-=';
+stareq = '*=';
+slasheq = '/=';
+percenteq = '%=';
+starstareq = '**=';
+pipeeq = '|=';
+careteq = '^=';
+ampeq = '&=';
+lleq = '<<=';
+ggeq = '>>=';
dotdotdot = '...';
dotdot = '..';
dot = '.';
starstar = '**';
slash = '/';
percent = '%';
+pipe = '|';
+caret = '^';
+amp = '&';
+tilde = '~';
eq = '==';
ne = '!=';
lt = '<';
| {starstar} starstar {-> New methid.starstar(starstar)}
| {slash} slash {-> New methid.slash(slash)}
| {percent} percent {-> New methid.percent(percent)}
+ | {pipe} pipe {-> New methid.pipe(pipe)}
+ | {caret} caret {-> New methid.caret(caret)}
+ | {amp} amp {-> New methid.amp(amp)}
+ | {tilde} tilde {-> New methid.tilde(tilde)}
| {eq} eq {-> New methid.eq(eq)}
| {ne} ne {-> New methid.ne(ne)}
| {le} le {-> New methid.le(le)}
| {while} while~withelse {-> while~withelse.expr}
| {loop} loop~withelse {-> loop~withelse.expr}
| {for} for~withelse {-> for~withelse.expr}
+ | {with} with~withelse {-> with~withelse.expr}
| {assert} assert~withelse {-> assert~withelse.expr}
!noexpr | {call} recv qid args_nopar {-> New expr.call(recv.expr, qid.id, args_nopar.exprs)}
!noexpr | {super} qualified_o kwsuper args_nopar {-> New expr.super(qualified_o.qualified, kwsuper, args_nopar.exprs)}
assign_op
= {plus} pluseq
| {minus} minuseq
+ | {star} stareq
+ | {slash} slasheq
+ | {percent} percenteq
+ | {starstar} starstareq
+ | {pipe} pipeeq
+ | {caret} careteq
+ | {amp} ampeq
+ | {ll} lleq
+ | {gg} ggeq
;
do~withelse {-> expr}
| {nolabel} kwfor no [ids]:idlist [n2]:no kwin [n3]:no expr [n4]:no kwdo stmtso~withelse {-> New expr.for(kwfor, [ids.id], expr, kwdo, stmtso~withelse.expr, Null)}
;
+with~withelse {-> expr}
+ = kwwith no withexpr [n4]:no kwdo stmtso_withend label {-> New expr.with(kwwith, withexpr.expr, kwdo, stmtso_withend.expr, label)}
+ | {nolabel} kwwith no withexpr [n4]:no kwdo stmtso~withelse {-> New expr.with(kwwith, withexpr.expr, kwdo, stmtso~withelse.expr, Null)}
+ ;
+
+withexpr {-> expr}
+ = {assign} id annotations? typing_o assign no expr {-> New expr.vardecl(Null, id, typing_o.type, assign, expr.expr, annotations)}
+ | expr {-> expr}
+ ;
+
assert~withelse {-> expr}
= {else} kwassert assertid? expr kwelse stmtso~withelse {-> New expr.assert(kwassert, assertid.id, expr, stmtso~withelse.expr)}
!withelse| {noelse} kwassert assertid? expr {-> New expr.assert(kwassert, assertid.id, expr, Null)}
expr_and~nopar~nobra {-> expr}
= expr_not~nopar~nobra {-> expr_not~nopar~nobra.expr}
- | {:or} expr_and~nopar~nobra :kwor :no expr_not~nopar~nobra
- | {:and} expr_and~nopar~nobra :kwand :no expr_not~nopar~nobra
- | {:or_else} expr_and~nopar~nobra :kwor :kwelse :no expr_not~nopar~nobra
- | {:implies} expr_and~nopar~nobra :kwimplies :no expr_not~nopar~nobra
+ | {:or} expr_and~nopar~nobra kwor :no expr_not~nopar~nobra
+ | {:and} expr_and~nopar~nobra kwand :no expr_not~nopar~nobra
+ | {:or_else} expr_and~nopar~nobra kwor kwelse :no expr_not~nopar~nobra
+ | {:implies} expr_and~nopar~nobra kwimplies :no expr_not~nopar~nobra
;
expr_not~nopar~nobra {-> expr}
;
expr_eq~nopar~nobra {-> expr}
- = expr_add~nopar~nobra {-> expr_add~nopar~nobra.expr}
- | {:eq} expr_add~nopar~nobra :eq :no [expr2]:expr_add~nopar~nobra
- | {:ne} expr_add~nopar~nobra :ne :no [expr2]:expr_add~nopar~nobra
- | {:lt} expr_add~nopar~nobra :lt :no [expr2]:expr_add~nopar~nobra
- | {:le} expr_add~nopar~nobra :le :no [expr2]:expr_add~nopar~nobra
- | {:ll} expr_eq~nopar~nobra :ll :no [expr2]:expr_add~nopar~nobra
- | {:gt} expr_add~nopar~nobra :gt :no [expr2]:expr_add~nopar~nobra
- | {:ge} expr_add~nopar~nobra :ge :no [expr2]:expr_add~nopar~nobra
- | {:gg} expr_eq~nopar~nobra :gg :no [expr2]:expr_add~nopar~nobra
- | {:starship} expr_add~nopar~nobra :starship :no [expr2]:expr_add~nopar~nobra
- | {:isa} expr_add~nopar~nobra :kwisa :no type~nobra
+ = expr_bitor~nopar~nobra {-> expr_bitor~nopar~nobra.expr}
+ | {:eq} expr_bitor~nopar~nobra eq :no [expr2]:expr_bitor~nopar~nobra
+ | {:ne} expr_bitor~nopar~nobra ne :no [expr2]:expr_bitor~nopar~nobra
+ | {:lt} expr_bitor~nopar~nobra lt :no [expr2]:expr_bitor~nopar~nobra
+ | {:le} expr_bitor~nopar~nobra le :no [expr2]:expr_bitor~nopar~nobra
+ | {:gt} expr_bitor~nopar~nobra gt :no [expr2]:expr_bitor~nopar~nobra
+ | {:ge} expr_bitor~nopar~nobra ge :no [expr2]:expr_bitor~nopar~nobra
+ | {:starship} expr_bitor~nopar~nobra starship :no [expr2]:expr_bitor~nopar~nobra
+ | {:isa} expr_bitor~nopar~nobra kwisa :no type~nobra
+ ;
+
+expr_bitor~nopar~nobra {-> expr}
+ = [expr]:expr_bitxor~nopar~nobra {-> expr.expr}
+ | {:pipe} expr_bitor~nopar~nobra pipe :no [expr2]:expr_bitxor~nopar~nobra
+ ;
+
+expr_bitxor~nopar~nobra {-> expr}
+ = [expr]:expr_bitand~nopar~nobra {-> expr.expr}
+ | {:caret} expr_bitxor~nopar~nobra caret :no [expr2]:expr_bitand~nopar~nobra
+ ;
+
+expr_bitand~nopar~nobra {-> expr}
+ = [expr]:expr_shift~nopar~nobra {-> expr.expr}
+ | {:amp} expr_bitand~nopar~nobra amp :no [expr2]:expr_shift~nopar~nobra
+ ;
+
+expr_shift~nopar~nobra {-> expr}
+ = [expr]:expr_add~nopar~nobra {-> expr.expr}
+ | {:ll} expr_shift~nopar~nobra ll :no [expr2]:expr_add~nopar~nobra
+ | {:gg} expr_shift~nopar~nobra gg :no [expr2]:expr_add~nopar~nobra
;
expr_add~nopar~nobra {-> expr}
= expr_mul~nopar~nobra {-> expr_mul~nopar~nobra.expr}
- | {:plus} expr_add~nopar~nobra :plus :no [expr2]:expr_mul~nopar~nobra
- | {:minus} expr_add~nopar~nobra :minus :no [expr2]:expr_mul~nopar~nobra
+ | {:plus} expr_add~nopar~nobra plus :no [expr2]:expr_mul~nopar~nobra
+ | {:minus} expr_add~nopar~nobra minus :no [expr2]:expr_mul~nopar~nobra
;
expr_mul~nopar~nobra {-> expr}
= expr_pow~nopar~nobra {-> expr_pow~nopar~nobra.expr}
- | {:star} expr_mul~nopar~nobra :star :no [expr2]:expr_pow~nopar~nobra
- | {:slash} expr_mul~nopar~nobra :slash :no [expr2]:expr_pow~nopar~nobra
- | {:percent} expr_mul~nopar~nobra :percent :no [expr2]:expr_pow~nopar~nobra
+ | {:star} expr_mul~nopar~nobra star :no [expr2]:expr_pow~nopar~nobra
+ | {:slash} expr_mul~nopar~nobra slash :no [expr2]:expr_pow~nopar~nobra
+ | {:percent} expr_mul~nopar~nobra percent :no [expr2]:expr_pow~nopar~nobra
;
expr_pow~nopar~nobra {-> expr}
= expr_minus~nopar~nobra {-> expr_minus~nopar~nobra.expr}
- | {:starstar} expr_minus~nopar~nobra :starstar :no [expr2]:expr_pow~nopar~nobra
+ | {:starstar} expr_minus~nopar~nobra starstar :no [expr2]:expr_pow~nopar~nobra
;
expr_minus~nopar~nobra {-> expr}
= expr_new~nopar~nobra {-> expr_new~nopar~nobra.expr}
| {:uminus} minus expr_minus~nobra
+ | {:uplus} plus expr_minus~nobra
+ | {:utilde} tilde expr_minus~nobra
| {:once} kwonce :no expr_minus~nobra
;
| {annot} doc? kwredef? visibility? atid opar? [args]:expr* cpar? annotations?
;
-methid = {id} id | {plus} plus | {minus} minus | {star} star | {starstar} starstar | {slash} slash | {percent} percent | {eq} eq | {ne} ne | {le} le | {ge} ge | {lt} lt | {gt} gt | {ll} ll | {gg} gg | {bra} obra cbra | {starship} starship | {assign} id assign | {braassign} obra cbra assign;
+methid
+ = {id} id
+ | {plus} [op]:plus
+ | {minus} [op]:minus
+ | {star} [op]:star
+ | {starstar} [op]:starstar
+ | {slash} [op]:slash
+ | {percent} [op]:percent
+ | {eq} [op]:eq
+ | {ne} [op]:ne
+ | {le} [op]:le
+ | {ge} [op]:ge
+ | {lt} [op]:lt
+ | {gt} [op]:gt
+ | {ll} [op]:ll
+ | {gg} [op]:gg
+ | {starship} [op]:starship
+ | {pipe} [op]:pipe
+ | {caret} [op]:caret
+ | {amp} [op]:amp
+ | {tilde} [op]:tilde
+ | {bra} obra cbra
+ | {assign} id assign
+ | {braassign} obra cbra assign
+ ;
signature = opar? [params]:param* cpar? type?;
label = kwlabel id?;
expr = {block} expr* kwend?
- | {vardecl} kwvar id type? assign? expr? annotations?
+ | {vardecl} kwvar? id type? assign? expr? annotations?
| {return} kwreturn? expr?
| {break} kwbreak label?
| {abort} kwabort
| {while} kwwhile expr kwdo [block]:expr? label?
| {loop} kwloop [block]:expr? label?
| {for} kwfor [ids]:id* expr kwdo [block]:expr? label?
+ | {with} kwwith expr kwdo [block]:expr? label?
| {assert} kwassert id? expr [else]:expr?
| {once} kwonce expr
| {send} expr
| {binop} expr [expr2]:expr
- | {or} expr [expr2]:expr
- | {and} expr [expr2]:expr
- | {or_else} expr [expr2]:expr
- | {implies} expr [expr2]:expr
- | {not} kwnot expr
- | {eq} expr [expr2]:expr
- | {ne} expr [expr2]:expr
- | {lt} expr [expr2]:expr
- | {le} expr [expr2]:expr
- | {ll} expr [expr2]:expr
- | {gt} expr [expr2]:expr
- | {ge} expr [expr2]:expr
- | {gg} expr [expr2]:expr
- | {isa} expr type
- | {plus} expr [expr2]:expr
- | {minus} expr [expr2]:expr
- | {starship} expr [expr2]:expr
- | {star} expr [expr2]:expr
- | {starstar} expr [expr2]:expr
- | {slash} expr [expr2]:expr
- | {percent} expr [expr2]:expr
- | {uminus} minus expr
+ | {or} expr [op]:kwor [expr2]:expr
+ | {and} expr [op]:kwand [expr2]:expr
+ | {or_else} expr [op]:kwor kwelse [expr2]:expr
+ | {implies} expr [op]:kwimplies [expr2]:expr
+ | {not} kwnot expr
+ | {eq} expr [op]:eq [expr2]:expr
+ | {ne} expr [op]:ne [expr2]:expr
+ | {lt} expr [op]:lt [expr2]:expr
+ | {le} expr [op]:le [expr2]:expr
+ | {ll} expr [op]:ll [expr2]:expr
+ | {gt} expr [op]:gt [expr2]:expr
+ | {ge} expr [op]:ge [expr2]:expr
+ | {gg} expr [op]:gg [expr2]:expr
+ | {isa} expr kwisa type
+ | {plus} expr [op]:plus [expr2]:expr
+ | {minus} expr [op]:minus [expr2]:expr
+ | {starship} expr [op]:starship [expr2]:expr
+ | {star} expr [op]:star [expr2]:expr
+ | {starstar} expr [op]:starstar [expr2]:expr
+ | {slash} expr [op]:slash [expr2]:expr
+ | {percent} expr [op]:percent [expr2]:expr
+ | {pipe} expr [op]:pipe [expr2]:expr
+ | {caret} expr [op]:caret [expr2]:expr
+ | {amp} expr [op]:amp [expr2]:expr
+ | {uminus} [op]:minus expr
+ | {uplus} [op]:plus expr
+ | {utilde} [op]:tilde expr
| {new} kwnew type id? [args]:exprs
| {attr} expr [id]:attrid
| {attr_assign} expr [id]:attrid assign [value]:expr
| {bra} obra [exprs]:expr* cbra
;
assign_op
- = {plus} pluseq
- | {minus} minuseq
+ = {plus} [op]:pluseq
+ | {minus}[op]:minuseq
+ | {star} [op]:stareq
+ | {slash} [op]:slasheq
+ | {percent} [op]:percenteq
+ | {starstar} [op]:starstareq
+ | {pipe} [op]:pipeeq
+ | {caret} [op]:careteq
+ | {amp} [op]:ampeq
+ | {ll} [op]:lleq
+ | {gg} [op]:ggeq
;
module_name = quad? [path]:id* id;
--- /dev/null
+/* This file is part of NIT ( http://www.nitlanguage.org ).
+ *
+ * This file is free software, which comes along with NIT. This software is
+ * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. You can modify it is you want, provided this header
+ * is kept unaltered, and a notification of the changes is added.
+ * You are allowed to redistribute it and sell it, alone or is a part of
+ * another product.
+ */
+
+package org.nitlanguage.gen;
+
+import java.io.*;
+import java.nio.file.*;
+
+import org.nitlanguage.gen.lexer.*;
+import org.nitlanguage.gen.parser.*;
+import org.nitlanguage.gen.analysis.*;
+import org.nitlanguage.gen.node.*;
+
+public class TestParser extends DepthFirstAdapter {
+ public static void main(String[] args) throws Exception {
+ if (args.length == 0) {
+ BufferedReader ir = new BufferedReader(new InputStreamReader(System.in));
+ work(ir);
+ } else {
+ for(int i=0; i<args.length; i++) {
+ //System.out.println(args[i]);
+
+ //Here we use "ISO-8859-1" because we want to opaquely treat Bytes as characters.
+ //Unfortunately "US-ASCII" does not seems to do the job for values>127.
+ BufferedReader ir = new BufferedReader(new InputStreamReader(new FileInputStream(args[i]), "ISO-8859-1"));
+
+ work(ir);
+ }
+ }
+ }
+
+ public static void work(BufferedReader ir) {
+ TestParser testParser = new TestParser();
+ try {
+ PushbackReader r = new PushbackReader(ir, 1024);
+ Parser parser = new Parser(new Lexer(r));
+ Node syntaxTree = parser.parse();
+ syntaxTree.apply(testParser);
+ } catch (LexerException e) {
+ System.out.println(e.getMessage() + ".");
+ } catch (ParserException e) {
+ System.out.println(e.getMessage() + ".");
+ } catch (IOException e) {
+ System.out.println(e.getMessage() + ".");
+ System.exit(1);
+ }
+ }
+}
new ReduceAction100(19),
new ReduceAction101(19),
new ReduceAction102(19),
- new ReduceAction103(20),
- new ReduceAction104(20),
- new ReduceAction105(20),
- new ReduceAction106(20),
- new ReduceAction107(21),
- new ReduceAction108(21),
+ new ReduceAction103(19),
+ new ReduceAction104(19),
+ new ReduceAction105(19),
+ new ReduceAction106(19),
+ new ReduceAction107(20),
+ new ReduceAction108(20),
+ new ReduceAction109(20),
+ new ReduceAction110(20),
+ new ReduceAction111(21),
+ new ReduceAction112(21),
new ReduceAction37(21),
- new ReduceAction110(22),
- new ReduceAction111(23),
- new ReduceAction112(23),
- new ReduceAction113(23),
- new ReduceAction114(23),
+ new ReduceAction114(22),
new ReduceAction115(23),
- new ReduceAction116(24),
- new ReduceAction117(24),
+ new ReduceAction116(23),
+ new ReduceAction117(23),
+ new ReduceAction118(23),
+ new ReduceAction119(23),
+ new ReduceAction120(24),
+ new ReduceAction121(24),
new ReduceAction22(24),
- new ReduceAction119(25),
- new ReduceAction120(26),
- new ReduceAction120(26),
- new ReduceAction122(26),
- new ReduceAction123(27),
- new ReduceAction124(27),
- new ReduceAction125(27),
- new ReduceAction126(28),
- new ReduceAction127(28),
- new ReduceAction128(28),
- new ReduceAction129(28),
+ new ReduceAction123(25),
+ new ReduceAction124(26),
+ new ReduceAction124(26),
+ new ReduceAction126(26),
+ new ReduceAction127(27),
+ new ReduceAction128(27),
+ new ReduceAction129(27),
new ReduceAction130(28),
new ReduceAction131(28),
+ new ReduceAction132(28),
+ new ReduceAction133(28),
+ new ReduceAction134(28),
+ new ReduceAction135(28),
new ReduceAction22(29),
- new ReduceAction133(29),
- new ReduceAction134(30),
- new ReduceAction135(31),
- new ReduceAction136(31),
- new ReduceAction137(32),
+ new ReduceAction137(29),
+ new ReduceAction138(30),
+ new ReduceAction139(31),
+ new ReduceAction140(31),
+ new ReduceAction141(32),
new ReduceAction22(32),
- new ReduceAction139(33),
- new ReduceAction140(34),
- new ReduceAction141(34),
- new ReduceAction142(34),
- new ReduceAction143(34),
- new ReduceAction144(35),
- new ReduceAction145(35),
- new ReduceAction146(36),
- new ReduceAction146(37),
- new ReduceAction146(38),
+ new ReduceAction143(33),
+ new ReduceAction144(34),
+ new ReduceAction145(34),
+ new ReduceAction146(34),
+ new ReduceAction147(34),
+ new ReduceAction148(35),
+ new ReduceAction149(35),
+ new ReduceAction150(36),
+ new ReduceAction150(37),
+ new ReduceAction150(38),
new ReduceAction22(38),
- new ReduceAction150(39),
- new ReduceAction151(39),
- new ReduceAction152(39),
- new ReduceAction153(39),
- new ReduceAction154(40),
- new ReduceAction155(40),
- new ReduceAction156(41),
- new ReduceAction157(41),
- new ReduceAction158(42),
- new ReduceAction159(42),
- new ReduceAction150(43),
- new ReduceAction153(44),
- new ReduceAction153(44),
- new ReduceAction163(44),
- new ReduceAction164(44),
- new ReduceAction165(44),
- new ReduceAction166(44),
+ new ReduceAction154(39),
+ new ReduceAction155(39),
+ new ReduceAction156(39),
+ new ReduceAction157(39),
+ new ReduceAction158(40),
+ new ReduceAction159(40),
+ new ReduceAction160(41),
+ new ReduceAction161(41),
+ new ReduceAction162(42),
+ new ReduceAction163(42),
+ new ReduceAction154(43),
+ new ReduceAction157(44),
+ new ReduceAction157(44),
new ReduceAction167(44),
new ReduceAction168(44),
new ReduceAction169(44),
- new ReduceAction153(44),
- new ReduceAction153(44),
- new ReduceAction153(44),
- new ReduceAction153(44),
- new ReduceAction153(44),
- new ReduceAction153(44),
- new ReduceAction176(44),
- new ReduceAction177(44),
- new ReduceAction178(44),
- new ReduceAction177(44),
- new ReduceAction180(44),
+ new ReduceAction170(44),
+ new ReduceAction171(44),
+ new ReduceAction172(44),
+ new ReduceAction173(44),
+ new ReduceAction157(44),
+ new ReduceAction157(44),
+ new ReduceAction157(44),
+ new ReduceAction157(44),
+ new ReduceAction157(44),
+ new ReduceAction157(44),
+ new ReduceAction157(44),
new ReduceAction181(44),
new ReduceAction182(44),
- new ReduceAction181(44),
- new ReduceAction184(44),
+ new ReduceAction183(44),
+ new ReduceAction182(44),
new ReduceAction185(44),
new ReduceAction186(44),
new ReduceAction187(44),
- new ReduceAction188(44),
- new ReduceAction187(44),
+ new ReduceAction186(44),
+ new ReduceAction189(44),
new ReduceAction190(44),
new ReduceAction191(44),
- new ReduceAction190(44),
+ new ReduceAction192(44),
new ReduceAction193(44),
- new ReduceAction194(45),
- new ReduceAction195(45),
- new ReduceAction196(46),
- new ReduceAction197(46),
- new ReduceAction198(46),
- new ReduceAction199(46),
- new ReduceAction200(47),
- new ReduceAction201(47),
- new ReduceAction202(47),
- new ReduceAction203(47),
- new ReduceAction204(47),
+ new ReduceAction192(44),
+ new ReduceAction195(44),
+ new ReduceAction196(44),
+ new ReduceAction195(44),
+ new ReduceAction198(44),
+ new ReduceAction199(45),
+ new ReduceAction200(45),
+ new ReduceAction201(46),
+ new ReduceAction202(46),
+ new ReduceAction203(46),
+ new ReduceAction204(46),
new ReduceAction205(47),
new ReduceAction206(47),
new ReduceAction207(47),
- new ReduceAction204(47),
- new ReduceAction205(47),
+ new ReduceAction208(47),
+ new ReduceAction209(47),
new ReduceAction210(47),
new ReduceAction211(47),
new ReduceAction212(47),
- new ReduceAction213(47),
- new ReduceAction214(47),
+ new ReduceAction209(47),
+ new ReduceAction210(47),
new ReduceAction215(47),
- new ReduceAction212(47),
- new ReduceAction213(47),
+ new ReduceAction216(47),
+ new ReduceAction217(47),
new ReduceAction218(47),
new ReduceAction219(47),
new ReduceAction220(47),
- new ReduceAction221(47),
- new ReduceAction222(47),
+ new ReduceAction217(47),
+ new ReduceAction218(47),
new ReduceAction223(47),
new ReduceAction224(47),
new ReduceAction225(47),
new ReduceAction226(47),
- new ReduceAction223(47),
- new ReduceAction224(47),
+ new ReduceAction227(47),
+ new ReduceAction228(47),
new ReduceAction229(47),
new ReduceAction230(47),
new ReduceAction231(47),
- new ReduceAction232(47),
- new ReduceAction233(47),
+ new ReduceAction228(47),
+ new ReduceAction229(47),
new ReduceAction234(47),
- new ReduceAction231(47),
- new ReduceAction232(47),
+ new ReduceAction235(47),
+ new ReduceAction236(47),
+ new ReduceAction237(47),
+ new ReduceAction238(47),
+ new ReduceAction239(47),
+ new ReduceAction236(47),
new ReduceAction237(47),
- new ReduceAction238(48),
- new ReduceAction239(48),
- new ReduceAction240(49),
- new ReduceAction241(49),
- new ReduceAction242(50),
- new ReduceAction243(50),
- new ReduceAction244(50),
- new ReduceAction245(50),
- new ReduceAction246(50),
- new ReduceAction150(51),
- new ReduceAction152(51),
- new ReduceAction249(52),
- new ReduceAction250(52),
- new ReduceAction251(53),
- new ReduceAction252(53),
- new ReduceAction253(54),
- new ReduceAction254(54),
- new ReduceAction255(55),
- new ReduceAction256(55),
- new ReduceAction257(55),
- new ReduceAction258(55),
- new ReduceAction259(56),
- new ReduceAction153(57),
- new ReduceAction261(57),
- new ReduceAction153(58),
- new ReduceAction263(58),
- new ReduceAction264(58),
- new ReduceAction265(58),
- new ReduceAction266(58),
- new ReduceAction153(59),
- new ReduceAction268(59),
- new ReduceAction153(60),
- new ReduceAction270(60),
- new ReduceAction271(60),
- new ReduceAction272(60),
- new ReduceAction273(60),
- new ReduceAction274(60),
- new ReduceAction275(60),
- new ReduceAction276(60),
- new ReduceAction277(60),
- new ReduceAction278(60),
- new ReduceAction279(60),
- new ReduceAction153(61),
- new ReduceAction281(61),
- new ReduceAction282(61),
- new ReduceAction153(62),
- new ReduceAction284(62),
- new ReduceAction285(62),
- new ReduceAction286(62),
- new ReduceAction153(63),
- new ReduceAction288(63),
- new ReduceAction153(64),
- new ReduceAction290(64),
- new ReduceAction291(64),
- new ReduceAction153(65),
- new ReduceAction293(65),
- new ReduceAction294(65),
- new ReduceAction295(65),
- new ReduceAction296(65),
- new ReduceAction153(66),
- new ReduceAction298(66),
- new ReduceAction299(66),
- new ReduceAction176(66),
- new ReduceAction301(66),
- new ReduceAction177(66),
- new ReduceAction303(66),
- new ReduceAction178(66),
+ new ReduceAction242(47),
+ new ReduceAction243(48),
+ new ReduceAction244(48),
+ new ReduceAction245(48),
+ new ReduceAction246(48),
+ new ReduceAction247(48),
+ new ReduceAction248(48),
+ new ReduceAction249(48),
+ new ReduceAction250(48),
+ new ReduceAction251(48),
+ new ReduceAction252(48),
+ new ReduceAction253(48),
+ new ReduceAction254(49),
+ new ReduceAction255(49),
+ new ReduceAction256(50),
+ new ReduceAction257(50),
+ new ReduceAction258(50),
+ new ReduceAction259(50),
+ new ReduceAction260(50),
+ new ReduceAction154(51),
+ new ReduceAction156(51),
+ new ReduceAction263(52),
+ new ReduceAction264(52),
+ new ReduceAction265(53),
+ new ReduceAction266(53),
+ new ReduceAction267(54),
+ new ReduceAction268(54),
+ new ReduceAction269(55),
+ new ReduceAction270(55),
+ new ReduceAction271(56),
+ new ReduceAction272(56),
+ new ReduceAction157(56),
+ new ReduceAction274(57),
+ new ReduceAction275(57),
+ new ReduceAction276(57),
+ new ReduceAction277(57),
+ new ReduceAction278(58),
+ new ReduceAction157(59),
+ new ReduceAction280(59),
+ new ReduceAction157(60),
+ new ReduceAction282(60),
+ new ReduceAction283(60),
+ new ReduceAction284(60),
+ new ReduceAction285(60),
+ new ReduceAction157(61),
+ new ReduceAction287(61),
+ new ReduceAction157(62),
+ new ReduceAction289(62),
+ new ReduceAction290(62),
+ new ReduceAction291(62),
+ new ReduceAction292(62),
+ new ReduceAction293(62),
+ new ReduceAction294(62),
+ new ReduceAction295(62),
+ new ReduceAction296(62),
+ new ReduceAction157(63),
+ new ReduceAction298(63),
+ new ReduceAction157(64),
+ new ReduceAction300(64),
+ new ReduceAction157(65),
+ new ReduceAction302(65),
+ new ReduceAction157(66),
+ new ReduceAction304(66),
new ReduceAction305(66),
- new ReduceAction177(66),
- new ReduceAction303(66),
- new ReduceAction180(66),
- new ReduceAction309(66),
- new ReduceAction181(66),
- new ReduceAction311(66),
- new ReduceAction182(66),
- new ReduceAction313(66),
- new ReduceAction181(66),
- new ReduceAction311(66),
- new ReduceAction184(66),
- new ReduceAction317(66),
- new ReduceAction185(66),
- new ReduceAction319(66),
- new ReduceAction186(66),
- new ReduceAction321(66),
- new ReduceAction322(66),
- new ReduceAction323(66),
- new ReduceAction324(66),
- new ReduceAction325(66),
- new ReduceAction326(66),
- new ReduceAction327(66),
- new ReduceAction328(66),
- new ReduceAction325(66),
- new ReduceAction326(66),
- new ReduceAction331(66),
- new ReduceAction332(66),
- new ReduceAction333(66),
- new ReduceAction334(66),
- new ReduceAction335(67),
- new ReduceAction336(67),
- new ReduceAction337(67),
- new ReduceAction338(67),
- new ReduceAction339(67),
- new ReduceAction340(67),
- new ReduceAction341(67),
- new ReduceAction342(67),
- new ReduceAction343(67),
- new ReduceAction153(67),
- new ReduceAction153(67),
- new ReduceAction346(67),
- new ReduceAction347(67),
- new ReduceAction348(67),
- new ReduceAction349(68),
- new ReduceAction349(68),
- new ReduceAction351(69),
- new ReduceAction352(70),
- new ReduceAction353(71),
- new ReduceAction354(71),
+ new ReduceAction157(67),
+ new ReduceAction307(67),
+ new ReduceAction308(67),
+ new ReduceAction157(68),
+ new ReduceAction310(68),
+ new ReduceAction311(68),
+ new ReduceAction312(68),
+ new ReduceAction157(69),
+ new ReduceAction314(69),
+ new ReduceAction157(70),
+ new ReduceAction316(70),
+ new ReduceAction317(70),
+ new ReduceAction318(70),
+ new ReduceAction319(70),
+ new ReduceAction157(71),
+ new ReduceAction321(71),
+ new ReduceAction322(71),
+ new ReduceAction323(71),
+ new ReduceAction324(71),
+ new ReduceAction157(72),
+ new ReduceAction326(72),
+ new ReduceAction327(72),
+ new ReduceAction181(72),
+ new ReduceAction329(72),
+ new ReduceAction182(72),
+ new ReduceAction331(72),
+ new ReduceAction183(72),
+ new ReduceAction333(72),
+ new ReduceAction182(72),
+ new ReduceAction331(72),
+ new ReduceAction185(72),
+ new ReduceAction337(72),
+ new ReduceAction186(72),
+ new ReduceAction339(72),
+ new ReduceAction187(72),
+ new ReduceAction341(72),
+ new ReduceAction186(72),
+ new ReduceAction339(72),
+ new ReduceAction189(72),
+ new ReduceAction345(72),
+ new ReduceAction190(72),
+ new ReduceAction347(72),
+ new ReduceAction191(72),
+ new ReduceAction349(72),
+ new ReduceAction350(72),
+ new ReduceAction351(72),
new ReduceAction352(72),
- new ReduceAction356(73),
- new ReduceAction254(73),
- new ReduceAction358(73),
- new ReduceAction359(74),
- new ReduceAction360(74),
- new ReduceAction361(75),
- new ReduceAction362(75),
- new ReduceAction363(76),
- new ReduceAction361(77),
- new ReduceAction362(77),
- new ReduceAction366(78),
- new ReduceAction367(79),
- new ReduceAction368(80),
- new ReduceAction369(80),
- new ReduceAction370(81),
- new ReduceAction22(81),
- new ReduceAction372(82),
- new ReduceAction373(82),
- new ReduceAction374(83),
- new ReduceAction375(84),
- new ReduceAction376(84),
- new ReduceAction372(85),
- new ReduceAction373(85),
- new ReduceAction379(85),
- new ReduceAction153(86),
- new ReduceAction381(87),
- new ReduceAction374(88),
- new ReduceAction383(89),
- new ReduceAction384(89),
- new ReduceAction385(89),
- new ReduceAction386(89),
- new ReduceAction387(89),
- new ReduceAction388(90),
- new ReduceAction389(90),
- new ReduceAction390(90),
- new ReduceAction391(90),
- new ReduceAction392(90),
- new ReduceAction353(91),
- new ReduceAction354(91),
- new ReduceAction352(92),
- new ReduceAction396(93),
- new ReduceAction153(93),
- new ReduceAction153(93),
- new ReduceAction399(93),
- new ReduceAction400(93),
- new ReduceAction401(93),
+ new ReduceAction353(72),
+ new ReduceAction354(72),
+ new ReduceAction355(72),
+ new ReduceAction356(72),
+ new ReduceAction353(72),
+ new ReduceAction354(72),
+ new ReduceAction359(72),
+ new ReduceAction360(72),
+ new ReduceAction361(72),
+ new ReduceAction362(72),
+ new ReduceAction363(73),
+ new ReduceAction364(73),
+ new ReduceAction365(73),
+ new ReduceAction366(73),
+ new ReduceAction367(73),
+ new ReduceAction368(73),
+ new ReduceAction369(73),
+ new ReduceAction370(73),
+ new ReduceAction371(73),
+ new ReduceAction157(73),
+ new ReduceAction157(73),
+ new ReduceAction374(73),
+ new ReduceAction375(73),
+ new ReduceAction376(73),
+ new ReduceAction377(74),
+ new ReduceAction377(74),
+ new ReduceAction379(75),
+ new ReduceAction380(76),
+ new ReduceAction381(77),
+ new ReduceAction382(77),
+ new ReduceAction380(78),
+ new ReduceAction384(79),
+ new ReduceAction268(79),
+ new ReduceAction386(79),
+ new ReduceAction387(80),
+ new ReduceAction388(80),
+ new ReduceAction389(81),
+ new ReduceAction390(81),
+ new ReduceAction391(82),
+ new ReduceAction389(83),
+ new ReduceAction390(83),
+ new ReduceAction394(84),
+ new ReduceAction395(85),
+ new ReduceAction396(86),
+ new ReduceAction397(86),
+ new ReduceAction398(87),
+ new ReduceAction22(87),
+ new ReduceAction400(88),
+ new ReduceAction401(88),
+ new ReduceAction402(89),
+ new ReduceAction403(90),
+ new ReduceAction404(90),
+ new ReduceAction400(91),
+ new ReduceAction401(91),
+ new ReduceAction407(91),
+ new ReduceAction157(92),
+ new ReduceAction409(93),
new ReduceAction402(94),
- new ReduceAction403(94),
- new ReduceAction404(94),
- new ReduceAction405(95),
- new ReduceAction406(95),
- new ReduceAction405(96),
- new ReduceAction408(96),
- new ReduceAction406(96),
- new ReduceAction410(96),
- new ReduceAction411(97),
- new ReduceAction412(98),
- new ReduceAction362(99),
- new ReduceAction414(99),
- new ReduceAction415(100),
- new ReduceAction416(101),
- new ReduceAction417(101),
- new ReduceAction418(102),
- new ReduceAction419(102),
- new ReduceAction420(103),
- new ReduceAction421(103),
- new ReduceAction422(103),
- new ReduceAction423(103),
- new ReduceAction424(104),
- new ReduceAction425(104),
- new ReduceAction426(104),
- new ReduceAction22(104),
- new ReduceAction428(105),
- new ReduceAction429(105),
- new ReduceAction430(105),
- new ReduceAction429(105),
- new ReduceAction432(106),
- new ReduceAction433(106),
- new ReduceAction434(106),
- new ReduceAction433(106),
- new ReduceAction436(107),
- new ReduceAction437(108),
- new ReduceAction22(109),
- new ReduceAction439(109),
- new ReduceAction440(110),
- new ReduceAction440(110),
- new ReduceAction442(111),
- new ReduceAction443(111),
- new ReduceAction23(111),
- new ReduceAction22(112),
- new ReduceAction446(112),
- new ReduceAction447(113),
- new ReduceAction448(113),
- new ReduceAction440(113),
- new ReduceAction46(114),
- new ReduceAction47(114),
- new ReduceAction48(114),
- new ReduceAction55(114),
- new ReduceAction56(114),
- new ReduceAction74(115),
- new ReduceAction75(115),
- new ReduceAction84(116),
- new ReduceAction85(116),
- new ReduceAction86(116),
- new ReduceAction87(116),
- new ReduceAction88(116),
- new ReduceAction89(116),
- new ReduceAction90(116),
- new ReduceAction91(116),
- new ReduceAction92(116),
- new ReduceAction93(116),
- new ReduceAction94(116),
- new ReduceAction95(116),
- new ReduceAction96(116),
- new ReduceAction97(116),
- new ReduceAction98(116),
- new ReduceAction99(116),
- new ReduceAction100(116),
- new ReduceAction101(116),
- new ReduceAction432(117),
- new ReduceAction433(117),
- new ReduceAction434(117),
- new ReduceAction433(117),
- new ReduceAction140(118),
- new ReduceAction141(118),
- new ReduceAction153(119),
- new ReduceAction261(119),
- new ReduceAction153(120),
- new ReduceAction263(120),
- new ReduceAction264(120),
- new ReduceAction265(120),
- new ReduceAction266(120),
- new ReduceAction153(121),
- new ReduceAction268(121),
- new ReduceAction153(122),
- new ReduceAction270(122),
- new ReduceAction271(122),
- new ReduceAction272(122),
- new ReduceAction273(122),
- new ReduceAction274(122),
- new ReduceAction275(122),
- new ReduceAction276(122),
- new ReduceAction277(122),
- new ReduceAction278(122),
- new ReduceAction279(122),
- new ReduceAction153(123),
- new ReduceAction281(123),
- new ReduceAction282(123),
- new ReduceAction153(124),
- new ReduceAction284(124),
- new ReduceAction285(124),
- new ReduceAction286(124),
- new ReduceAction153(125),
- new ReduceAction288(125),
- new ReduceAction153(126),
- new ReduceAction290(126),
- new ReduceAction291(126),
- new ReduceAction153(127),
- new ReduceAction293(127),
- new ReduceAction294(127),
- new ReduceAction295(127),
- new ReduceAction296(127),
- new ReduceAction153(128),
- new ReduceAction298(128),
- new ReduceAction299(128),
- new ReduceAction176(128),
- new ReduceAction180(128),
- new ReduceAction301(128),
- new ReduceAction309(128),
- new ReduceAction177(128),
- new ReduceAction181(128),
- new ReduceAction303(128),
- new ReduceAction311(128),
- new ReduceAction178(128),
- new ReduceAction182(128),
- new ReduceAction305(128),
- new ReduceAction313(128),
- new ReduceAction177(128),
- new ReduceAction181(128),
- new ReduceAction303(128),
- new ReduceAction311(128),
- new ReduceAction184(128),
- new ReduceAction317(128),
- new ReduceAction185(128),
- new ReduceAction186(128),
- new ReduceAction319(128),
- new ReduceAction321(128),
- new ReduceAction323(128),
- new ReduceAction324(128),
- new ReduceAction325(128),
- new ReduceAction326(128),
- new ReduceAction327(128),
- new ReduceAction328(128),
- new ReduceAction325(128),
- new ReduceAction326(128),
- new ReduceAction331(128),
- new ReduceAction332(128),
- new ReduceAction333(128),
- new ReduceAction334(128),
- new ReduceAction335(129),
- new ReduceAction336(129),
- new ReduceAction337(129),
- new ReduceAction338(129),
- new ReduceAction339(129),
- new ReduceAction340(129),
- new ReduceAction341(129),
- new ReduceAction342(129),
- new ReduceAction343(129),
- new ReduceAction153(129),
- new ReduceAction153(129),
- new ReduceAction140(130),
- new ReduceAction141(130),
- new ReduceAction142(130),
- new ReduceAction143(130),
- new ReduceAction153(131),
- new ReduceAction153(131),
- new ReduceAction163(131),
- new ReduceAction164(131),
- new ReduceAction165(131),
- new ReduceAction166(131),
- new ReduceAction167(131),
- new ReduceAction168(131),
- new ReduceAction169(131),
- new ReduceAction153(131),
- new ReduceAction153(131),
- new ReduceAction153(131),
- new ReduceAction153(131),
- new ReduceAction153(131),
- new ReduceAction153(131),
- new ReduceAction176(131),
- new ReduceAction177(131),
- new ReduceAction178(131),
- new ReduceAction177(131),
- new ReduceAction180(131),
- new ReduceAction181(131),
- new ReduceAction182(131),
- new ReduceAction181(131),
- new ReduceAction184(131),
- new ReduceAction185(131),
- new ReduceAction186(131),
- new ReduceAction187(131),
- new ReduceAction188(131),
- new ReduceAction187(131),
- new ReduceAction190(131),
- new ReduceAction191(131),
- new ReduceAction190(131),
- new ReduceAction193(131),
- new ReduceAction200(132),
- new ReduceAction201(132),
- new ReduceAction202(132),
- new ReduceAction203(132),
- new ReduceAction204(132),
- new ReduceAction205(132),
- new ReduceAction206(132),
- new ReduceAction207(132),
- new ReduceAction204(132),
- new ReduceAction205(132),
- new ReduceAction210(132),
- new ReduceAction211(132),
- new ReduceAction212(132),
- new ReduceAction213(132),
- new ReduceAction214(132),
- new ReduceAction215(132),
- new ReduceAction212(132),
- new ReduceAction213(132),
- new ReduceAction218(132),
- new ReduceAction219(132),
- new ReduceAction220(132),
- new ReduceAction221(132),
- new ReduceAction222(132),
- new ReduceAction223(132),
- new ReduceAction224(132),
- new ReduceAction225(132),
- new ReduceAction226(132),
- new ReduceAction223(132),
- new ReduceAction224(132),
- new ReduceAction229(132),
- new ReduceAction230(132),
- new ReduceAction231(132),
- new ReduceAction232(132),
- new ReduceAction233(132),
- new ReduceAction234(132),
- new ReduceAction231(132),
- new ReduceAction232(132),
- new ReduceAction237(132),
- new ReduceAction153(133),
- new ReduceAction261(133),
- new ReduceAction153(134),
- new ReduceAction263(134),
- new ReduceAction264(134),
- new ReduceAction265(134),
- new ReduceAction266(134),
- new ReduceAction153(135),
- new ReduceAction268(135),
- new ReduceAction153(136),
- new ReduceAction270(136),
- new ReduceAction271(136),
- new ReduceAction272(136),
- new ReduceAction273(136),
- new ReduceAction274(136),
- new ReduceAction275(136),
- new ReduceAction276(136),
- new ReduceAction277(136),
- new ReduceAction278(136),
- new ReduceAction279(136),
- new ReduceAction153(137),
- new ReduceAction281(137),
- new ReduceAction282(137),
- new ReduceAction153(138),
- new ReduceAction284(138),
- new ReduceAction285(138),
- new ReduceAction286(138),
- new ReduceAction153(139),
- new ReduceAction288(139),
- new ReduceAction153(140),
- new ReduceAction290(140),
- new ReduceAction291(140),
- new ReduceAction153(141),
- new ReduceAction293(141),
- new ReduceAction294(141),
- new ReduceAction295(141),
- new ReduceAction296(141),
- new ReduceAction153(142),
- new ReduceAction298(142),
- new ReduceAction299(142),
- new ReduceAction176(142),
- new ReduceAction301(142),
- new ReduceAction177(142),
- new ReduceAction303(142),
- new ReduceAction178(142),
- new ReduceAction305(142),
- new ReduceAction177(142),
- new ReduceAction303(142),
- new ReduceAction180(142),
- new ReduceAction309(142),
- new ReduceAction181(142),
- new ReduceAction311(142),
- new ReduceAction182(142),
- new ReduceAction313(142),
- new ReduceAction181(142),
- new ReduceAction311(142),
- new ReduceAction184(142),
- new ReduceAction317(142),
- new ReduceAction185(142),
- new ReduceAction319(142),
- new ReduceAction186(142),
- new ReduceAction321(142),
- new ReduceAction322(142),
- new ReduceAction323(142),
- new ReduceAction324(142),
- new ReduceAction325(142),
- new ReduceAction326(142),
- new ReduceAction327(142),
- new ReduceAction328(142),
- new ReduceAction325(142),
- new ReduceAction326(142),
- new ReduceAction331(142),
- new ReduceAction332(142),
- new ReduceAction333(142),
- new ReduceAction334(142),
- new ReduceAction335(143),
- new ReduceAction336(143),
- new ReduceAction337(143),
- new ReduceAction338(143),
- new ReduceAction339(143),
- new ReduceAction340(143),
- new ReduceAction341(143),
- new ReduceAction342(143),
- new ReduceAction343(143),
- new ReduceAction153(143),
- new ReduceAction368(144),
- new ReduceAction369(144),
- new ReduceAction370(145),
- new ReduceAction22(145),
- new ReduceAction372(146),
- new ReduceAction372(147),
- new ReduceAction353(148),
- new ReduceAction354(148),
- new ReduceAction396(149),
- new ReduceAction153(149),
- new ReduceAction153(149),
- new ReduceAction399(149),
- new ReduceAction400(149),
- new ReduceAction140(150),
- new ReduceAction141(150),
- new ReduceAction153(151),
- new ReduceAction261(151),
- new ReduceAction153(152),
- new ReduceAction263(152),
- new ReduceAction264(152),
- new ReduceAction265(152),
- new ReduceAction266(152),
- new ReduceAction153(153),
- new ReduceAction268(153),
- new ReduceAction153(154),
- new ReduceAction270(154),
- new ReduceAction271(154),
- new ReduceAction272(154),
- new ReduceAction273(154),
- new ReduceAction274(154),
- new ReduceAction275(154),
- new ReduceAction276(154),
- new ReduceAction277(154),
- new ReduceAction278(154),
- new ReduceAction279(154),
- new ReduceAction153(155),
- new ReduceAction281(155),
- new ReduceAction282(155),
- new ReduceAction153(156),
- new ReduceAction284(156),
- new ReduceAction285(156),
- new ReduceAction286(156),
- new ReduceAction153(157),
- new ReduceAction288(157),
- new ReduceAction153(158),
- new ReduceAction290(158),
- new ReduceAction291(158),
- new ReduceAction153(159),
- new ReduceAction293(159),
- new ReduceAction294(159),
- new ReduceAction776(159),
- new ReduceAction153(160),
- new ReduceAction778(160),
- new ReduceAction779(160),
- new ReduceAction780(160),
- new ReduceAction781(160),
- new ReduceAction782(160),
- new ReduceAction176(160),
- new ReduceAction301(160),
- new ReduceAction781(160),
- new ReduceAction782(160),
- new ReduceAction184(160),
- new ReduceAction317(160),
- new ReduceAction789(160),
- new ReduceAction790(160),
- new ReduceAction323(160),
- new ReduceAction324(160),
- new ReduceAction325(160),
- new ReduceAction326(160),
- new ReduceAction327(160),
- new ReduceAction328(160),
- new ReduceAction325(160),
- new ReduceAction326(160),
- new ReduceAction331(160),
- new ReduceAction332(160),
- new ReduceAction333(160),
- new ReduceAction334(160),
- new ReduceAction335(161),
- new ReduceAction336(161),
- new ReduceAction337(161),
- new ReduceAction338(161),
- new ReduceAction339(161),
- new ReduceAction340(161),
- new ReduceAction341(161),
- new ReduceAction342(161),
- new ReduceAction343(161),
- new ReduceAction153(161),
- new ReduceAction813(162),
- new ReduceAction814(162),
- new ReduceAction150(163),
- new ReduceAction151(163),
- new ReduceAction152(163),
- new ReduceAction153(163),
- new ReduceAction153(164),
- new ReduceAction153(164),
- new ReduceAction163(164),
- new ReduceAction164(164),
- new ReduceAction165(164),
- new ReduceAction166(164),
- new ReduceAction167(164),
- new ReduceAction168(164),
- new ReduceAction169(164),
- new ReduceAction153(164),
- new ReduceAction153(164),
- new ReduceAction153(164),
- new ReduceAction153(164),
- new ReduceAction153(164),
- new ReduceAction153(164),
- new ReduceAction176(164),
- new ReduceAction177(164),
- new ReduceAction178(164),
- new ReduceAction177(164),
- new ReduceAction180(164),
- new ReduceAction181(164),
- new ReduceAction182(164),
- new ReduceAction181(164),
- new ReduceAction184(164),
- new ReduceAction185(164),
- new ReduceAction186(164),
- new ReduceAction187(164),
- new ReduceAction188(164),
- new ReduceAction187(164),
- new ReduceAction190(164),
- new ReduceAction191(164),
- new ReduceAction190(164),
- new ReduceAction193(164),
- new ReduceAction240(165),
- new ReduceAction241(165),
- new ReduceAction242(166),
- new ReduceAction249(167),
- new ReduceAction250(167),
- new ReduceAction251(168),
- new ReduceAction252(168),
- new ReduceAction253(169),
- new ReduceAction254(169),
- new ReduceAction255(170),
- new ReduceAction256(170),
- new ReduceAction153(171),
- new ReduceAction153(171),
- new ReduceAction163(171),
- new ReduceAction164(171),
- new ReduceAction165(171),
- new ReduceAction166(171),
- new ReduceAction167(171),
- new ReduceAction168(171),
- new ReduceAction169(171),
- new ReduceAction153(171),
- new ReduceAction153(171),
- new ReduceAction153(171),
- new ReduceAction153(171),
- new ReduceAction153(171),
- new ReduceAction153(171),
- new ReduceAction176(171),
- new ReduceAction177(171),
- new ReduceAction178(171),
- new ReduceAction177(171),
- new ReduceAction180(171),
- new ReduceAction181(171),
- new ReduceAction182(171),
- new ReduceAction181(171),
- new ReduceAction184(171),
- new ReduceAction185(171),
- new ReduceAction186(171),
- new ReduceAction187(171),
- new ReduceAction188(171),
- new ReduceAction187(171),
- new ReduceAction190(171),
- new ReduceAction191(171),
- new ReduceAction190(171),
- new ReduceAction193(171),
- new ReduceAction150(172),
- new ReduceAction151(172),
- new ReduceAction152(172),
- new ReduceAction150(173),
- new ReduceAction151(173),
- new ReduceAction152(173),
- new ReduceAction153(174),
- new ReduceAction153(174),
- new ReduceAction163(174),
- new ReduceAction164(174),
- new ReduceAction165(174),
- new ReduceAction166(174),
- new ReduceAction167(174),
- new ReduceAction168(174),
- new ReduceAction169(174),
- new ReduceAction153(174),
- new ReduceAction153(174),
- new ReduceAction153(174),
- new ReduceAction153(174),
- new ReduceAction153(174),
- new ReduceAction193(174),
- new ReduceAction153(175),
- new ReduceAction153(175),
- new ReduceAction163(175),
- new ReduceAction164(175),
- new ReduceAction165(175),
- new ReduceAction166(175),
- new ReduceAction167(175),
- new ReduceAction168(175),
- new ReduceAction169(175),
- new ReduceAction153(175),
- new ReduceAction153(175),
- new ReduceAction153(175),
- new ReduceAction153(175),
- new ReduceAction153(175),
- new ReduceAction193(175),
- new ReduceAction153(176),
- new ReduceAction153(176),
- new ReduceAction163(176),
- new ReduceAction164(176),
- new ReduceAction165(176),
- new ReduceAction166(176),
- new ReduceAction167(176),
- new ReduceAction168(176),
- new ReduceAction169(176),
- new ReduceAction153(176),
- new ReduceAction153(176),
- new ReduceAction153(176),
- new ReduceAction153(176),
- new ReduceAction153(176),
- new ReduceAction193(176),
- new ReduceAction153(177),
- new ReduceAction153(177),
- new ReduceAction163(177),
- new ReduceAction164(177),
- new ReduceAction165(177),
- new ReduceAction166(177),
- new ReduceAction167(177),
- new ReduceAction168(177),
- new ReduceAction169(177),
- new ReduceAction153(177),
- new ReduceAction153(177),
- new ReduceAction153(177),
- new ReduceAction153(177),
- new ReduceAction153(177),
- new ReduceAction193(177),
- new ReduceAction402(178),
- new ReduceAction404(178),
- new ReduceAction964(179),
- new ReduceAction965(179),
- new ReduceAction966(180),
- new ReduceAction967(180),
- new ReduceAction968(181),
- new ReduceAction969(181),
- new ReduceAction970(182),
- new ReduceAction971(182),
- new ReduceAction43(183),
- new ReduceAction973(183),
- new ReduceAction974(184),
- new ReduceAction975(184),
- new ReduceAction976(185),
- new ReduceAction977(185),
- new ReduceAction144(186),
- new ReduceAction979(186),
- new ReduceAction353(187),
- new ReduceAction981(187),
- new ReduceAction353(188),
- new ReduceAction981(188),
- new ReduceAction353(189),
- new ReduceAction981(189),
- new ReduceAction417(190),
- new ReduceAction987(190),
- new ReduceAction375(191),
- new ReduceAction989(191),
- new ReduceAction375(192),
- new ReduceAction989(192),
- new ReduceAction353(193),
- new ReduceAction981(193),
- new ReduceAction353(194),
- new ReduceAction981(194),
- new ReduceAction418(195),
- new ReduceAction997(195),
- new ReduceAction998(196),
- new ReduceAction999(196),
- new ReduceAction1000(197),
- new ReduceAction1001(197)
+ new ReduceAction411(95),
+ new ReduceAction412(95),
+ new ReduceAction413(95),
+ new ReduceAction414(95),
+ new ReduceAction415(95),
+ new ReduceAction416(96),
+ new ReduceAction417(96),
+ new ReduceAction418(96),
+ new ReduceAction419(96),
+ new ReduceAction420(96),
+ new ReduceAction381(97),
+ new ReduceAction382(97),
+ new ReduceAction380(98),
+ new ReduceAction424(99),
+ new ReduceAction157(99),
+ new ReduceAction157(99),
+ new ReduceAction427(99),
+ new ReduceAction428(99),
+ new ReduceAction429(99),
+ new ReduceAction430(100),
+ new ReduceAction431(100),
+ new ReduceAction432(100),
+ new ReduceAction433(101),
+ new ReduceAction434(101),
+ new ReduceAction433(102),
+ new ReduceAction436(102),
+ new ReduceAction434(102),
+ new ReduceAction438(102),
+ new ReduceAction439(103),
+ new ReduceAction440(104),
+ new ReduceAction390(105),
+ new ReduceAction442(105),
+ new ReduceAction443(106),
+ new ReduceAction444(107),
+ new ReduceAction445(107),
+ new ReduceAction446(108),
+ new ReduceAction447(108),
+ new ReduceAction448(109),
+ new ReduceAction449(109),
+ new ReduceAction450(109),
+ new ReduceAction451(109),
+ new ReduceAction452(110),
+ new ReduceAction453(110),
+ new ReduceAction454(110),
+ new ReduceAction22(110),
+ new ReduceAction456(111),
+ new ReduceAction457(111),
+ new ReduceAction458(111),
+ new ReduceAction457(111),
+ new ReduceAction460(112),
+ new ReduceAction461(112),
+ new ReduceAction462(112),
+ new ReduceAction461(112),
+ new ReduceAction464(113),
+ new ReduceAction465(114),
+ new ReduceAction22(115),
+ new ReduceAction467(115),
+ new ReduceAction468(116),
+ new ReduceAction468(116),
+ new ReduceAction470(117),
+ new ReduceAction471(117),
+ new ReduceAction23(117),
+ new ReduceAction22(118),
+ new ReduceAction474(118),
+ new ReduceAction475(119),
+ new ReduceAction476(119),
+ new ReduceAction468(119),
+ new ReduceAction46(120),
+ new ReduceAction47(120),
+ new ReduceAction48(120),
+ new ReduceAction55(120),
+ new ReduceAction56(120),
+ new ReduceAction74(121),
+ new ReduceAction75(121),
+ new ReduceAction84(122),
+ new ReduceAction85(122),
+ new ReduceAction86(122),
+ new ReduceAction87(122),
+ new ReduceAction88(122),
+ new ReduceAction89(122),
+ new ReduceAction90(122),
+ new ReduceAction91(122),
+ new ReduceAction92(122),
+ new ReduceAction93(122),
+ new ReduceAction94(122),
+ new ReduceAction95(122),
+ new ReduceAction96(122),
+ new ReduceAction97(122),
+ new ReduceAction98(122),
+ new ReduceAction99(122),
+ new ReduceAction100(122),
+ new ReduceAction101(122),
+ new ReduceAction102(122),
+ new ReduceAction103(122),
+ new ReduceAction104(122),
+ new ReduceAction105(122),
+ new ReduceAction460(123),
+ new ReduceAction461(123),
+ new ReduceAction462(123),
+ new ReduceAction461(123),
+ new ReduceAction144(124),
+ new ReduceAction145(124),
+ new ReduceAction157(125),
+ new ReduceAction280(125),
+ new ReduceAction157(126),
+ new ReduceAction282(126),
+ new ReduceAction283(126),
+ new ReduceAction284(126),
+ new ReduceAction285(126),
+ new ReduceAction157(127),
+ new ReduceAction287(127),
+ new ReduceAction157(128),
+ new ReduceAction289(128),
+ new ReduceAction290(128),
+ new ReduceAction291(128),
+ new ReduceAction292(128),
+ new ReduceAction293(128),
+ new ReduceAction294(128),
+ new ReduceAction295(128),
+ new ReduceAction296(128),
+ new ReduceAction157(129),
+ new ReduceAction298(129),
+ new ReduceAction157(130),
+ new ReduceAction300(130),
+ new ReduceAction157(131),
+ new ReduceAction302(131),
+ new ReduceAction157(132),
+ new ReduceAction304(132),
+ new ReduceAction305(132),
+ new ReduceAction157(133),
+ new ReduceAction307(133),
+ new ReduceAction308(133),
+ new ReduceAction157(134),
+ new ReduceAction310(134),
+ new ReduceAction311(134),
+ new ReduceAction312(134),
+ new ReduceAction157(135),
+ new ReduceAction314(135),
+ new ReduceAction157(136),
+ new ReduceAction316(136),
+ new ReduceAction317(136),
+ new ReduceAction318(136),
+ new ReduceAction319(136),
+ new ReduceAction157(137),
+ new ReduceAction321(137),
+ new ReduceAction322(137),
+ new ReduceAction323(137),
+ new ReduceAction324(137),
+ new ReduceAction157(138),
+ new ReduceAction326(138),
+ new ReduceAction327(138),
+ new ReduceAction181(138),
+ new ReduceAction185(138),
+ new ReduceAction329(138),
+ new ReduceAction337(138),
+ new ReduceAction182(138),
+ new ReduceAction186(138),
+ new ReduceAction331(138),
+ new ReduceAction339(138),
+ new ReduceAction183(138),
+ new ReduceAction187(138),
+ new ReduceAction333(138),
+ new ReduceAction341(138),
+ new ReduceAction182(138),
+ new ReduceAction186(138),
+ new ReduceAction331(138),
+ new ReduceAction339(138),
+ new ReduceAction189(138),
+ new ReduceAction345(138),
+ new ReduceAction190(138),
+ new ReduceAction191(138),
+ new ReduceAction347(138),
+ new ReduceAction349(138),
+ new ReduceAction351(138),
+ new ReduceAction352(138),
+ new ReduceAction353(138),
+ new ReduceAction354(138),
+ new ReduceAction355(138),
+ new ReduceAction356(138),
+ new ReduceAction353(138),
+ new ReduceAction354(138),
+ new ReduceAction359(138),
+ new ReduceAction360(138),
+ new ReduceAction361(138),
+ new ReduceAction362(138),
+ new ReduceAction363(139),
+ new ReduceAction364(139),
+ new ReduceAction365(139),
+ new ReduceAction366(139),
+ new ReduceAction367(139),
+ new ReduceAction368(139),
+ new ReduceAction369(139),
+ new ReduceAction370(139),
+ new ReduceAction371(139),
+ new ReduceAction157(139),
+ new ReduceAction157(139),
+ new ReduceAction144(140),
+ new ReduceAction145(140),
+ new ReduceAction146(140),
+ new ReduceAction147(140),
+ new ReduceAction157(141),
+ new ReduceAction157(141),
+ new ReduceAction167(141),
+ new ReduceAction168(141),
+ new ReduceAction169(141),
+ new ReduceAction170(141),
+ new ReduceAction171(141),
+ new ReduceAction172(141),
+ new ReduceAction173(141),
+ new ReduceAction157(141),
+ new ReduceAction157(141),
+ new ReduceAction157(141),
+ new ReduceAction157(141),
+ new ReduceAction157(141),
+ new ReduceAction157(141),
+ new ReduceAction157(141),
+ new ReduceAction181(141),
+ new ReduceAction182(141),
+ new ReduceAction183(141),
+ new ReduceAction182(141),
+ new ReduceAction185(141),
+ new ReduceAction186(141),
+ new ReduceAction187(141),
+ new ReduceAction186(141),
+ new ReduceAction189(141),
+ new ReduceAction190(141),
+ new ReduceAction191(141),
+ new ReduceAction192(141),
+ new ReduceAction193(141),
+ new ReduceAction192(141),
+ new ReduceAction195(141),
+ new ReduceAction196(141),
+ new ReduceAction195(141),
+ new ReduceAction198(141),
+ new ReduceAction205(142),
+ new ReduceAction206(142),
+ new ReduceAction207(142),
+ new ReduceAction208(142),
+ new ReduceAction209(142),
+ new ReduceAction210(142),
+ new ReduceAction211(142),
+ new ReduceAction212(142),
+ new ReduceAction209(142),
+ new ReduceAction210(142),
+ new ReduceAction215(142),
+ new ReduceAction216(142),
+ new ReduceAction217(142),
+ new ReduceAction218(142),
+ new ReduceAction219(142),
+ new ReduceAction220(142),
+ new ReduceAction217(142),
+ new ReduceAction218(142),
+ new ReduceAction223(142),
+ new ReduceAction224(142),
+ new ReduceAction225(142),
+ new ReduceAction226(142),
+ new ReduceAction227(142),
+ new ReduceAction228(142),
+ new ReduceAction229(142),
+ new ReduceAction230(142),
+ new ReduceAction231(142),
+ new ReduceAction228(142),
+ new ReduceAction229(142),
+ new ReduceAction234(142),
+ new ReduceAction235(142),
+ new ReduceAction236(142),
+ new ReduceAction237(142),
+ new ReduceAction238(142),
+ new ReduceAction239(142),
+ new ReduceAction236(142),
+ new ReduceAction237(142),
+ new ReduceAction242(142),
+ new ReduceAction157(143),
+ new ReduceAction280(143),
+ new ReduceAction157(144),
+ new ReduceAction282(144),
+ new ReduceAction283(144),
+ new ReduceAction284(144),
+ new ReduceAction285(144),
+ new ReduceAction157(145),
+ new ReduceAction287(145),
+ new ReduceAction157(146),
+ new ReduceAction289(146),
+ new ReduceAction290(146),
+ new ReduceAction291(146),
+ new ReduceAction292(146),
+ new ReduceAction293(146),
+ new ReduceAction294(146),
+ new ReduceAction295(146),
+ new ReduceAction296(146),
+ new ReduceAction157(147),
+ new ReduceAction298(147),
+ new ReduceAction157(148),
+ new ReduceAction300(148),
+ new ReduceAction157(149),
+ new ReduceAction302(149),
+ new ReduceAction157(150),
+ new ReduceAction304(150),
+ new ReduceAction305(150),
+ new ReduceAction157(151),
+ new ReduceAction307(151),
+ new ReduceAction308(151),
+ new ReduceAction157(152),
+ new ReduceAction310(152),
+ new ReduceAction311(152),
+ new ReduceAction312(152),
+ new ReduceAction157(153),
+ new ReduceAction314(153),
+ new ReduceAction157(154),
+ new ReduceAction316(154),
+ new ReduceAction317(154),
+ new ReduceAction318(154),
+ new ReduceAction319(154),
+ new ReduceAction157(155),
+ new ReduceAction321(155),
+ new ReduceAction322(155),
+ new ReduceAction323(155),
+ new ReduceAction324(155),
+ new ReduceAction157(156),
+ new ReduceAction326(156),
+ new ReduceAction327(156),
+ new ReduceAction181(156),
+ new ReduceAction329(156),
+ new ReduceAction182(156),
+ new ReduceAction331(156),
+ new ReduceAction183(156),
+ new ReduceAction333(156),
+ new ReduceAction182(156),
+ new ReduceAction331(156),
+ new ReduceAction185(156),
+ new ReduceAction337(156),
+ new ReduceAction186(156),
+ new ReduceAction339(156),
+ new ReduceAction187(156),
+ new ReduceAction341(156),
+ new ReduceAction186(156),
+ new ReduceAction339(156),
+ new ReduceAction189(156),
+ new ReduceAction345(156),
+ new ReduceAction190(156),
+ new ReduceAction347(156),
+ new ReduceAction191(156),
+ new ReduceAction349(156),
+ new ReduceAction350(156),
+ new ReduceAction351(156),
+ new ReduceAction352(156),
+ new ReduceAction353(156),
+ new ReduceAction354(156),
+ new ReduceAction355(156),
+ new ReduceAction356(156),
+ new ReduceAction353(156),
+ new ReduceAction354(156),
+ new ReduceAction359(156),
+ new ReduceAction360(156),
+ new ReduceAction361(156),
+ new ReduceAction362(156),
+ new ReduceAction363(157),
+ new ReduceAction364(157),
+ new ReduceAction365(157),
+ new ReduceAction366(157),
+ new ReduceAction367(157),
+ new ReduceAction368(157),
+ new ReduceAction369(157),
+ new ReduceAction370(157),
+ new ReduceAction371(157),
+ new ReduceAction157(157),
+ new ReduceAction396(158),
+ new ReduceAction397(158),
+ new ReduceAction398(159),
+ new ReduceAction22(159),
+ new ReduceAction400(160),
+ new ReduceAction400(161),
+ new ReduceAction381(162),
+ new ReduceAction382(162),
+ new ReduceAction424(163),
+ new ReduceAction157(163),
+ new ReduceAction157(163),
+ new ReduceAction427(163),
+ new ReduceAction428(163),
+ new ReduceAction144(164),
+ new ReduceAction145(164),
+ new ReduceAction157(165),
+ new ReduceAction280(165),
+ new ReduceAction157(166),
+ new ReduceAction282(166),
+ new ReduceAction283(166),
+ new ReduceAction284(166),
+ new ReduceAction285(166),
+ new ReduceAction157(167),
+ new ReduceAction287(167),
+ new ReduceAction157(168),
+ new ReduceAction289(168),
+ new ReduceAction290(168),
+ new ReduceAction291(168),
+ new ReduceAction292(168),
+ new ReduceAction293(168),
+ new ReduceAction294(168),
+ new ReduceAction295(168),
+ new ReduceAction296(168),
+ new ReduceAction157(169),
+ new ReduceAction298(169),
+ new ReduceAction157(170),
+ new ReduceAction300(170),
+ new ReduceAction157(171),
+ new ReduceAction302(171),
+ new ReduceAction157(172),
+ new ReduceAction304(172),
+ new ReduceAction305(172),
+ new ReduceAction157(173),
+ new ReduceAction307(173),
+ new ReduceAction308(173),
+ new ReduceAction157(174),
+ new ReduceAction310(174),
+ new ReduceAction311(174),
+ new ReduceAction312(174),
+ new ReduceAction157(175),
+ new ReduceAction314(175),
+ new ReduceAction157(176),
+ new ReduceAction316(176),
+ new ReduceAction317(176),
+ new ReduceAction318(176),
+ new ReduceAction319(176),
+ new ReduceAction157(177),
+ new ReduceAction321(177),
+ new ReduceAction322(177),
+ new ReduceAction836(177),
+ new ReduceAction157(178),
+ new ReduceAction838(178),
+ new ReduceAction839(178),
+ new ReduceAction840(178),
+ new ReduceAction841(178),
+ new ReduceAction842(178),
+ new ReduceAction181(178),
+ new ReduceAction329(178),
+ new ReduceAction841(178),
+ new ReduceAction842(178),
+ new ReduceAction189(178),
+ new ReduceAction345(178),
+ new ReduceAction849(178),
+ new ReduceAction850(178),
+ new ReduceAction351(178),
+ new ReduceAction352(178),
+ new ReduceAction353(178),
+ new ReduceAction354(178),
+ new ReduceAction355(178),
+ new ReduceAction356(178),
+ new ReduceAction353(178),
+ new ReduceAction354(178),
+ new ReduceAction359(178),
+ new ReduceAction360(178),
+ new ReduceAction361(178),
+ new ReduceAction362(178),
+ new ReduceAction363(179),
+ new ReduceAction364(179),
+ new ReduceAction365(179),
+ new ReduceAction366(179),
+ new ReduceAction367(179),
+ new ReduceAction368(179),
+ new ReduceAction369(179),
+ new ReduceAction370(179),
+ new ReduceAction371(179),
+ new ReduceAction157(179),
+ new ReduceAction873(180),
+ new ReduceAction874(180),
+ new ReduceAction154(181),
+ new ReduceAction155(181),
+ new ReduceAction156(181),
+ new ReduceAction157(181),
+ new ReduceAction157(182),
+ new ReduceAction157(182),
+ new ReduceAction167(182),
+ new ReduceAction168(182),
+ new ReduceAction169(182),
+ new ReduceAction170(182),
+ new ReduceAction171(182),
+ new ReduceAction172(182),
+ new ReduceAction173(182),
+ new ReduceAction157(182),
+ new ReduceAction157(182),
+ new ReduceAction157(182),
+ new ReduceAction157(182),
+ new ReduceAction157(182),
+ new ReduceAction157(182),
+ new ReduceAction157(182),
+ new ReduceAction181(182),
+ new ReduceAction182(182),
+ new ReduceAction183(182),
+ new ReduceAction182(182),
+ new ReduceAction185(182),
+ new ReduceAction186(182),
+ new ReduceAction187(182),
+ new ReduceAction186(182),
+ new ReduceAction189(182),
+ new ReduceAction190(182),
+ new ReduceAction191(182),
+ new ReduceAction192(182),
+ new ReduceAction193(182),
+ new ReduceAction192(182),
+ new ReduceAction195(182),
+ new ReduceAction196(182),
+ new ReduceAction195(182),
+ new ReduceAction198(182),
+ new ReduceAction254(183),
+ new ReduceAction255(183),
+ new ReduceAction256(184),
+ new ReduceAction263(185),
+ new ReduceAction264(185),
+ new ReduceAction265(186),
+ new ReduceAction266(186),
+ new ReduceAction267(187),
+ new ReduceAction268(187),
+ new ReduceAction269(188),
+ new ReduceAction270(188),
+ new ReduceAction274(189),
+ new ReduceAction275(189),
+ new ReduceAction157(190),
+ new ReduceAction157(190),
+ new ReduceAction167(190),
+ new ReduceAction168(190),
+ new ReduceAction169(190),
+ new ReduceAction170(190),
+ new ReduceAction171(190),
+ new ReduceAction172(190),
+ new ReduceAction173(190),
+ new ReduceAction157(190),
+ new ReduceAction157(190),
+ new ReduceAction157(190),
+ new ReduceAction157(190),
+ new ReduceAction157(190),
+ new ReduceAction157(190),
+ new ReduceAction157(190),
+ new ReduceAction181(190),
+ new ReduceAction182(190),
+ new ReduceAction183(190),
+ new ReduceAction182(190),
+ new ReduceAction185(190),
+ new ReduceAction186(190),
+ new ReduceAction187(190),
+ new ReduceAction186(190),
+ new ReduceAction189(190),
+ new ReduceAction190(190),
+ new ReduceAction191(190),
+ new ReduceAction192(190),
+ new ReduceAction193(190),
+ new ReduceAction192(190),
+ new ReduceAction195(190),
+ new ReduceAction196(190),
+ new ReduceAction195(190),
+ new ReduceAction198(190),
+ new ReduceAction154(191),
+ new ReduceAction155(191),
+ new ReduceAction156(191),
+ new ReduceAction154(192),
+ new ReduceAction155(192),
+ new ReduceAction156(192),
+ new ReduceAction157(193),
+ new ReduceAction157(193),
+ new ReduceAction167(193),
+ new ReduceAction168(193),
+ new ReduceAction169(193),
+ new ReduceAction170(193),
+ new ReduceAction171(193),
+ new ReduceAction172(193),
+ new ReduceAction173(193),
+ new ReduceAction157(193),
+ new ReduceAction157(193),
+ new ReduceAction157(193),
+ new ReduceAction157(193),
+ new ReduceAction157(193),
+ new ReduceAction157(193),
+ new ReduceAction198(193),
+ new ReduceAction157(194),
+ new ReduceAction157(194),
+ new ReduceAction167(194),
+ new ReduceAction168(194),
+ new ReduceAction169(194),
+ new ReduceAction170(194),
+ new ReduceAction171(194),
+ new ReduceAction172(194),
+ new ReduceAction173(194),
+ new ReduceAction157(194),
+ new ReduceAction157(194),
+ new ReduceAction157(194),
+ new ReduceAction157(194),
+ new ReduceAction157(194),
+ new ReduceAction157(194),
+ new ReduceAction198(194),
+ new ReduceAction157(195),
+ new ReduceAction157(195),
+ new ReduceAction167(195),
+ new ReduceAction168(195),
+ new ReduceAction169(195),
+ new ReduceAction170(195),
+ new ReduceAction171(195),
+ new ReduceAction172(195),
+ new ReduceAction173(195),
+ new ReduceAction157(195),
+ new ReduceAction157(195),
+ new ReduceAction157(195),
+ new ReduceAction157(195),
+ new ReduceAction157(195),
+ new ReduceAction157(195),
+ new ReduceAction198(195),
+ new ReduceAction157(196),
+ new ReduceAction157(196),
+ new ReduceAction167(196),
+ new ReduceAction168(196),
+ new ReduceAction169(196),
+ new ReduceAction170(196),
+ new ReduceAction171(196),
+ new ReduceAction172(196),
+ new ReduceAction173(196),
+ new ReduceAction157(196),
+ new ReduceAction157(196),
+ new ReduceAction157(196),
+ new ReduceAction157(196),
+ new ReduceAction157(196),
+ new ReduceAction157(196),
+ new ReduceAction198(196),
+ new ReduceAction430(197),
+ new ReduceAction432(197),
+ new ReduceAction1032(198),
+ new ReduceAction1033(198),
+ new ReduceAction1034(199),
+ new ReduceAction1035(199),
+ new ReduceAction1036(200),
+ new ReduceAction1037(200),
+ new ReduceAction1038(201),
+ new ReduceAction1039(201),
+ new ReduceAction43(202),
+ new ReduceAction1041(202),
+ new ReduceAction1042(203),
+ new ReduceAction1043(203),
+ new ReduceAction1044(204),
+ new ReduceAction1045(204),
+ new ReduceAction148(205),
+ new ReduceAction1047(205),
+ new ReduceAction381(206),
+ new ReduceAction1049(206),
+ new ReduceAction381(207),
+ new ReduceAction1049(207),
+ new ReduceAction381(208),
+ new ReduceAction1049(208),
+ new ReduceAction445(209),
+ new ReduceAction1055(209),
+ new ReduceAction403(210),
+ new ReduceAction1057(210),
+ new ReduceAction403(211),
+ new ReduceAction1057(211),
+ new ReduceAction381(212),
+ new ReduceAction1049(212),
+ new ReduceAction381(213),
+ new ReduceAction1049(213),
+ new ReduceAction446(214),
+ new ReduceAction1065(214),
+ new ReduceAction1066(215),
+ new ReduceAction1067(215),
+ new ReduceAction1068(216),
+ new ReduceAction1069(216)
)
end
end
do
var node_list: nullable Object = null
var nodearraylist1 = p.pop
+ var tpipenode2 = nodearraylist1
+ assert tpipenode2 isa nullable TPipe
+ var pmethidnode1: nullable APipeMethid = new APipeMethid.init_apipemethid(
+ tpipenode2
+ )
+ node_list = pmethidnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction91
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tcaretnode2 = nodearraylist1
+ assert tcaretnode2 isa nullable TCaret
+ var pmethidnode1: nullable ACaretMethid = new ACaretMethid.init_acaretmethid(
+ tcaretnode2
+ )
+ node_list = pmethidnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction92
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tampnode2 = nodearraylist1
+ assert tampnode2 isa nullable TAmp
+ var pmethidnode1: nullable AAmpMethid = new AAmpMethid.init_aampmethid(
+ tampnode2
+ )
+ node_list = pmethidnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction93
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var ttildenode2 = nodearraylist1
+ assert ttildenode2 isa nullable TTilde
+ var pmethidnode1: nullable ATildeMethid = new ATildeMethid.init_atildemethid(
+ ttildenode2
+ )
+ node_list = pmethidnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction94
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
var teqnode2 = nodearraylist1
assert teqnode2 isa nullable TEq
var pmethidnode1: nullable AEqMethid = new AEqMethid.init_aeqmethid(
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction91
+private class ReduceAction95
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction92
+private class ReduceAction96
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction93
+private class ReduceAction97
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction94
+private class ReduceAction98
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction95
+private class ReduceAction99
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction96
+private class ReduceAction100
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction97
+private class ReduceAction101
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction98
+private class ReduceAction102
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction99
+private class ReduceAction103
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction100
+private class ReduceAction104
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction101
+private class ReduceAction105
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction102
+private class ReduceAction106
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction103
+private class ReduceAction107
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction104
+private class ReduceAction108
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction105
+private class ReduceAction109
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction106
+private class ReduceAction110
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction107
+private class ReduceAction111
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction108
+private class ReduceAction112
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction110
+private class ReduceAction114
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction111
+private class ReduceAction115
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction112
+private class ReduceAction116
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction113
+private class ReduceAction117
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction114
+private class ReduceAction118
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction115
+private class ReduceAction119
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction116
+private class ReduceAction120
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction117
+private class ReduceAction121
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction119
+private class ReduceAction123
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction120
+private class ReduceAction124
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction122
+private class ReduceAction126
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction123
+private class ReduceAction127
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction124
+private class ReduceAction128
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction125
+private class ReduceAction129
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction126
+private class ReduceAction130
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction127
+private class ReduceAction131
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction128
+private class ReduceAction132
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction129
+private class ReduceAction133
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction130
+private class ReduceAction134
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction131
+private class ReduceAction135
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction133
+private class ReduceAction137
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction134
+private class ReduceAction138
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction135
+private class ReduceAction139
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction136
+private class ReduceAction140
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction137
+private class ReduceAction141
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction139
+private class ReduceAction143
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction140
+private class ReduceAction144
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction141
+private class ReduceAction145
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction142
+private class ReduceAction146
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction143
+private class ReduceAction147
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction144
+private class ReduceAction148
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction145
+private class ReduceAction149
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction146
+private class ReduceAction150
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction150
+private class ReduceAction154
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction151
+private class ReduceAction155
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction152
+private class ReduceAction156
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction153
+private class ReduceAction157
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction154
+private class ReduceAction158
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction155
+private class ReduceAction159
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction156
+private class ReduceAction160
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction157
+private class ReduceAction161
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction158
+private class ReduceAction162
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction159
+private class ReduceAction163
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction163
+private class ReduceAction167
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction164
+private class ReduceAction168
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction165
+private class ReduceAction169
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction166
+private class ReduceAction170
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction167
+private class ReduceAction171
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction168
+private class ReduceAction172
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction169
+private class ReduceAction173
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction176
+private class ReduceAction181
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction177
+private class ReduceAction182
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction178
+private class ReduceAction183
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction180
+private class ReduceAction185
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction181
+private class ReduceAction186
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction182
+private class ReduceAction187
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction184
+private class ReduceAction189
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction185
+private class ReduceAction190
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction186
+private class ReduceAction191
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction187
+private class ReduceAction192
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction188
+private class ReduceAction193
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction190
+private class ReduceAction195
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction191
+private class ReduceAction196
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction193
+private class ReduceAction198
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction194
+private class ReduceAction199
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction195
+private class ReduceAction200
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction196
+private class ReduceAction201
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction197
+private class ReduceAction202
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction198
+private class ReduceAction203
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction199
+private class ReduceAction204
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction200
+private class ReduceAction205
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction201
+private class ReduceAction206
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction202
+private class ReduceAction207
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction203
+private class ReduceAction208
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction204
+private class ReduceAction209
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction205
+private class ReduceAction210
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction206
+private class ReduceAction211
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction207
+private class ReduceAction212
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction210
+private class ReduceAction215
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction211
+private class ReduceAction216
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction212
+private class ReduceAction217
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction213
+private class ReduceAction218
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction214
+private class ReduceAction219
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction215
+private class ReduceAction220
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction218
+private class ReduceAction223
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction219
+private class ReduceAction224
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction220
+private class ReduceAction225
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction221
+private class ReduceAction226
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction222
+private class ReduceAction227
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction223
+private class ReduceAction228
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction224
+private class ReduceAction229
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction225
+private class ReduceAction230
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction226
+private class ReduceAction231
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction229
+private class ReduceAction234
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction230
+private class ReduceAction235
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction231
+private class ReduceAction236
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction232
+private class ReduceAction237
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction233
+private class ReduceAction238
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction234
+private class ReduceAction239
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction237
+private class ReduceAction242
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction238
+private class ReduceAction243
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction239
+private class ReduceAction244
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction240
+private class ReduceAction245
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist3 = p.pop
- var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tkwdonode2 = nodearraylist1
- assert tkwdonode2 isa nullable TKwdo
- var pexprnode3 = nodearraylist2
- assert pexprnode3 isa nullable AExpr
- var plabelnode4 = nodearraylist3
- assert plabelnode4 isa nullable ALabel
+ var tstareqnode2 = nodearraylist1
+ assert tstareqnode2 isa nullable TStareq
+ var passignopnode1: nullable AStarAssignOp = new AStarAssignOp.init_astarassignop(
+ tstareqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction246
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tslasheqnode2 = nodearraylist1
+ assert tslasheqnode2 isa nullable TSlasheq
+ var passignopnode1: nullable ASlashAssignOp = new ASlashAssignOp.init_aslashassignop(
+ tslasheqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction247
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tpercenteqnode2 = nodearraylist1
+ assert tpercenteqnode2 isa nullable TPercenteq
+ var passignopnode1: nullable APercentAssignOp = new APercentAssignOp.init_apercentassignop(
+ tpercenteqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction248
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tstarstareqnode2 = nodearraylist1
+ assert tstarstareqnode2 isa nullable TStarstareq
+ var passignopnode1: nullable AStarstarAssignOp = new AStarstarAssignOp.init_astarstarassignop(
+ tstarstareqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction249
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tpipeeqnode2 = nodearraylist1
+ assert tpipeeqnode2 isa nullable TPipeeq
+ var passignopnode1: nullable APipeAssignOp = new APipeAssignOp.init_apipeassignop(
+ tpipeeqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction250
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tcareteqnode2 = nodearraylist1
+ assert tcareteqnode2 isa nullable TCareteq
+ var passignopnode1: nullable ACaretAssignOp = new ACaretAssignOp.init_acaretassignop(
+ tcareteqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction251
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tampeqnode2 = nodearraylist1
+ assert tampeqnode2 isa nullable TAmpeq
+ var passignopnode1: nullable AAmpAssignOp = new AAmpAssignOp.init_aampassignop(
+ tampeqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction252
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tlleqnode2 = nodearraylist1
+ assert tlleqnode2 isa nullable TLleq
+ var passignopnode1: nullable ALlAssignOp = new ALlAssignOp.init_allassignop(
+ tlleqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction253
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist1 = p.pop
+ var tggeqnode2 = nodearraylist1
+ assert tggeqnode2 isa nullable TGgeq
+ var passignopnode1: nullable AGgAssignOp = new AGgAssignOp.init_aggassignop(
+ tggeqnode2
+ )
+ node_list = passignopnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction254
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwdonode2 = nodearraylist1
+ assert tkwdonode2 isa nullable TKwdo
+ var pexprnode3 = nodearraylist2
+ assert pexprnode3 isa nullable AExpr
+ var plabelnode4 = nodearraylist3
+ assert plabelnode4 isa nullable ALabel
var pexprnode1: nullable ADoExpr = new ADoExpr.init_adoexpr(
tkwdonode2,
pexprnode3,
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction241
+private class ReduceAction255
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction242
+private class ReduceAction256
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction243
+private class ReduceAction257
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction244
+private class ReduceAction258
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction245
+private class ReduceAction259
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction246
+private class ReduceAction260
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction249
+private class ReduceAction263
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction250
+private class ReduceAction264
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction251
+private class ReduceAction265
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction252
+private class ReduceAction266
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction253
+private class ReduceAction267
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction254
+private class ReduceAction268
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction255
+private class ReduceAction269
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist7 = p.pop
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwwithnode2 = nodearraylist1
+ assert tkwwithnode2 isa nullable TKwwith
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwdonode4 = nodearraylist5
+ assert tkwdonode4 isa nullable TKwdo
+ var pexprnode5 = nodearraylist6
+ assert pexprnode5 isa nullable AExpr
+ var plabelnode6 = nodearraylist7
+ assert plabelnode6 isa nullable ALabel
+ var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
+ tkwwithnode2,
+ pexprnode3,
+ tkwdonode4,
+ pexprnode5,
+ plabelnode6
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction270
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tkwwithnode2 = nodearraylist1
+ assert tkwwithnode2 isa nullable TKwwith
+ var pexprnode3 = nodearraylist3
+ assert pexprnode3 isa nullable AExpr
+ var tkwdonode4 = nodearraylist5
+ assert tkwdonode4 isa nullable TKwdo
+ var pexprnode5 = nodearraylist6
+ assert pexprnode5 isa nullable AExpr
+ var pexprnode1: nullable AWithExpr = new AWithExpr.init_awithexpr(
+ tkwwithnode2,
+ pexprnode3,
+ tkwdonode4,
+ pexprnode5,
+ null
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction271
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tidnode3 = nodearraylist1
+ assert tidnode3 isa nullable TId
+ var ptypenode4 = nodearraylist2
+ assert ptypenode4 isa nullable AType
+ var tassignnode5 = nodearraylist3
+ assert tassignnode5 isa nullable TAssign
+ var pexprnode6 = nodearraylist5
+ assert pexprnode6 isa nullable AExpr
+ var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+ null,
+ tidnode3,
+ ptypenode4,
+ tassignnode5,
+ pexprnode6,
+ null
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction272
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist6 = p.pop
+ var nodearraylist5 = p.pop
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var tidnode3 = nodearraylist1
+ assert tidnode3 isa nullable TId
+ var ptypenode4 = nodearraylist3
+ assert ptypenode4 isa nullable AType
+ var tassignnode5 = nodearraylist4
+ assert tassignnode5 isa nullable TAssign
+ var pexprnode6 = nodearraylist6
+ assert pexprnode6 isa nullable AExpr
+ var pannotationsnode7 = nodearraylist2
+ assert pannotationsnode7 isa nullable AAnnotations
+ var pexprnode1: nullable AVardeclExpr = new AVardeclExpr.init_avardeclexpr(
+ null,
+ tidnode3,
+ ptypenode4,
+ tassignnode5,
+ pexprnode6,
+ pannotationsnode7
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction274
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction256
+private class ReduceAction275
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction257
+private class ReduceAction276
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction258
+private class ReduceAction277
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction259
+private class ReduceAction278
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction261
+private class ReduceAction280
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction263
+private class ReduceAction282
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
+ var tkwornode3 = nodearraylist2
+ assert tkwornode3 isa nullable TKwor
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
var pexprnode1: nullable AOrExpr = new AOrExpr.init_aorexpr(
pexprnode2,
- pexprnode3
+ tkwornode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction264
+private class ReduceAction283
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
+ var tkwandnode3 = nodearraylist2
+ assert tkwandnode3 isa nullable TKwand
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
var pexprnode1: nullable AAndExpr = new AAndExpr.init_aandexpr(
pexprnode2,
- pexprnode3
+ tkwandnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction265
+private class ReduceAction284
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist5
- assert pexprnode3 isa nullable AExpr
+ var tkwornode3 = nodearraylist2
+ assert tkwornode3 isa nullable TKwor
+ var tkwelsenode4 = nodearraylist3
+ assert tkwelsenode4 isa nullable TKwelse
+ var pexprnode5 = nodearraylist5
+ assert pexprnode5 isa nullable AExpr
var pexprnode1: nullable AOrElseExpr = new AOrElseExpr.init_aorelseexpr(
pexprnode2,
- pexprnode3
+ tkwornode3,
+ tkwelsenode4,
+ pexprnode5
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction266
+private class ReduceAction285
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
+ var tkwimpliesnode3 = nodearraylist2
+ assert tkwimpliesnode3 isa nullable TKwimplies
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
var pexprnode1: nullable AImpliesExpr = new AImpliesExpr.init_aimpliesexpr(
pexprnode2,
- pexprnode3
+ tkwimpliesnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction268
+private class ReduceAction287
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction270
+private class ReduceAction289
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
+ var teqnode3 = nodearraylist2
+ assert teqnode3 isa nullable TEq
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
var pexprnode1: nullable AEqExpr = new AEqExpr.init_aeqexpr(
pexprnode2,
- pexprnode3
+ teqnode3,
+ pexprnode4
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction290
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tnenode3 = nodearraylist2
+ assert tnenode3 isa nullable TNe
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
+ pexprnode2,
+ tnenode3,
+ pexprnode4
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction291
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tltnode3 = nodearraylist2
+ assert tltnode3 isa nullable TLt
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
+ pexprnode2,
+ tltnode3,
+ pexprnode4
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction292
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tlenode3 = nodearraylist2
+ assert tlenode3 isa nullable TLe
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
+ pexprnode2,
+ tlenode3,
+ pexprnode4
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction293
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tgtnode3 = nodearraylist2
+ assert tgtnode3 isa nullable TGt
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
+ pexprnode2,
+ tgtnode3,
+ pexprnode4
+ )
+ node_list = pexprnode1
+ p.push(p.go_to(_goto), node_list)
+ end
+end
+private class ReduceAction294
+ super ReduceAction
+ redef fun action(p: Parser)
+ do
+ var node_list: nullable Object = null
+ var nodearraylist4 = p.pop
+ var nodearraylist3 = p.pop
+ var nodearraylist2 = p.pop
+ var nodearraylist1 = p.pop
+ var pexprnode2 = nodearraylist1
+ assert pexprnode2 isa nullable AExpr
+ var tgenode3 = nodearraylist2
+ assert tgenode3 isa nullable TGe
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
+ pexprnode2,
+ tgenode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction271
+private class ReduceAction295
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable ANeExpr = new ANeExpr.init_aneexpr(
+ var tstarshipnode3 = nodearraylist2
+ assert tstarshipnode3 isa nullable TStarship
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
pexprnode2,
- pexprnode3
+ tstarshipnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction272
+private class ReduceAction296
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable ALtExpr = new ALtExpr.init_altexpr(
+ var tkwisanode3 = nodearraylist2
+ assert tkwisanode3 isa nullable TKwisa
+ var ptypenode4 = nodearraylist4
+ assert ptypenode4 isa nullable AType
+ var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
pexprnode2,
- pexprnode3
+ tkwisanode3,
+ ptypenode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction273
+private class ReduceAction298
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable ALeExpr = new ALeExpr.init_aleexpr(
+ var tpipenode3 = nodearraylist2
+ assert tpipenode3 isa nullable TPipe
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable APipeExpr = new APipeExpr.init_apipeexpr(
pexprnode2,
- pexprnode3
+ tpipenode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction274
+private class ReduceAction300
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable ALlExpr = new ALlExpr.init_allexpr(
+ var tcaretnode3 = nodearraylist2
+ assert tcaretnode3 isa nullable TCaret
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable ACaretExpr = new ACaretExpr.init_acaretexpr(
pexprnode2,
- pexprnode3
+ tcaretnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction275
+private class ReduceAction302
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable AGtExpr = new AGtExpr.init_agtexpr(
+ var tampnode3 = nodearraylist2
+ assert tampnode3 isa nullable TAmp
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AAmpExpr = new AAmpExpr.init_aampexpr(
pexprnode2,
- pexprnode3
+ tampnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction276
+private class ReduceAction304
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable AGeExpr = new AGeExpr.init_ageexpr(
+ var tllnode3 = nodearraylist2
+ assert tllnode3 isa nullable TLl
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable ALlExpr = new ALlExpr.init_allexpr(
pexprnode2,
- pexprnode3
+ tllnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction277
+private class ReduceAction305
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
+ var tggnode3 = nodearraylist2
+ assert tggnode3 isa nullable TGg
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
var pexprnode1: nullable AGgExpr = new AGgExpr.init_aggexpr(
pexprnode2,
- pexprnode3
+ tggnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction278
+private class ReduceAction307
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable AStarshipExpr = new AStarshipExpr.init_astarshipexpr(
+ var tplusnode3 = nodearraylist2
+ assert tplusnode3 isa nullable TPlus
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
pexprnode2,
- pexprnode3
+ tplusnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction279
+private class ReduceAction308
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var ptypenode3 = nodearraylist4
- assert ptypenode3 isa nullable AType
- var pexprnode1: nullable AIsaExpr = new AIsaExpr.init_aisaexpr(
+ var tminusnode3 = nodearraylist2
+ assert tminusnode3 isa nullable TMinus
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
pexprnode2,
- ptypenode3
+ tminusnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction281
+private class ReduceAction310
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable APlusExpr = new APlusExpr.init_aplusexpr(
+ var tstarnode3 = nodearraylist2
+ assert tstarnode3 isa nullable TStar
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
pexprnode2,
- pexprnode3
+ tstarnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction282
+private class ReduceAction311
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable AMinusExpr = new AMinusExpr.init_aminusexpr(
+ var tslashnode3 = nodearraylist2
+ assert tslashnode3 isa nullable TSlash
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
pexprnode2,
- pexprnode3
+ tslashnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction284
+private class ReduceAction312
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable AStarExpr = new AStarExpr.init_astarexpr(
+ var tpercentnode3 = nodearraylist2
+ assert tpercentnode3 isa nullable TPercent
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
pexprnode2,
- pexprnode3
+ tpercentnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction285
+private class ReduceAction314
super ReduceAction
redef fun action(p: Parser)
do
var nodearraylist1 = p.pop
var pexprnode2 = nodearraylist1
assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
- assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable ASlashExpr = new ASlashExpr.init_aslashexpr(
+ var tstarstarnode3 = nodearraylist2
+ assert tstarstarnode3 isa nullable TStarstar
+ var pexprnode4 = nodearraylist4
+ assert pexprnode4 isa nullable AExpr
+ var pexprnode1: nullable AStarstarExpr = new AStarstarExpr.init_astarstarexpr(
pexprnode2,
- pexprnode3
+ tstarstarnode3,
+ pexprnode4
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction286
+private class ReduceAction316
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist4 = p.pop
- var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
+ var tminusnode2 = nodearraylist1
+ assert tminusnode2 isa nullable TMinus
+ var pexprnode3 = nodearraylist2
assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable APercentExpr = new APercentExpr.init_apercentexpr(
- pexprnode2,
+ var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
+ tminusnode2,
pexprnode3
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction288
+private class ReduceAction317
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
- var nodearraylist4 = p.pop
- var nodearraylist3 = p.pop
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var pexprnode2 = nodearraylist1
- assert pexprnode2 isa nullable AExpr
- var pexprnode3 = nodearraylist4
+ var tplusnode2 = nodearraylist1
+ assert tplusnode2 isa nullable TPlus
+ var pexprnode3 = nodearraylist2
assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable AStarstarExpr = new AStarstarExpr.init_astarstarexpr(
- pexprnode2,
+ var pexprnode1: nullable AUplusExpr = new AUplusExpr.init_auplusexpr(
+ tplusnode2,
pexprnode3
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction290
+private class ReduceAction318
super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
var nodearraylist2 = p.pop
var nodearraylist1 = p.pop
- var tminusnode2 = nodearraylist1
- assert tminusnode2 isa nullable TMinus
+ var ttildenode2 = nodearraylist1
+ assert ttildenode2 isa nullable TTilde
var pexprnode3 = nodearraylist2
assert pexprnode3 isa nullable AExpr
- var pexprnode1: nullable AUminusExpr = new AUminusExpr.init_auminusexpr(
- tminusnode2,
+ var pexprnode1: nullable AUtildeExpr = new AUtildeExpr.init_autildeexpr(
+ ttildenode2,
pexprnode3
)
node_list = pexprnode1
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction291
+private class ReduceAction319
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction293
+private class ReduceAction321
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction294
+private class ReduceAction322
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction295
+private class ReduceAction323
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction296
+private class ReduceAction324
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction298
+private class ReduceAction326
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction299
+private class ReduceAction327
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction301
+private class ReduceAction329
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction303
+private class ReduceAction331
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction305
+private class ReduceAction333
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction309
+private class ReduceAction337
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction311
+private class ReduceAction339
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction313
+private class ReduceAction341
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction317
+private class ReduceAction345
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction319
+private class ReduceAction347
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction321
+private class ReduceAction349
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction322
+private class ReduceAction350
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction323
+private class ReduceAction351
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction324
+private class ReduceAction352
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction325
+private class ReduceAction353
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction326
+private class ReduceAction354
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction327
+private class ReduceAction355
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction328
+private class ReduceAction356
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction331
+private class ReduceAction359
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction332
+private class ReduceAction360
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction333
+private class ReduceAction361
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction334
+private class ReduceAction362
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction335
+private class ReduceAction363
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction336
+private class ReduceAction364
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction337
+private class ReduceAction365
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction338
+private class ReduceAction366
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction339
+private class ReduceAction367
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction340
+private class ReduceAction368
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction341
+private class ReduceAction369
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction342
+private class ReduceAction370
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction343
+private class ReduceAction371
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction346
+private class ReduceAction374
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction347
+private class ReduceAction375
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction348
+private class ReduceAction376
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction349
+private class ReduceAction377
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction351
+private class ReduceAction379
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction352
+private class ReduceAction380
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction353
+private class ReduceAction381
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction354
+private class ReduceAction382
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction356
+private class ReduceAction384
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction358
+private class ReduceAction386
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction359
+private class ReduceAction387
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction360
+private class ReduceAction388
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction361
+private class ReduceAction389
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction362
+private class ReduceAction390
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction363
+private class ReduceAction391
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction366
+private class ReduceAction394
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction367
+private class ReduceAction395
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction368
+private class ReduceAction396
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction369
+private class ReduceAction397
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction370
+private class ReduceAction398
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction372
+private class ReduceAction400
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction373
+private class ReduceAction401
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction374
+private class ReduceAction402
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction375
+private class ReduceAction403
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction376
+private class ReduceAction404
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction379
+private class ReduceAction407
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction381
+private class ReduceAction409
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction383
+private class ReduceAction411
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction384
+private class ReduceAction412
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction385
+private class ReduceAction413
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction386
+private class ReduceAction414
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction387
+private class ReduceAction415
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction388
+private class ReduceAction416
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction389
+private class ReduceAction417
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction390
+private class ReduceAction418
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction391
+private class ReduceAction419
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction392
+private class ReduceAction420
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction396
+private class ReduceAction424
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction399
+private class ReduceAction427
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction400
+private class ReduceAction428
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction401
+private class ReduceAction429
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction402
+private class ReduceAction430
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction403
+private class ReduceAction431
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction404
+private class ReduceAction432
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction405
+private class ReduceAction433
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction406
+private class ReduceAction434
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction408
+private class ReduceAction436
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction410
+private class ReduceAction438
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction411
+private class ReduceAction439
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction412
+private class ReduceAction440
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction414
+private class ReduceAction442
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction415
+private class ReduceAction443
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction416
+private class ReduceAction444
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction417
+private class ReduceAction445
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction418
+private class ReduceAction446
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction419
+private class ReduceAction447
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction420
+private class ReduceAction448
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction421
+private class ReduceAction449
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction422
+private class ReduceAction450
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction423
+private class ReduceAction451
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction424
+private class ReduceAction452
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction425
+private class ReduceAction453
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction426
+private class ReduceAction454
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction428
+private class ReduceAction456
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction429
+private class ReduceAction457
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction430
+private class ReduceAction458
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction432
+private class ReduceAction460
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction433
+private class ReduceAction461
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction434
+private class ReduceAction462
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction436
+private class ReduceAction464
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction437
+private class ReduceAction465
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction439
+private class ReduceAction467
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction440
+private class ReduceAction468
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction442
+private class ReduceAction470
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction443
+private class ReduceAction471
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction446
+private class ReduceAction474
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction447
+private class ReduceAction475
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction448
+private class ReduceAction476
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction776
+private class ReduceAction836
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction778
+private class ReduceAction838
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction779
+private class ReduceAction839
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction780
+private class ReduceAction840
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction781
+private class ReduceAction841
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction782
+private class ReduceAction842
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction789
+private class ReduceAction849
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction790
+private class ReduceAction850
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction813
+private class ReduceAction873
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction814
+private class ReduceAction874
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction964
+private class ReduceAction1032
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction965
+private class ReduceAction1033
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction966
+private class ReduceAction1034
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction967
+private class ReduceAction1035
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction968
+private class ReduceAction1036
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction969
+private class ReduceAction1037
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction970
+private class ReduceAction1038
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction971
+private class ReduceAction1039
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction973
+private class ReduceAction1041
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction974
+private class ReduceAction1042
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction975
+private class ReduceAction1043
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction976
+private class ReduceAction1044
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction977
+private class ReduceAction1045
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction979
+private class ReduceAction1047
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction981
+private class ReduceAction1049
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction987
+private class ReduceAction1055
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction989
+private class ReduceAction1057
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction997
+private class ReduceAction1065
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction998
+private class ReduceAction1066
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction999
+private class ReduceAction1067
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1000
+private class ReduceAction1068
super ReduceAction
redef fun action(p: Parser)
do
p.push(p.go_to(_goto), node_list)
end
end
-private class ReduceAction1001
+private class ReduceAction1069
super ReduceAction
redef fun action(p: Parser)
do
class TKwlabel
super Token
end
+class TKwwith
+ super Token
+end
class TKwdebug
super Token
end
class TMinuseq
super Token
end
+class TStareq
+ super Token
+end
+class TSlasheq
+ super Token
+end
+class TPercenteq
+ super Token
+end
+class TStarstareq
+ super Token
+end
+class TPipeeq
+ super Token
+end
+class TCareteq
+ super Token
+end
+class TAmpeq
+ super Token
+end
+class TLleq
+ super Token
+end
+class TGgeq
+ super Token
+end
class TDotdotdot
super Token
end
class TPercent
super Token
end
+class TPipe
+ super Token
+end
+class TCaret
+ super Token
+end
+class TAmp
+ super Token
+end
+class TTilde
+ super Token
+end
class TEq
super Token
end
end
class APlusMethid
super AMethid
- var n_plus: TPlus is writable, noinit
+ var n_op: TPlus is writable, noinit
end
class AMinusMethid
super AMethid
- var n_minus: TMinus is writable, noinit
+ var n_op: TMinus is writable, noinit
end
class AStarMethid
super AMethid
- var n_star: TStar is writable, noinit
+ var n_op: TStar is writable, noinit
end
class AStarstarMethid
super AMethid
- var n_starstar: TStarstar is writable, noinit
+ var n_op: TStarstar is writable, noinit
end
class ASlashMethid
super AMethid
- var n_slash: TSlash is writable, noinit
+ var n_op: TSlash is writable, noinit
end
class APercentMethid
super AMethid
- var n_percent: TPercent is writable, noinit
+ var n_op: TPercent is writable, noinit
end
class AEqMethid
super AMethid
- var n_eq: TEq is writable, noinit
+ var n_op: TEq is writable, noinit
end
class ANeMethid
super AMethid
- var n_ne: TNe is writable, noinit
+ var n_op: TNe is writable, noinit
end
class ALeMethid
super AMethid
- var n_le: TLe is writable, noinit
+ var n_op: TLe is writable, noinit
end
class AGeMethid
super AMethid
- var n_ge: TGe is writable, noinit
+ var n_op: TGe is writable, noinit
end
class ALtMethid
super AMethid
- var n_lt: TLt is writable, noinit
+ var n_op: TLt is writable, noinit
end
class AGtMethid
super AMethid
- var n_gt: TGt is writable, noinit
+ var n_op: TGt is writable, noinit
end
class ALlMethid
super AMethid
- var n_ll: TLl is writable, noinit
+ var n_op: TLl is writable, noinit
end
class AGgMethid
super AMethid
- var n_gg: TGg is writable, noinit
+ var n_op: TGg is writable, noinit
+end
+class AStarshipMethid
+ super AMethid
+ var n_op: TStarship is writable, noinit
+end
+class APipeMethid
+ super AMethid
+ var n_op: TPipe is writable, noinit
+end
+class ACaretMethid
+ super AMethid
+ var n_op: TCaret is writable, noinit
+end
+class AAmpMethid
+ super AMethid
+ var n_op: TAmp is writable, noinit
+end
+class ATildeMethid
+ super AMethid
+ var n_op: TTilde is writable, noinit
end
class ABraMethid
super AMethid
var n_obra: TObra is writable, noinit
var n_cbra: TCbra is writable, noinit
end
-class AStarshipMethid
- super AMethid
- var n_starship: TStarship is writable, noinit
-end
class AAssignMethid
super AMethid
var n_id: TId is writable, noinit
end
class AVardeclExpr
super AExpr
- var n_kwvar: TKwvar is writable, noinit
+ var n_kwvar: nullable TKwvar = null is writable
var n_id: TId is writable, noinit
var n_type: nullable AType = null is writable
var n_assign: nullable TAssign = null is writable
var n_block: nullable AExpr = null is writable
var n_label: nullable ALabel = null is writable
end
+class AWithExpr
+ super AExpr
+ var n_kwwith: TKwwith is writable, noinit
+ var n_expr: AExpr is writable, noinit
+ var n_kwdo: TKwdo is writable, noinit
+ var n_block: nullable AExpr = null is writable
+ var n_label: nullable ALabel = null is writable
+end
class AAssertExpr
super AExpr
var n_kwassert: TKwassert is writable, noinit
class AOrExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TKwor is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class AAndExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TKwand is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class AOrElseExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TKwor is writable, noinit
+ var n_kwelse: TKwelse is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class AImpliesExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TKwimplies is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class ANotExpr
class AEqExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TEq is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class ANeExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TNe is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class ALtExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TLt is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class ALeExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TLe is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class ALlExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TLl is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class AGtExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TGt is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class AGeExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TGe is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class AGgExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TGg is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class AIsaExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_kwisa: TKwisa is writable, noinit
var n_type: AType is writable, noinit
end
class APlusExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TPlus is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class AMinusExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TMinus is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class AStarshipExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TStarship is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class AStarExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TStar is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class AStarstarExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TStarstar is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class ASlashExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TSlash is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class APercentExpr
super AExpr
var n_expr: AExpr is writable, noinit
+ var n_op: TPercent is writable, noinit
+ var n_expr2: AExpr is writable, noinit
+end
+class APipeExpr
+ super AExpr
+ var n_expr: AExpr is writable, noinit
+ var n_op: TPipe is writable, noinit
+ var n_expr2: AExpr is writable, noinit
+end
+class ACaretExpr
+ super AExpr
+ var n_expr: AExpr is writable, noinit
+ var n_op: TCaret is writable, noinit
+ var n_expr2: AExpr is writable, noinit
+end
+class AAmpExpr
+ super AExpr
+ var n_expr: AExpr is writable, noinit
+ var n_op: TAmp is writable, noinit
var n_expr2: AExpr is writable, noinit
end
class AUminusExpr
super AExpr
- var n_minus: TMinus is writable, noinit
+ var n_op: TMinus is writable, noinit
+ var n_expr: AExpr is writable, noinit
+end
+class AUplusExpr
+ super AExpr
+ var n_op: TPlus is writable, noinit
+ var n_expr: AExpr is writable, noinit
+end
+class AUtildeExpr
+ super AExpr
+ var n_op: TTilde is writable, noinit
var n_expr: AExpr is writable, noinit
end
class ANewExpr
end
class APlusAssignOp
super AAssignOp
- var n_pluseq: TPluseq is writable, noinit
+ var n_op: TPluseq is writable, noinit
end
class AMinusAssignOp
super AAssignOp
- var n_minuseq: TMinuseq is writable, noinit
+ var n_op: TMinuseq is writable, noinit
+end
+class AStarAssignOp
+ super AAssignOp
+ var n_op: TStareq is writable, noinit
+end
+class ASlashAssignOp
+ super AAssignOp
+ var n_op: TSlasheq is writable, noinit
+end
+class APercentAssignOp
+ super AAssignOp
+ var n_op: TPercenteq is writable, noinit
+end
+class AStarstarAssignOp
+ super AAssignOp
+ var n_op: TStarstareq is writable, noinit
+end
+class APipeAssignOp
+ super AAssignOp
+ var n_op: TPipeeq is writable, noinit
+end
+class ACaretAssignOp
+ super AAssignOp
+ var n_op: TCareteq is writable, noinit
+end
+class AAmpAssignOp
+ super AAssignOp
+ var n_op: TAmpeq is writable, noinit
+end
+class ALlAssignOp
+ super AAssignOp
+ var n_op: TLleq is writable, noinit
+end
+class AGgAssignOp
+ super AAssignOp
+ var n_op: TGgeq is writable, noinit
end
class AModuleName
super AModuleName
super TokenKeyword
end
+# The keyword `with`
+class TKwwith
+ super TokenKeyword
+end
+
# The special keyword `__DEBUG__`
class TKwdebug
super Token
super TokenOperator
end
+# The operator `*=`
+class TStareq
+ super TokenOperator
+end
+
+# The operator `/=`
+class TSlasheq
+ super TokenOperator
+end
+
+# The operator `%=`
+class TPercenteq
+ super TokenOperator
+end
+
+# The operator `**=`
+class TStarstareq
+ super TokenOperator
+end
+
+# The operator `|=`
+class TPipeeq
+ super TokenOperator
+end
+
+# The operator `^=`
+class TCareteq
+ super TokenOperator
+end
+
+# The operator `&=`
+class TAmpeq
+ super TokenOperator
+end
+
+# The operator `<<=`
+class TLleq
+ super TokenOperator
+end
+
+# The operator `>>=`
+class TGgeq
+ super TokenOperator
+end
+
# The symbol `...`
class TDotdotdot
super Token
super TokenOperator
end
-# The operator `+%
+# The operator `%`
class TPercent
super TokenOperator
end
+# The operator `|`
+class TPipe
+ super TokenOperator
+end
+
+# The operator `^`
+class TCaret
+ super TokenOperator
+end
+
+# The operator `&`
+class TAmp
+ super TokenOperator
+end
+
+# The operator `~`
+class TTilde
+ super TokenOperator
+end
+
# The operator `==`
class TEq
super TokenOperator
var n_id: TId is writable, noinit
end
-# A method name `+`
-class APlusMethid
+# A method name for an operator
+class AOperatorMethid
super AMethid
- # The `+` symbol
- var n_plus: TPlus is writable, noinit
+ # The associated operator symbol
+ var n_op: Token is writable, noinit
+end
+# A method name `+`
+class APlusMethid
+ super AOperatorMethid
end
# A method name `-`
class AMinusMethid
- super AMethid
-
- # The `-` symbol
- var n_minus: TMinus is writable, noinit
+ super AOperatorMethid
end
# A method name `*`
class AStarMethid
- super AMethid
-
- # The `*` symbol
- var n_star: TStar is writable, noinit
+ super AOperatorMethid
end
# A method name `**`
class AStarstarMethid
- super AMethid
-
- # The `**` symbol
- var n_starstar: TStarstar is writable, noinit
+ super AOperatorMethid
end
# A method name `/`
class ASlashMethid
- super AMethid
-
- # The `/` symbol
- var n_slash: TSlash is writable, noinit
+ super AOperatorMethid
end
# A method name `%`
class APercentMethid
- super AMethid
+ super AOperatorMethid
+end
+
+# A method name `|`
+class APipeMethid
+ super AOperatorMethid
+end
+
+# A method name `^`
+class ACaretMethid
+ super AOperatorMethid
+end
+
+# A method name `&`
+class AAmpMethid
+ super AOperatorMethid
+end
- # The `%` symbol
- var n_percent: TPercent is writable, noinit
+# A method name `~`
+class ATildeMethid
+ super AOperatorMethid
end
# A method name `==`
class AEqMethid
- super AMethid
-
- # The `==` symbol
- var n_eq: TEq is writable, noinit
+ super AOperatorMethid
end
# A method name `!=`
class ANeMethid
- super AMethid
-
- # The `!=` symbol
- var n_ne: TNe is writable, noinit
+ super AOperatorMethid
end
# A method name `<=`
class ALeMethid
- super AMethid
-
- # The `<=` symbol
- var n_le: TLe is writable, noinit
+ super AOperatorMethid
end
# A method name `>=`
class AGeMethid
- super AMethid
-
- # The `>=` symbol
- var n_ge: TGe is writable, noinit
+ super AOperatorMethid
end
# A method name `<`
class ALtMethid
- super AMethid
-
- # The `<` symbol
- var n_lt: TLt is writable, noinit
+ super AOperatorMethid
end
# A method name `>`
class AGtMethid
- super AMethid
-
- # The `>` symbol
- var n_gt: TGt is writable, noinit
+ super AOperatorMethid
end
# A method name `<<`
class ALlMethid
- super AMethid
-
- # The `<<` symbol
- var n_ll: TLl is writable, noinit
+ super AOperatorMethid
end
# A method name `>>`
class AGgMethid
- super AMethid
+ super AOperatorMethid
+end
- # The `>>` symbol
- var n_gg: TGg is writable, noinit
+# A method name `<=>`
+class AStarshipMethid
+ super AOperatorMethid
end
# A method name `[]`
var n_cbra: TCbra is writable, noinit
end
-# A method name `<=>`
-class AStarshipMethid
- super AMethid
-
- # The `<=>` symbol
- var n_starship: TStarship is writable, noinit
-end
-
# A setter method name with a simple identifier (with a `=`)
class AAssignMethid
super AMethid
super AExpr
# The `var` keyword
- var n_kwvar: TKwvar is writable, noinit
+ var n_kwvar: nullable TKwvar = null is writable
# The name of the local variable
var n_id: TId is writable, noinit
var n_block: nullable AExpr = null is writable
end
+# A `with` statement
+class AWithExpr
+ super AExpr
+ super ALabelable
+
+ # The `with` keyword
+ var n_kwwith: TKwwith is writable, noinit
+
+ # The expression used to get the value to control
+ var n_expr: AExpr is writable, noinit
+
+ # The `do` keyword
+ var n_kwdo: TKwdo is writable, noinit
+
+ # The body of the loop
+ var n_block: nullable AExpr = null is writable
+end
+
# An `assert` statement
class AAssertExpr
super AExpr
# A binary operation on a method
abstract class ABinopExpr
super ASendExpr
+
+ # The operator
+ var n_op: Token is writable, noinit
+
# The second operand of the operation
# Note: the receiver (`n_expr`) is the first operand
var n_expr2: AExpr is writable, noinit
+
+ # The name of the operator (eg '+')
+ fun operator: String is abstract
end
# Something that is boolean expression
# The first boolean operand
var n_expr: AExpr is writable, noinit
+ # The operator
+ var n_op: Token is writable, noinit
+
# The second boolean operand
var n_expr2: AExpr is writable, noinit
end
# A `or else` expression
class AOrElseExpr
super ABinBoolExpr
+
+ # The `else` keyword
+ var n_kwelse: TKwelse is writable, noinit
end
# A `implies` expression
# A `==` expression
class AEqExpr
super ABinopExpr
+ redef fun operator do return "=="
end
# A `!=` expression
class ANeExpr
super ABinopExpr
+ redef fun operator do return "!="
end
# A `<` expression
class ALtExpr
super ABinopExpr
+ redef fun operator do return "<"
end
# A `<=` expression
class ALeExpr
super ABinopExpr
+ redef fun operator do return "<="
end
# A `<<` expression
class ALlExpr
super ABinopExpr
+ redef fun operator do return "<<"
end
# A `>` expression
class AGtExpr
super ABinopExpr
+ redef fun operator do return ">"
end
# A `>=` expression
class AGeExpr
super ABinopExpr
+ redef fun operator do return ">="
end
# A `>>` expression
class AGgExpr
super ABinopExpr
+ redef fun operator do return ">>"
end
# A type-ckeck expression. eg `x isa T`
# The expression to check
var n_expr: AExpr is writable, noinit
+ # The `isa` keyword
+ var n_kwisa: TKwisa is writable, noinit
+
# The destination type to check to
var n_type: AType is writable, noinit
end
# A `+` expression
class APlusExpr
super ABinopExpr
+ redef fun operator do return "+"
end
# A `-` expression
class AMinusExpr
super ABinopExpr
+ redef fun operator do return "-"
end
# A `<=>` expression
class AStarshipExpr
super ABinopExpr
+ redef fun operator do return "<=>"
end
# A `*` expression
class AStarExpr
super ABinopExpr
+ redef fun operator do return "*"
end
# A `**` expression
class AStarstarExpr
super ABinopExpr
+ redef fun operator do return "**"
end
# A `/` expression
class ASlashExpr
super ABinopExpr
+ redef fun operator do return "/"
end
# A `%` expression
class APercentExpr
super ABinopExpr
+ redef fun operator do return "%"
+end
+
+# A `|` expression
+class APipeExpr
+ super ABinopExpr
+ redef fun operator do return "|"
+end
+
+# A `^` expression
+class ACaretExpr
+ super ABinopExpr
+ redef fun operator do return "^"
+end
+
+# A `&` expression
+class AAmpExpr
+ super ABinopExpr
+ redef fun operator do return "&"
+end
+
+# A unary operation on a method
+class AUnaryopExpr
+ super ASendExpr
+
+ # The operator
+ var n_op: Token is writable, noinit
+
+ # The name of the operator (eg '+')
+ fun operator: String is abstract
end
# A unary minus expression. eg `-x`
class AUminusExpr
- super ASendExpr
+ super AUnaryopExpr
+ redef fun operator do return "-"
+end
+
+# A unary plus expression. eg `+x`
+class AUplusExpr
+ super AUnaryopExpr
+ redef fun operator do return "+"
+end
- # The `-` symbol
- var n_minus: TMinus is writable, noinit
+# A unary `~` expression
+class AUtildeExpr
+ super AUnaryopExpr
+ redef fun operator do return "~"
end
# An explicit instantiation. eg `new T`
# A complex assignment operator. (`+=` and `-=`)
abstract class AAssignOp
super Prod
+
+ # The combined assignment operator
+ var n_op: Token is writable, noinit
+
+ # The name of the operator without the `=` (eg '+')
+ fun operator: String is abstract
end
-# The `+=` assignment operation
+# A `+=` assignment operation
class APlusAssignOp
super AAssignOp
- # The `+=` operator
- var n_pluseq: TPluseq is writable, noinit
+ redef fun operator do return "+"
end
-# The `-=` assignment operator
+# A `-=` assignment operation
class AMinusAssignOp
super AAssignOp
- # The `-=` operator
- var n_minuseq: TMinuseq is writable, noinit
+ redef fun operator do return "-"
+end
+
+# A `*=` assignment operation
+class AStarAssignOp
+ super AAssignOp
+
+ redef fun operator do return "*"
+end
+
+# A `/=` assignment operation
+class ASlashAssignOp
+ super AAssignOp
+
+ redef fun operator do return "/"
+end
+
+# A `%=` assignment operation
+class APercentAssignOp
+ super AAssignOp
+
+ redef fun operator do return "%"
+end
+
+# A `**=` assignment operation
+class AStarstarAssignOp
+ super AAssignOp
+
+ redef fun operator do return "**"
+end
+
+# A `|=` assignment operation
+class APipeAssignOp
+ super AAssignOp
+
+ redef fun operator do return "|"
+end
+
+# A `^=` assignment operation
+class ACaretAssignOp
+ super AAssignOp
+
+ redef fun operator do return "^"
+end
+
+# A `&=` assignment operation
+class AAmpAssignOp
+ super AAssignOp
+
+ redef fun operator do return "&"
+end
+
+# A `<<=` assignment operation
+class ALlAssignOp
+ super AAssignOp
+
+ redef fun operator do return "<<"
+end
+
+# A `>>=` assignment operation
+class AGgAssignOp
+ super AAssignOp
+
+ redef fun operator do return ">>"
end
# A possibly fully-qualified module identifier
end
redef class APlusMethid
init init_aplusmethid (
- n_plus: nullable TPlus
+ n_op: nullable TPlus
)
do
- _n_plus = n_plus.as(not null)
- n_plus.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_plus == old_child then
- n_plus = new_child.as(TPlus)
+ if _n_op == old_child then
+ n_op = new_child.as(TPlus)
return
end
end
- redef fun n_plus=(node)
+ redef fun n_op=(node)
do
- _n_plus = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_plus)
+ v.enter_visit(_n_op)
end
end
redef class AMinusMethid
init init_aminusmethid (
- n_minus: nullable TMinus
+ n_op: nullable TMinus
)
do
- _n_minus = n_minus.as(not null)
- n_minus.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_minus == old_child then
- n_minus = new_child.as(TMinus)
+ if _n_op == old_child then
+ n_op = new_child.as(TMinus)
return
end
end
- redef fun n_minus=(node)
+ redef fun n_op=(node)
do
- _n_minus = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_minus)
+ v.enter_visit(_n_op)
end
end
redef class AStarMethid
init init_astarmethid (
- n_star: nullable TStar
+ n_op: nullable TStar
)
do
- _n_star = n_star.as(not null)
- n_star.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_star == old_child then
- n_star = new_child.as(TStar)
+ if _n_op == old_child then
+ n_op = new_child.as(TStar)
return
end
end
- redef fun n_star=(node)
+ redef fun n_op=(node)
do
- _n_star = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_star)
+ v.enter_visit(_n_op)
end
end
redef class AStarstarMethid
init init_astarstarmethid (
- n_starstar: nullable TStarstar
+ n_op: nullable TStarstar
)
do
- _n_starstar = n_starstar.as(not null)
- n_starstar.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_starstar == old_child then
- n_starstar = new_child.as(TStarstar)
+ if _n_op == old_child then
+ n_op = new_child.as(TStarstar)
return
end
end
- redef fun n_starstar=(node)
+ redef fun n_op=(node)
do
- _n_starstar = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_starstar)
+ v.enter_visit(_n_op)
end
end
redef class ASlashMethid
init init_aslashmethid (
- n_slash: nullable TSlash
+ n_op: nullable TSlash
)
do
- _n_slash = n_slash.as(not null)
- n_slash.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_slash == old_child then
- n_slash = new_child.as(TSlash)
+ if _n_op == old_child then
+ n_op = new_child.as(TSlash)
return
end
end
- redef fun n_slash=(node)
+ redef fun n_op=(node)
do
- _n_slash = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_slash)
+ v.enter_visit(_n_op)
end
end
redef class APercentMethid
init init_apercentmethid (
- n_percent: nullable TPercent
+ n_op: nullable TPercent
)
do
- _n_percent = n_percent.as(not null)
- n_percent.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_percent == old_child then
- n_percent = new_child.as(TPercent)
+ if _n_op == old_child then
+ n_op = new_child.as(TPercent)
return
end
end
- redef fun n_percent=(node)
+ redef fun n_op=(node)
do
- _n_percent = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_percent)
+ v.enter_visit(_n_op)
end
end
redef class AEqMethid
init init_aeqmethid (
- n_eq: nullable TEq
+ n_op: nullable TEq
)
do
- _n_eq = n_eq.as(not null)
- n_eq.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_eq == old_child then
- n_eq = new_child.as(TEq)
+ if _n_op == old_child then
+ n_op = new_child.as(TEq)
return
end
end
- redef fun n_eq=(node)
+ redef fun n_op=(node)
do
- _n_eq = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_eq)
+ v.enter_visit(_n_op)
end
end
redef class ANeMethid
init init_anemethid (
- n_ne: nullable TNe
+ n_op: nullable TNe
)
do
- _n_ne = n_ne.as(not null)
- n_ne.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_ne == old_child then
- n_ne = new_child.as(TNe)
+ if _n_op == old_child then
+ n_op = new_child.as(TNe)
return
end
end
- redef fun n_ne=(node)
+ redef fun n_op=(node)
do
- _n_ne = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_ne)
+ v.enter_visit(_n_op)
end
end
redef class ALeMethid
init init_alemethid (
- n_le: nullable TLe
+ n_op: nullable TLe
)
do
- _n_le = n_le.as(not null)
- n_le.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_le == old_child then
- n_le = new_child.as(TLe)
+ if _n_op == old_child then
+ n_op = new_child.as(TLe)
return
end
end
- redef fun n_le=(node)
+ redef fun n_op=(node)
do
- _n_le = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_le)
+ v.enter_visit(_n_op)
end
end
redef class AGeMethid
init init_agemethid (
- n_ge: nullable TGe
+ n_op: nullable TGe
)
do
- _n_ge = n_ge.as(not null)
- n_ge.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_ge == old_child then
- n_ge = new_child.as(TGe)
+ if _n_op == old_child then
+ n_op = new_child.as(TGe)
return
end
end
- redef fun n_ge=(node)
+ redef fun n_op=(node)
do
- _n_ge = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_ge)
+ v.enter_visit(_n_op)
end
end
redef class ALtMethid
init init_altmethid (
- n_lt: nullable TLt
+ n_op: nullable TLt
)
do
- _n_lt = n_lt.as(not null)
- n_lt.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_lt == old_child then
- n_lt = new_child.as(TLt)
+ if _n_op == old_child then
+ n_op = new_child.as(TLt)
return
end
end
- redef fun n_lt=(node)
+ redef fun n_op=(node)
do
- _n_lt = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_lt)
+ v.enter_visit(_n_op)
end
end
redef class AGtMethid
init init_agtmethid (
- n_gt: nullable TGt
+ n_op: nullable TGt
)
do
- _n_gt = n_gt.as(not null)
- n_gt.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_gt == old_child then
- n_gt = new_child.as(TGt)
+ if _n_op == old_child then
+ n_op = new_child.as(TGt)
return
end
end
- redef fun n_gt=(node)
+ redef fun n_op=(node)
do
- _n_gt = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_gt)
+ v.enter_visit(_n_op)
end
end
redef class ALlMethid
init init_allmethid (
- n_ll: nullable TLl
+ n_op: nullable TLl
)
do
- _n_ll = n_ll.as(not null)
- n_ll.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_ll == old_child then
- n_ll = new_child.as(TLl)
+ if _n_op == old_child then
+ n_op = new_child.as(TLl)
return
end
end
- redef fun n_ll=(node)
+ redef fun n_op=(node)
do
- _n_ll = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_ll)
+ v.enter_visit(_n_op)
end
end
redef class AGgMethid
init init_aggmethid (
- n_gg: nullable TGg
+ n_op: nullable TGg
)
do
- _n_gg = n_gg.as(not null)
- n_gg.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_gg == old_child then
- n_gg = new_child.as(TGg)
+ if _n_op == old_child then
+ n_op = new_child.as(TGg)
return
end
end
- redef fun n_gg=(node)
+ redef fun n_op=(node)
do
- _n_gg = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_gg)
+ v.enter_visit(_n_op)
end
end
-redef class ABraMethid
- init init_abramethid (
- n_obra: nullable TObra,
- n_cbra: nullable TCbra
+redef class AStarshipMethid
+ init init_astarshipmethid (
+ n_op: nullable TStarship
)
do
- _n_obra = n_obra.as(not null)
- n_obra.parent = self
- _n_cbra = n_cbra.as(not null)
- n_cbra.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_obra == old_child then
- n_obra = new_child.as(TObra)
+ if _n_op == old_child then
+ n_op = new_child.as(TStarship)
return
end
- if _n_cbra == old_child then
- n_cbra = new_child.as(TCbra)
+ end
+
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_op)
+ end
+end
+redef class APipeMethid
+ init init_apipemethid (
+ n_op: nullable TPipe
+ )
+ do
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_op == old_child then
+ n_op = new_child.as(TPipe)
return
end
end
- redef fun n_obra=(node)
+ redef fun n_op=(node)
do
- _n_obra = node
+ _n_op = node
node.parent = self
end
- redef fun n_cbra=(node)
+
+
+ redef fun visit_all(v: Visitor)
do
- _n_cbra = node
+ v.enter_visit(_n_op)
+ end
+end
+redef class ACaretMethid
+ init init_acaretmethid (
+ n_op: nullable TCaret
+ )
+ do
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_op == old_child then
+ n_op = new_child.as(TCaret)
+ return
+ end
+ end
+
+ redef fun n_op=(node)
+ do
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_obra)
- v.enter_visit(_n_cbra)
+ v.enter_visit(_n_op)
end
end
-redef class AStarshipMethid
- init init_astarshipmethid (
- n_starship: nullable TStarship
+redef class AAmpMethid
+ init init_aampmethid (
+ n_op: nullable TAmp
)
do
- _n_starship = n_starship.as(not null)
- n_starship.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_starship == old_child then
- n_starship = new_child.as(TStarship)
+ if _n_op == old_child then
+ n_op = new_child.as(TAmp)
return
end
end
- redef fun n_starship=(node)
+ redef fun n_op=(node)
do
- _n_starship = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_starship)
+ v.enter_visit(_n_op)
+ end
+end
+redef class ATildeMethid
+ init init_atildemethid (
+ n_op: nullable TTilde
+ )
+ do
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_op == old_child then
+ n_op = new_child.as(TTilde)
+ return
+ end
+ end
+
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_op)
+ end
+end
+redef class ABraMethid
+ init init_abramethid (
+ n_obra: nullable TObra,
+ n_cbra: nullable TCbra
+ )
+ do
+ _n_obra = n_obra.as(not null)
+ n_obra.parent = self
+ _n_cbra = n_cbra.as(not null)
+ n_cbra.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_obra == old_child then
+ n_obra = new_child.as(TObra)
+ return
+ end
+ if _n_cbra == old_child then
+ n_cbra = new_child.as(TCbra)
+ return
+ end
+ end
+
+ redef fun n_obra=(node)
+ do
+ _n_obra = node
+ node.parent = self
+ end
+ redef fun n_cbra=(node)
+ do
+ _n_cbra = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_obra)
+ v.enter_visit(_n_cbra)
end
end
redef class AAssignMethid
n_annotations: nullable AAnnotations
)
do
- _n_kwvar = n_kwvar.as(not null)
- n_kwvar.parent = self
+ _n_kwvar = n_kwvar
+ if n_kwvar != null then n_kwvar.parent = self
_n_id = n_id.as(not null)
n_id.parent = self
_n_type = n_type
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
if _n_kwvar == old_child then
- n_kwvar = new_child.as(TKwvar)
+ n_kwvar = new_child.as(nullable TKwvar)
return
end
if _n_id == old_child then
redef fun n_kwvar=(node)
do
_n_kwvar = node
- node.parent = self
+ if node != null then node.parent = self
end
redef fun n_id=(node)
do
v.enter_visit(_n_label)
end
end
+redef class AWithExpr
+ init init_awithexpr (
+ n_kwwith: nullable TKwwith,
+ n_expr: nullable AExpr,
+ n_kwdo: nullable TKwdo,
+ n_block: nullable AExpr,
+ n_label: nullable ALabel
+ )
+ do
+ _n_kwwith = n_kwwith.as(not null)
+ n_kwwith.parent = self
+ _n_expr = n_expr.as(not null)
+ n_expr.parent = self
+ _n_kwdo = n_kwdo.as(not null)
+ n_kwdo.parent = self
+ _n_block = n_block
+ if n_block != null then n_block.parent = self
+ _n_label = n_label
+ if n_label != null then n_label.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_kwwith == old_child then
+ n_kwwith = new_child.as(TKwwith)
+ return
+ end
+ if _n_expr == old_child then
+ n_expr = new_child.as(AExpr)
+ return
+ end
+ if _n_kwdo == old_child then
+ n_kwdo = new_child.as(TKwdo)
+ return
+ end
+ if _n_block == old_child then
+ n_block = new_child.as(nullable AExpr)
+ return
+ end
+ if _n_label == old_child then
+ n_label = new_child.as(nullable ALabel)
+ return
+ end
+ end
+
+ redef fun n_kwwith=(node)
+ do
+ _n_kwwith = node
+ node.parent = self
+ end
+ redef fun n_expr=(node)
+ do
+ _n_expr = node
+ node.parent = self
+ end
+ redef fun n_kwdo=(node)
+ do
+ _n_kwdo = node
+ node.parent = self
+ end
+ redef fun n_block=(node)
+ do
+ _n_block = node
+ if node != null then node.parent = self
+ end
+ redef fun n_label=(node)
+ do
+ _n_label = node
+ if node != null then node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_kwwith)
+ v.enter_visit(_n_expr)
+ v.enter_visit(_n_kwdo)
+ v.enter_visit(_n_block)
+ v.enter_visit(_n_label)
+ end
+end
redef class AAssertExpr
init init_aassertexpr (
n_kwassert: nullable TKwassert,
redef class AOrExpr
init init_aorexpr (
n_expr: nullable AExpr,
+ n_op: nullable TKwor,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TKwor)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
redef class AAndExpr
init init_aandexpr (
n_expr: nullable AExpr,
+ n_op: nullable TKwand,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TKwand)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
redef class AOrElseExpr
init init_aorelseexpr (
n_expr: nullable AExpr,
+ n_op: nullable TKwor,
+ n_kwelse: nullable TKwelse,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ _n_kwelse = n_kwelse.as(not null)
+ n_kwelse.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TKwor)
+ return
+ end
+ if _n_kwelse == old_child then
+ n_kwelse = new_child.as(TKwelse)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+ redef fun n_kwelse=(node)
+ do
+ _n_kwelse = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
+ v.enter_visit(_n_kwelse)
v.enter_visit(_n_expr2)
end
end
redef class AImpliesExpr
init init_aimpliesexpr (
n_expr: nullable AExpr,
+ n_op: nullable TKwimplies,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TKwimplies)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
redef class AEqExpr
init init_aeqexpr (
n_expr: nullable AExpr,
+ n_op: nullable TEq,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TEq)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
redef class ANeExpr
init init_aneexpr (
n_expr: nullable AExpr,
+ n_op: nullable TNe,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TNe)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
redef class ALtExpr
init init_altexpr (
n_expr: nullable AExpr,
+ n_op: nullable TLt,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TLt)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
redef class ALeExpr
init init_aleexpr (
n_expr: nullable AExpr,
+ n_op: nullable TLe,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TLe)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
redef class ALlExpr
init init_allexpr (
n_expr: nullable AExpr,
+ n_op: nullable TLl,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TLl)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
redef class AGtExpr
init init_agtexpr (
n_expr: nullable AExpr,
+ n_op: nullable TGt,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TGt)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
redef class AGeExpr
init init_ageexpr (
n_expr: nullable AExpr,
+ n_op: nullable TGe,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TGe)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
redef class AGgExpr
init init_aggexpr (
n_expr: nullable AExpr,
+ n_op: nullable TGg,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TGg)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
redef class AIsaExpr
init init_aisaexpr (
n_expr: nullable AExpr,
+ n_kwisa: nullable TKwisa,
n_type: nullable AType
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_kwisa = n_kwisa.as(not null)
+ n_kwisa.parent = self
_n_type = n_type.as(not null)
n_type.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_kwisa == old_child then
+ n_kwisa = new_child.as(TKwisa)
+ return
+ end
if _n_type == old_child then
n_type = new_child.as(AType)
return
_n_expr = node
node.parent = self
end
+ redef fun n_kwisa=(node)
+ do
+ _n_kwisa = node
+ node.parent = self
+ end
redef fun n_type=(node)
do
_n_type = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
- v.enter_visit(_n_type)
+ v.enter_visit(_n_kwisa)
+ v.enter_visit(_n_type)
+ end
+end
+redef class APlusExpr
+ init init_aplusexpr (
+ n_expr: nullable AExpr,
+ n_op: nullable TPlus,
+ n_expr2: nullable AExpr
+ )
+ do
+ _n_expr = n_expr.as(not null)
+ n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ _n_expr2 = n_expr2.as(not null)
+ n_expr2.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_expr == old_child then
+ n_expr = new_child.as(AExpr)
+ return
+ end
+ if _n_op == old_child then
+ n_op = new_child.as(TPlus)
+ return
+ end
+ if _n_expr2 == old_child then
+ n_expr2 = new_child.as(AExpr)
+ return
+ end
+ end
+
+ redef fun n_expr=(node)
+ do
+ _n_expr = node
+ node.parent = self
+ end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+ redef fun n_expr2=(node)
+ do
+ _n_expr2 = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
+ v.enter_visit(_n_expr2)
+ end
+end
+redef class AMinusExpr
+ init init_aminusexpr (
+ n_expr: nullable AExpr,
+ n_op: nullable TMinus,
+ n_expr2: nullable AExpr
+ )
+ do
+ _n_expr = n_expr.as(not null)
+ n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ _n_expr2 = n_expr2.as(not null)
+ n_expr2.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_expr == old_child then
+ n_expr = new_child.as(AExpr)
+ return
+ end
+ if _n_op == old_child then
+ n_op = new_child.as(TMinus)
+ return
+ end
+ if _n_expr2 == old_child then
+ n_expr2 = new_child.as(AExpr)
+ return
+ end
+ end
+
+ redef fun n_expr=(node)
+ do
+ _n_expr = node
+ node.parent = self
+ end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+ redef fun n_expr2=(node)
+ do
+ _n_expr2 = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
+ v.enter_visit(_n_expr2)
+ end
+end
+redef class AStarshipExpr
+ init init_astarshipexpr (
+ n_expr: nullable AExpr,
+ n_op: nullable TStarship,
+ n_expr2: nullable AExpr
+ )
+ do
+ _n_expr = n_expr.as(not null)
+ n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ _n_expr2 = n_expr2.as(not null)
+ n_expr2.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_expr == old_child then
+ n_expr = new_child.as(AExpr)
+ return
+ end
+ if _n_op == old_child then
+ n_op = new_child.as(TStarship)
+ return
+ end
+ if _n_expr2 == old_child then
+ n_expr2 = new_child.as(AExpr)
+ return
+ end
+ end
+
+ redef fun n_expr=(node)
+ do
+ _n_expr = node
+ node.parent = self
+ end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+ redef fun n_expr2=(node)
+ do
+ _n_expr2 = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
+ v.enter_visit(_n_expr2)
+ end
+end
+redef class AStarExpr
+ init init_astarexpr (
+ n_expr: nullable AExpr,
+ n_op: nullable TStar,
+ n_expr2: nullable AExpr
+ )
+ do
+ _n_expr = n_expr.as(not null)
+ n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ _n_expr2 = n_expr2.as(not null)
+ n_expr2.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_expr == old_child then
+ n_expr = new_child.as(AExpr)
+ return
+ end
+ if _n_op == old_child then
+ n_op = new_child.as(TStar)
+ return
+ end
+ if _n_expr2 == old_child then
+ n_expr2 = new_child.as(AExpr)
+ return
+ end
+ end
+
+ redef fun n_expr=(node)
+ do
+ _n_expr = node
+ node.parent = self
+ end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+ redef fun n_expr2=(node)
+ do
+ _n_expr2 = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
+ v.enter_visit(_n_expr2)
+ end
+end
+redef class AStarstarExpr
+ init init_astarstarexpr (
+ n_expr: nullable AExpr,
+ n_op: nullable TStarstar,
+ n_expr2: nullable AExpr
+ )
+ do
+ _n_expr = n_expr.as(not null)
+ n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ _n_expr2 = n_expr2.as(not null)
+ n_expr2.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_expr == old_child then
+ n_expr = new_child.as(AExpr)
+ return
+ end
+ if _n_op == old_child then
+ n_op = new_child.as(TStarstar)
+ return
+ end
+ if _n_expr2 == old_child then
+ n_expr2 = new_child.as(AExpr)
+ return
+ end
+ end
+
+ redef fun n_expr=(node)
+ do
+ _n_expr = node
+ node.parent = self
+ end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+ redef fun n_expr2=(node)
+ do
+ _n_expr2 = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
+ v.enter_visit(_n_expr2)
end
end
-redef class APlusExpr
- init init_aplusexpr (
+redef class ASlashExpr
+ init init_aslashexpr (
n_expr: nullable AExpr,
+ n_op: nullable TSlash,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TSlash)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
-redef class AMinusExpr
- init init_aminusexpr (
+redef class APercentExpr
+ init init_apercentexpr (
n_expr: nullable AExpr,
+ n_op: nullable TPercent,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TPercent)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
-redef class AStarshipExpr
- init init_astarshipexpr (
+redef class APipeExpr
+ init init_apipeexpr (
n_expr: nullable AExpr,
+ n_op: nullable TPipe,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TPipe)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
-redef class AStarExpr
- init init_astarexpr (
+redef class ACaretExpr
+ init init_acaretexpr (
n_expr: nullable AExpr,
+ n_op: nullable TCaret,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TCaret)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
-redef class AStarstarExpr
- init init_astarstarexpr (
+redef class AAmpExpr
+ init init_aampexpr (
n_expr: nullable AExpr,
+ n_op: nullable TAmp,
n_expr2: nullable AExpr
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr2 = n_expr2.as(not null)
n_expr2.parent = self
end
n_expr = new_child.as(AExpr)
return
end
+ if _n_op == old_child then
+ n_op = new_child.as(TAmp)
+ return
+ end
if _n_expr2 == old_child then
n_expr2 = new_child.as(AExpr)
return
_n_expr = node
node.parent = self
end
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
redef fun n_expr2=(node)
do
_n_expr2 = node
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr2)
end
end
-redef class ASlashExpr
- init init_aslashexpr (
- n_expr: nullable AExpr,
- n_expr2: nullable AExpr
+redef class AUminusExpr
+ init init_auminusexpr (
+ n_op: nullable TMinus,
+ n_expr: nullable AExpr
)
do
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr = n_expr.as(not null)
n_expr.parent = self
- _n_expr2 = n_expr2.as(not null)
- n_expr2.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_expr == old_child then
- n_expr = new_child.as(AExpr)
+ if _n_op == old_child then
+ n_op = new_child.as(TMinus)
return
end
- if _n_expr2 == old_child then
- n_expr2 = new_child.as(AExpr)
+ if _n_expr == old_child then
+ n_expr = new_child.as(AExpr)
return
end
end
- redef fun n_expr=(node)
+ redef fun n_op=(node)
do
- _n_expr = node
+ _n_op = node
node.parent = self
end
- redef fun n_expr2=(node)
+ redef fun n_expr=(node)
do
- _n_expr2 = node
+ _n_expr = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
end
end
-redef class APercentExpr
- init init_apercentexpr (
- n_expr: nullable AExpr,
- n_expr2: nullable AExpr
+redef class AUplusExpr
+ init init_auplusexpr (
+ n_op: nullable TPlus,
+ n_expr: nullable AExpr
)
do
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr = n_expr.as(not null)
n_expr.parent = self
- _n_expr2 = n_expr2.as(not null)
- n_expr2.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_expr == old_child then
- n_expr = new_child.as(AExpr)
+ if _n_op == old_child then
+ n_op = new_child.as(TPlus)
return
end
- if _n_expr2 == old_child then
- n_expr2 = new_child.as(AExpr)
+ if _n_expr == old_child then
+ n_expr = new_child.as(AExpr)
return
end
end
- redef fun n_expr=(node)
+ redef fun n_op=(node)
do
- _n_expr = node
+ _n_op = node
node.parent = self
end
- redef fun n_expr2=(node)
+ redef fun n_expr=(node)
do
- _n_expr2 = node
+ _n_expr = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
end
end
-redef class AUminusExpr
- init init_auminusexpr (
- n_minus: nullable TMinus,
+redef class AUtildeExpr
+ init init_autildeexpr (
+ n_op: nullable TTilde,
n_expr: nullable AExpr
)
do
- _n_minus = n_minus.as(not null)
- n_minus.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
_n_expr = n_expr.as(not null)
n_expr.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_minus == old_child then
- n_minus = new_child.as(TMinus)
+ if _n_op == old_child then
+ n_op = new_child.as(TTilde)
return
end
if _n_expr == old_child then
end
end
- redef fun n_minus=(node)
+ redef fun n_op=(node)
do
- _n_minus = node
+ _n_op = node
node.parent = self
end
redef fun n_expr=(node)
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_minus)
+ v.enter_visit(_n_op)
v.enter_visit(_n_expr)
end
end
end
redef class APlusAssignOp
init init_aplusassignop (
- n_pluseq: nullable TPluseq
+ n_op: nullable TPluseq
)
do
- _n_pluseq = n_pluseq.as(not null)
- n_pluseq.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_pluseq == old_child then
- n_pluseq = new_child.as(TPluseq)
+ if _n_op == old_child then
+ n_op = new_child.as(TPluseq)
return
end
end
- redef fun n_pluseq=(node)
+ redef fun n_op=(node)
do
- _n_pluseq = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_pluseq)
+ v.enter_visit(_n_op)
end
end
redef class AMinusAssignOp
init init_aminusassignop (
- n_minuseq: nullable TMinuseq
+ n_op: nullable TMinuseq
+ )
+ do
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_op == old_child then
+ n_op = new_child.as(TMinuseq)
+ return
+ end
+ end
+
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_op)
+ end
+end
+redef class AStarAssignOp
+ init init_astarassignop (
+ n_op: nullable TStareq
+ )
+ do
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_op == old_child then
+ n_op = new_child.as(TStareq)
+ return
+ end
+ end
+
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_op)
+ end
+end
+redef class ASlashAssignOp
+ init init_aslashassignop (
+ n_op: nullable TSlasheq
+ )
+ do
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_op == old_child then
+ n_op = new_child.as(TSlasheq)
+ return
+ end
+ end
+
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_op)
+ end
+end
+redef class APercentAssignOp
+ init init_apercentassignop (
+ n_op: nullable TPercenteq
+ )
+ do
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_op == old_child then
+ n_op = new_child.as(TPercenteq)
+ return
+ end
+ end
+
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_op)
+ end
+end
+redef class AStarstarAssignOp
+ init init_astarstarassignop (
+ n_op: nullable TStarstareq
+ )
+ do
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_op == old_child then
+ n_op = new_child.as(TStarstareq)
+ return
+ end
+ end
+
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_op)
+ end
+end
+redef class APipeAssignOp
+ init init_apipeassignop (
+ n_op: nullable TPipeeq
+ )
+ do
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_op == old_child then
+ n_op = new_child.as(TPipeeq)
+ return
+ end
+ end
+
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_op)
+ end
+end
+redef class ACaretAssignOp
+ init init_acaretassignop (
+ n_op: nullable TCareteq
+ )
+ do
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_op == old_child then
+ n_op = new_child.as(TCareteq)
+ return
+ end
+ end
+
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_op)
+ end
+end
+redef class AAmpAssignOp
+ init init_aampassignop (
+ n_op: nullable TAmpeq
+ )
+ do
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_op == old_child then
+ n_op = new_child.as(TAmpeq)
+ return
+ end
+ end
+
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_op)
+ end
+end
+redef class ALlAssignOp
+ init init_allassignop (
+ n_op: nullable TLleq
+ )
+ do
+ _n_op = n_op.as(not null)
+ n_op.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_op == old_child then
+ n_op = new_child.as(TLleq)
+ return
+ end
+ end
+
+ redef fun n_op=(node)
+ do
+ _n_op = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_op)
+ end
+end
+redef class AGgAssignOp
+ init init_aggassignop (
+ n_op: nullable TGgeq
)
do
- _n_minuseq = n_minuseq.as(not null)
- n_minuseq.parent = self
+ _n_op = n_op.as(not null)
+ n_op.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_minuseq == old_child then
- n_minuseq = new_child.as(TMinuseq)
+ if _n_op == old_child then
+ n_op = new_child.as(TGgeq)
return
end
end
- redef fun n_minuseq=(node)
+ redef fun n_op=(node)
do
- _n_minuseq = node
+ _n_op = node
node.parent = self
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_minuseq)
+ v.enter_visit(_n_op)
end
end
redef class AModuleName
else if action_type == 3 then # ERROR
# skip injected tokens
while not isset token._location do token = lexer.next
- var node2 = new AParserError.init_parser_error("Syntax error: unexpected {token}.", token.location, token)
+ var node2 = new AParserError.init_parser_error("Syntax Error: unexpected {token}.", token.location, token)
var node = new Start(null, node2)
return node
end
var endl = _last_location
assert endl != null
- n.location = new Location(startl.file, startl.line_start, endl.line_end, startl.column_start, endl.column_end)
+ if startl == endl then
+ n.location = startl
+ else
+ n.location = new Location(startl.file, startl.line_start, endl.line_end, startl.column_start, endl.column_end)
+ end
if not _need_after_epsilons.is_empty then
var loc = new Location(endl.file, endl.line_end, endl.line_end, endl.column_end, endl.column_end)
#include "tables_nit.h"
static const int lexer_goto_row1[] = {
- 52,
+ 56,
9, 9, 1,
10, 10, 2,
13, 13, 3,
34, 34, 6,
35, 35, 7,
37, 37, 8,
- 39, 39, 9,
- 40, 40, 10,
- 41, 41, 11,
- 42, 42, 12,
- 43, 43, 13,
- 44, 44, 14,
- 45, 45, 15,
- 46, 46, 16,
- 47, 47, 17,
- 48, 48, 18,
- 49, 57, 19,
- 58, 58, 20,
- 60, 60, 21,
- 61, 61, 22,
- 62, 62, 23,
- 64, 64, 24,
- 65, 90, 25,
- 91, 91, 26,
- 93, 93, 27,
- 95, 95, 28,
- 96, 96, 29,
- 97, 97, 30,
- 98, 98, 31,
- 99, 99, 32,
- 100, 100, 33,
- 101, 101, 34,
- 102, 102, 35,
- 103, 104, 36,
- 105, 105, 37,
- 106, 107, 36,
- 108, 108, 38,
- 109, 109, 39,
- 110, 110, 40,
- 111, 111, 41,
- 112, 112, 42,
- 113, 113, 36,
- 114, 114, 43,
- 115, 115, 44,
- 116, 116, 45,
- 117, 117, 46,
- 118, 118, 47,
- 119, 119, 48,
- 120, 122, 36,
- 125, 125, 49
+ 38, 38, 9,
+ 39, 39, 10,
+ 40, 40, 11,
+ 41, 41, 12,
+ 42, 42, 13,
+ 43, 43, 14,
+ 44, 44, 15,
+ 45, 45, 16,
+ 46, 46, 17,
+ 47, 47, 18,
+ 48, 48, 19,
+ 49, 57, 20,
+ 58, 58, 21,
+ 60, 60, 22,
+ 61, 61, 23,
+ 62, 62, 24,
+ 64, 64, 25,
+ 65, 90, 26,
+ 91, 91, 27,
+ 93, 93, 28,
+ 94, 94, 29,
+ 95, 95, 30,
+ 96, 96, 31,
+ 97, 97, 32,
+ 98, 98, 33,
+ 99, 99, 34,
+ 100, 100, 35,
+ 101, 101, 36,
+ 102, 102, 37,
+ 103, 104, 38,
+ 105, 105, 39,
+ 106, 107, 38,
+ 108, 108, 40,
+ 109, 109, 41,
+ 110, 110, 42,
+ 111, 111, 43,
+ 112, 112, 44,
+ 113, 113, 38,
+ 114, 114, 45,
+ 115, 115, 46,
+ 116, 116, 47,
+ 117, 117, 48,
+ 118, 118, 49,
+ 119, 119, 50,
+ 120, 122, 38,
+ 124, 124, 51,
+ 125, 125, 52,
+ 126, 126, 53
};
static const int lexer_goto_row2[] = {
2,
};
static const int lexer_goto_row4[] = {
1,
- 10, 10, 50
+ 10, 10, 54
};
static const int lexer_goto_row5[] = {
1,
};
static const int lexer_goto_row6[] = {
1,
- 61, 61, 51
+ 61, 61, 55
};
static const int lexer_goto_row7[] = {
9,
- 0, 9, 52,
- 11, 12, 52,
- 14, 33, 52,
- 34, 34, 53,
- 35, 91, 52,
- 92, 92, 54,
- 93, 122, 52,
- 123, 123, 55,
- 124, 255, 52
+ 0, 9, 56,
+ 11, 12, 56,
+ 14, 33, 56,
+ 34, 34, 57,
+ 35, 91, 56,
+ 92, 92, 58,
+ 93, 122, 56,
+ 123, 123, 59,
+ 124, 255, 56
};
static const int lexer_goto_row8[] = {
5,
- 0, 9, 56,
- 10, 10, 57,
- 11, 12, 56,
- 13, 13, 58,
- 14, 255, 56
+ 0, 9, 60,
+ 10, 10, 61,
+ 11, 12, 60,
+ 13, 13, 62,
+ 14, 255, 60
};
-static const int lexer_goto_row10[] = {
- 7,
- 0, 9, 59,
- 11, 12, 59,
- 14, 38, 59,
- 39, 39, 60,
- 40, 91, 59,
- 92, 92, 61,
- 93, 255, 59
+static const int lexer_goto_row9[] = {
+ 1,
+ 61, 61, 63
};
-static const int lexer_goto_row13[] = {
+static const int lexer_goto_row10[] = {
1,
- 42, 42, 62
+ 61, 61, 64
+};
+static const int lexer_goto_row11[] = {
+ 7,
+ 0, 9, 65,
+ 11, 12, 65,
+ 14, 38, 65,
+ 39, 39, 66,
+ 40, 91, 65,
+ 92, 92, 67,
+ 93, 255, 65
};
static const int lexer_goto_row14[] = {
- 1,
- 61, 61, 63
+ 2,
+ 42, 42, 68,
+ 61, 61, 69
};
-static const int lexer_goto_row16[] = {
+static const int lexer_goto_row15[] = {
1,
- 61, 61, 64
+ 61, 61, 70
};
static const int lexer_goto_row17[] = {
+ 1,
+ 61, 61, 71
+};
+static const int lexer_goto_row18[] = {
2,
- 46, 46, 65,
- 48, 57, 66
+ 46, 46, 72,
+ 48, 57, 73
};
static const int lexer_goto_row19[] = {
- 4,
- 46, 46, 67,
- 48, 57, 19,
- 88, 88, 68,
- 120, 120, 69
+ 1,
+ 61, 61, 74
};
static const int lexer_goto_row20[] = {
- 1,
- 46, 57, -20
+ 4,
+ 46, 46, 75,
+ 48, 57, 20,
+ 88, 88, 76,
+ 120, 120, 77
};
static const int lexer_goto_row21[] = {
1,
- 58, 58, 70
+ 46, 57, -21
};
static const int lexer_goto_row22[] = {
- 2,
- 60, 60, 71,
- 61, 61, 72
+ 1,
+ 58, 58, 78
};
static const int lexer_goto_row23[] = {
- 1,
- 61, 61, 73
+ 2,
+ 60, 60, 79,
+ 61, 61, 80
};
static const int lexer_goto_row24[] = {
+ 1,
+ 61, 61, 81
+};
+static const int lexer_goto_row25[] = {
2,
- 61, 61, 74,
- 62, 62, 75
+ 61, 61, 82,
+ 62, 62, 83
};
-static const int lexer_goto_row26[] = {
+static const int lexer_goto_row27[] = {
4,
- 48, 57, 76,
- 65, 90, 77,
- 95, 95, 78,
- 97, 122, 79
-};
-static const int lexer_goto_row29[] = {
- 2,
- 95, 95, 80,
- 97, 122, 81
+ 48, 57, 84,
+ 65, 90, 85,
+ 95, 95, 86,
+ 97, 122, 87
};
static const int lexer_goto_row30[] = {
1,
- 123, 123, 82
+ 61, 61, 88
};
static const int lexer_goto_row31[] = {
- 10,
- 48, 57, 83,
- 65, 90, 84,
- 95, 95, 85,
- 97, 97, 86,
- 98, 98, 87,
- 99, 109, 86,
- 110, 110, 88,
- 111, 114, 86,
- 115, 115, 89,
- 116, 122, 86
+ 2,
+ 95, 95, 89,
+ 97, 122, 90
};
static const int lexer_goto_row32[] = {
- 4,
- 48, 95, -32,
- 97, 113, 86,
- 114, 114, 90,
- 115, 122, 86
+ 1,
+ 123, 123, 91
};
static const int lexer_goto_row33[] = {
- 6,
- 48, 95, -32,
- 97, 107, 86,
- 108, 108, 91,
- 109, 110, 86,
- 111, 111, 92,
- 112, 122, 86
+ 10,
+ 48, 57, 92,
+ 65, 90, 93,
+ 95, 95, 94,
+ 97, 97, 95,
+ 98, 98, 96,
+ 99, 109, 95,
+ 110, 110, 97,
+ 111, 114, 95,
+ 115, 115, 98,
+ 116, 122, 95
};
static const int lexer_goto_row34[] = {
4,
- 48, 95, -32,
- 97, 110, 86,
- 111, 111, 93,
- 112, 122, 86
+ 48, 95, -34,
+ 97, 113, 95,
+ 114, 114, 99,
+ 115, 122, 95
};
static const int lexer_goto_row35[] = {
- 7,
- 48, 107, -34,
- 108, 108, 94,
- 109, 109, 86,
- 110, 110, 95,
- 111, 119, 86,
- 120, 120, 96,
- 121, 122, 86
+ 6,
+ 48, 95, -34,
+ 97, 107, 95,
+ 108, 108, 100,
+ 109, 110, 95,
+ 111, 111, 101,
+ 112, 122, 95
};
static const int lexer_goto_row36[] = {
- 7,
- 48, 95, -32,
- 97, 97, 97,
- 98, 110, 86,
- 111, 111, 98,
- 112, 116, 86,
- 117, 117, 99,
- 118, 122, 86
+ 4,
+ 48, 95, -34,
+ 97, 110, 95,
+ 111, 111, 102,
+ 112, 122, 95
};
static const int lexer_goto_row37[] = {
- 2,
- 48, 95, -32,
- 97, 122, 86
+ 7,
+ 48, 107, -36,
+ 108, 108, 103,
+ 109, 109, 95,
+ 110, 110, 104,
+ 111, 119, 95,
+ 120, 120, 105,
+ 121, 122, 95
};
static const int lexer_goto_row38[] = {
- 9,
- 48, 95, -32,
- 97, 101, 86,
- 102, 102, 100,
- 103, 108, 86,
- 109, 109, 101,
- 110, 110, 102,
- 111, 114, 86,
- 115, 115, 103,
- 116, 122, 86
+ 7,
+ 48, 95, -34,
+ 97, 97, 106,
+ 98, 110, 95,
+ 111, 111, 107,
+ 112, 116, 95,
+ 117, 117, 108,
+ 118, 122, 95
};
static const int lexer_goto_row39[] = {
- 5,
- 48, 95, -32,
- 97, 97, 104,
- 98, 110, 86,
- 111, 111, 105,
- 112, 122, 86
+ 2,
+ 48, 95, -34,
+ 97, 122, 95
};
static const int lexer_goto_row40[] = {
- 3,
- 48, 110, -35,
- 111, 111, 106,
- 112, 122, 86
+ 9,
+ 48, 95, -34,
+ 97, 101, 95,
+ 102, 102, 109,
+ 103, 108, 95,
+ 109, 109, 110,
+ 110, 110, 111,
+ 111, 114, 95,
+ 115, 115, 112,
+ 116, 122, 95
};
static const int lexer_goto_row41[] = {
- 8,
- 48, 95, -32,
- 97, 100, 86,
- 101, 101, 107,
- 102, 110, 86,
- 111, 111, 108,
- 112, 116, 86,
- 117, 117, 109,
- 118, 122, 86
+ 5,
+ 48, 95, -34,
+ 97, 97, 113,
+ 98, 110, 95,
+ 111, 111, 114,
+ 112, 122, 95
};
static const int lexer_goto_row42[] = {
- 6,
- 48, 95, -32,
- 97, 109, 86,
- 110, 110, 110,
- 111, 113, 86,
- 114, 114, 111,
- 115, 122, 86
+ 3,
+ 48, 110, -37,
+ 111, 111, 115,
+ 112, 122, 95
};
static const int lexer_goto_row43[] = {
- 7,
- 48, 95, -32,
- 97, 97, 112,
- 98, 113, 86,
- 114, 114, 113,
- 115, 116, 86,
- 117, 117, 114,
- 118, 122, 86
+ 8,
+ 48, 95, -34,
+ 97, 100, 95,
+ 101, 101, 116,
+ 102, 110, 95,
+ 111, 111, 117,
+ 112, 116, 95,
+ 117, 117, 118,
+ 118, 122, 95
};
static const int lexer_goto_row44[] = {
- 3,
- 48, 100, -42,
- 101, 101, 115,
- 102, 122, 86
+ 6,
+ 48, 95, -34,
+ 97, 109, 95,
+ 110, 110, 119,
+ 111, 113, 95,
+ 114, 114, 120,
+ 115, 122, 95
};
static const int lexer_goto_row45[] = {
- 5,
- 48, 100, -42,
- 101, 101, 116,
- 102, 116, 86,
- 117, 117, 117,
- 118, 122, 86
+ 7,
+ 48, 95, -34,
+ 97, 97, 121,
+ 98, 113, 95,
+ 114, 114, 122,
+ 115, 116, 95,
+ 117, 117, 123,
+ 118, 122, 95
};
static const int lexer_goto_row46[] = {
- 8,
- 48, 95, -32,
- 97, 103, 86,
- 104, 104, 118,
- 105, 113, 86,
- 114, 114, 119,
- 115, 120, 86,
- 121, 121, 120,
- 122, 122, 86
+ 3,
+ 48, 100, -44,
+ 101, 101, 124,
+ 102, 122, 95
};
static const int lexer_goto_row47[] = {
- 3,
- 48, 109, -43,
- 110, 110, 121,
- 111, 122, 86
+ 5,
+ 48, 100, -44,
+ 101, 101, 125,
+ 102, 116, 95,
+ 117, 117, 126,
+ 118, 122, 95
};
static const int lexer_goto_row48[] = {
- 3,
- 48, 95, -32,
- 97, 97, 122,
- 98, 122, 86
+ 8,
+ 48, 95, -34,
+ 97, 103, 95,
+ 104, 104, 127,
+ 105, 113, 95,
+ 114, 114, 128,
+ 115, 120, 95,
+ 121, 121, 129,
+ 122, 122, 95
};
static const int lexer_goto_row49[] = {
3,
- 48, 103, -47,
- 104, 104, 123,
- 105, 122, 86
+ 48, 109, -45,
+ 110, 110, 130,
+ 111, 122, 95
};
static const int lexer_goto_row50[] = {
- 11,
- 0, 9, 124,
- 11, 12, 124,
- 14, 33, 124,
- 34, 34, 125,
- 35, 91, 124,
- 92, 92, 126,
- 93, 122, 124,
- 123, 123, 127,
- 124, 124, 124,
- 125, 125, 128,
- 126, 255, 124
+ 3,
+ 48, 95, -34,
+ 97, 97, 131,
+ 98, 122, 95
+};
+static const int lexer_goto_row51[] = {
+ 4,
+ 48, 103, -49,
+ 104, 104, 132,
+ 105, 105, 133,
+ 106, 122, 95
+};
+static const int lexer_goto_row52[] = {
+ 1,
+ 61, 61, 134
};
static const int lexer_goto_row53[] = {
+ 11,
+ 0, 9, 135,
+ 11, 12, 135,
+ 14, 33, 135,
+ 34, 34, 136,
+ 35, 91, 135,
+ 92, 92, 137,
+ 93, 122, 135,
+ 123, 123, 138,
+ 124, 124, 135,
+ 125, 125, 139,
+ 126, 255, 135
+};
+static const int lexer_goto_row57[] = {
3,
0, 33, -8,
- 34, 34, 129,
+ 34, 34, 140,
35, 255, -8
};
-static const int lexer_goto_row54[] = {
+static const int lexer_goto_row58[] = {
1,
- 34, 34, 130
+ 34, 34, 141
};
-static const int lexer_goto_row55[] = {
+static const int lexer_goto_row59[] = {
3,
- 0, 9, 131,
- 11, 12, 131,
- 14, 255, 131
+ 0, 9, 142,
+ 11, 12, 142,
+ 14, 255, 142
};
-static const int lexer_goto_row57[] = {
+static const int lexer_goto_row61[] = {
1,
0, 255, -9
};
-static const int lexer_goto_row59[] = {
- 1,
- 10, 10, 132
-};
-static const int lexer_goto_row60[] = {
+static const int lexer_goto_row63[] = {
1,
- 39, 39, 133
-};
-static const int lexer_goto_row61[] = {
- 1,
- 39, 39, 134
-};
-static const int lexer_goto_row62[] = {
- 3,
- 0, 9, 135,
- 11, 12, 135,
- 14, 255, 135
+ 10, 10, 143
};
static const int lexer_goto_row66[] = {
1,
- 46, 46, 136
+ 39, 39, 144
};
static const int lexer_goto_row67[] = {
1,
- 48, 57, 66
+ 39, 39, 145
};
static const int lexer_goto_row68[] = {
- 1,
- 48, 57, 66
-};
-static const int lexer_goto_row69[] = {
3,
- 48, 57, 137,
- 65, 70, 138,
- 97, 102, 139
+ 0, 9, 146,
+ 11, 12, 146,
+ 14, 255, 146
};
-static const int lexer_goto_row70[] = {
+static const int lexer_goto_row69[] = {
1,
- 48, 102, -70
+ 61, 61, 147
};
static const int lexer_goto_row73[] = {
1,
- 62, 62, 140
+ 46, 46, 148
};
-static const int lexer_goto_row77[] = {
+static const int lexer_goto_row74[] = {
1,
- 48, 122, -27
+ 48, 57, 73
};
-static const int lexer_goto_row78[] = {
+static const int lexer_goto_row76[] = {
1,
- 48, 122, -27
+ 48, 57, 73
+};
+static const int lexer_goto_row77[] = {
+ 3,
+ 48, 57, 149,
+ 65, 70, 150,
+ 97, 102, 151
};
-static const int lexer_goto_row79[] = {
+static const int lexer_goto_row78[] = {
1,
- 48, 122, -27
+ 48, 102, -78
};
static const int lexer_goto_row80[] = {
1,
- 48, 122, -27
+ 61, 61, 152
};
static const int lexer_goto_row81[] = {
1,
- 100, 100, 141
-};
-static const int lexer_goto_row82[] = {
- 4,
- 48, 57, 142,
- 65, 90, 143,
- 95, 95, 144,
- 97, 122, 145
-};
-static const int lexer_goto_row83[] = {
- 5,
- 0, 91, 146,
- 92, 92, 147,
- 93, 95, 146,
- 96, 96, 148,
- 97, 255, 146
+ 62, 62, 153
};
static const int lexer_goto_row84[] = {
1,
- 48, 122, -38
+ 61, 61, 154
};
static const int lexer_goto_row85[] = {
1,
- 48, 122, -38
+ 48, 122, -28
};
static const int lexer_goto_row86[] = {
1,
- 48, 122, -38
+ 48, 122, -28
};
static const int lexer_goto_row87[] = {
1,
- 48, 122, -38
+ 48, 122, -28
};
static const int lexer_goto_row88[] = {
- 5,
- 48, 110, -35,
- 111, 111, 149,
- 112, 114, 86,
- 115, 115, 150,
- 116, 122, 86
-};
-static const int lexer_goto_row89[] = {
- 4,
- 48, 95, -32,
- 97, 99, 86,
- 100, 100, 151,
- 101, 122, 86
+ 1,
+ 48, 122, -28
};
static const int lexer_goto_row90[] = {
- 4,
- 48, 95, -32,
- 97, 114, 86,
- 115, 115, 152,
- 116, 122, 86
+ 1,
+ 100, 100, 155
};
static const int lexer_goto_row91[] = {
- 3,
- 48, 100, -42,
- 101, 101, 153,
- 102, 122, 86
+ 4,
+ 48, 57, 156,
+ 65, 90, 157,
+ 95, 95, 158,
+ 97, 122, 159
};
static const int lexer_goto_row92[] = {
- 3,
- 48, 95, -32,
- 97, 97, 154,
- 98, 122, 86
+ 5,
+ 0, 91, 160,
+ 92, 92, 161,
+ 93, 95, 160,
+ 96, 96, 162,
+ 97, 255, 160
};
static const int lexer_goto_row93[] = {
- 3,
- 48, 109, -43,
- 110, 110, 155,
- 111, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row94[] = {
1,
- 48, 122, -38
+ 48, 122, -40
};
static const int lexer_goto_row95[] = {
- 3,
- 48, 114, -91,
- 115, 115, 156,
- 116, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row96[] = {
- 5,
- 48, 99, -90,
- 100, 100, 157,
- 101, 116, 86,
- 117, 117, 158,
- 118, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row97[] = {
- 4,
- 48, 95, -32,
- 97, 115, 86,
- 116, 116, 159,
- 117, 122, 86
+ 5,
+ 48, 110, -37,
+ 111, 111, 163,
+ 112, 114, 95,
+ 115, 115, 164,
+ 116, 122, 95
};
static const int lexer_goto_row98[] = {
- 3,
- 48, 107, -34,
- 108, 108, 160,
- 109, 122, 86
+ 4,
+ 48, 95, -34,
+ 97, 99, 95,
+ 100, 100, 165,
+ 101, 122, 95
};
static const int lexer_goto_row99[] = {
- 3,
- 48, 113, -33,
- 114, 114, 161,
- 115, 122, 86
+ 4,
+ 48, 95, -34,
+ 97, 114, 95,
+ 115, 115, 166,
+ 116, 122, 95
};
static const int lexer_goto_row100[] = {
3,
- 48, 109, -43,
- 110, 110, 162,
- 111, 122, 86
+ 48, 100, -44,
+ 101, 101, 167,
+ 102, 122, 95
};
static const int lexer_goto_row101[] = {
- 1,
- 48, 122, -38
+ 3,
+ 48, 95, -34,
+ 97, 97, 168,
+ 98, 122, 95
};
static const int lexer_goto_row102[] = {
- 4,
- 48, 95, -32,
- 97, 111, 86,
- 112, 112, 163,
- 113, 122, 86
+ 3,
+ 48, 109, -45,
+ 110, 110, 169,
+ 111, 122, 95
};
static const int lexer_goto_row103[] = {
- 6,
- 48, 95, -32,
- 97, 104, 86,
- 105, 105, 164,
- 106, 115, 86,
- 116, 116, 165,
- 117, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row104[] = {
- 5,
- 48, 95, -32,
- 97, 97, 166,
- 98, 114, 86,
- 115, 115, 167,
- 116, 122, 86
+ 3,
+ 48, 114, -100,
+ 115, 115, 170,
+ 116, 122, 95
};
static const int lexer_goto_row105[] = {
- 3,
- 48, 97, -32,
- 98, 98, 168,
- 99, 122, 86
+ 5,
+ 48, 99, -99,
+ 100, 100, 171,
+ 101, 116, 95,
+ 117, 117, 172,
+ 118, 122, 95
};
static const int lexer_goto_row106[] = {
- 3,
- 48, 110, -35,
- 111, 111, 169,
- 112, 122, 86
+ 4,
+ 48, 95, -34,
+ 97, 115, 95,
+ 116, 116, 173,
+ 117, 122, 95
};
static const int lexer_goto_row107[] = {
3,
- 48, 99, -90,
- 100, 100, 170,
- 101, 122, 86
+ 48, 107, -36,
+ 108, 108, 174,
+ 109, 122, 95
};
static const int lexer_goto_row108[] = {
- 4,
- 48, 95, -32,
- 97, 118, 86,
- 119, 119, 171,
- 120, 122, 86
+ 3,
+ 48, 113, -35,
+ 114, 114, 175,
+ 115, 122, 95
};
static const int lexer_goto_row109[] = {
3,
- 48, 115, -98,
- 116, 116, 172,
- 117, 122, 86
+ 48, 109, -45,
+ 110, 110, 176,
+ 111, 122, 95
};
static const int lexer_goto_row110[] = {
- 3,
- 48, 107, -34,
- 108, 108, 173,
- 109, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row111[] = {
4,
- 48, 95, -32,
- 97, 98, 86,
- 99, 99, 174,
- 100, 122, 86
+ 48, 95, -34,
+ 97, 111, 95,
+ 112, 112, 177,
+ 113, 122, 95
};
static const int lexer_goto_row112[] = {
- 1,
- 48, 122, -38
+ 6,
+ 48, 95, -34,
+ 97, 104, 95,
+ 105, 105, 178,
+ 106, 115, 95,
+ 116, 116, 179,
+ 117, 122, 95
};
static const int lexer_goto_row113[] = {
- 3,
- 48, 98, -112,
- 99, 99, 175,
- 100, 122, 86
+ 5,
+ 48, 95, -34,
+ 97, 97, 180,
+ 98, 114, 95,
+ 115, 115, 181,
+ 116, 122, 95
};
static const int lexer_goto_row114[] = {
- 5,
- 48, 104, -104,
- 105, 105, 176,
- 106, 110, 86,
- 111, 111, 177,
- 112, 122, 86
+ 3,
+ 48, 97, -34,
+ 98, 98, 182,
+ 99, 122, 95
};
static const int lexer_goto_row115[] = {
3,
- 48, 97, -32,
- 98, 98, 178,
- 99, 122, 86
+ 48, 110, -37,
+ 111, 111, 183,
+ 112, 122, 95
};
static const int lexer_goto_row116[] = {
- 5,
- 48, 99, -90,
- 100, 100, 179,
- 101, 115, 86,
- 116, 116, 180,
- 117, 122, 86
+ 3,
+ 48, 99, -99,
+ 100, 100, 184,
+ 101, 122, 95
};
static const int lexer_goto_row117[] = {
- 3,
- 48, 107, -34,
- 108, 108, 181,
- 109, 122, 86
+ 4,
+ 48, 95, -34,
+ 97, 118, 95,
+ 119, 119, 185,
+ 120, 122, 95
};
static const int lexer_goto_row118[] = {
3,
- 48, 111, -103,
- 112, 112, 182,
- 113, 122, 86
+ 48, 115, -107,
+ 116, 116, 186,
+ 117, 122, 95
};
static const int lexer_goto_row119[] = {
3,
- 48, 100, -42,
- 101, 101, 183,
- 102, 122, 86
+ 48, 107, -36,
+ 108, 108, 187,
+ 109, 122, 95
};
static const int lexer_goto_row120[] = {
4,
- 48, 95, -32,
- 97, 116, 86,
- 117, 117, 184,
- 118, 122, 86
+ 48, 95, -34,
+ 97, 98, 95,
+ 99, 99, 188,
+ 100, 122, 95
};
static const int lexer_goto_row121[] = {
- 3,
- 48, 111, -103,
- 112, 112, 185,
- 113, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row122[] = {
3,
- 48, 104, -104,
- 105, 105, 186,
- 106, 122, 86
+ 48, 98, -121,
+ 99, 99, 189,
+ 100, 122, 95
};
static const int lexer_goto_row123[] = {
- 3,
- 48, 113, -33,
- 114, 114, 187,
- 115, 122, 86
+ 5,
+ 48, 104, -113,
+ 105, 105, 190,
+ 106, 110, 95,
+ 111, 111, 191,
+ 112, 122, 95
};
static const int lexer_goto_row124[] = {
3,
- 48, 104, -104,
- 105, 105, 188,
- 106, 122, 86
+ 48, 97, -34,
+ 98, 98, 192,
+ 99, 122, 95
};
static const int lexer_goto_row125[] = {
- 2,
- 0, 123, -51,
- 124, 255, 124
+ 5,
+ 48, 99, -99,
+ 100, 100, 193,
+ 101, 115, 95,
+ 116, 116, 194,
+ 117, 122, 95
+};
+static const int lexer_goto_row126[] = {
+ 3,
+ 48, 107, -36,
+ 108, 108, 195,
+ 109, 122, 95
};
static const int lexer_goto_row127[] = {
3,
- 0, 9, 189,
- 11, 12, 189,
- 14, 255, 189
+ 48, 111, -112,
+ 112, 112, 196,
+ 113, 122, 95
+};
+static const int lexer_goto_row128[] = {
+ 3,
+ 48, 100, -44,
+ 101, 101, 197,
+ 102, 122, 95
};
static const int lexer_goto_row129[] = {
+ 4,
+ 48, 95, -34,
+ 97, 116, 95,
+ 117, 117, 198,
+ 118, 122, 95
+};
+static const int lexer_goto_row130[] = {
3,
- 0, 124, -51,
- 125, 125, 190,
- 126, 255, 124
+ 48, 111, -112,
+ 112, 112, 199,
+ 113, 122, 95
};
static const int lexer_goto_row131[] = {
- 11,
- 0, 9, 191,
- 10, 10, 192,
- 11, 12, 191,
- 13, 13, 193,
- 14, 33, 191,
- 34, 34, 194,
- 35, 91, 191,
- 92, 92, 195,
- 93, 122, 191,
- 123, 123, 196,
- 124, 255, 191
+ 3,
+ 48, 104, -113,
+ 105, 105, 200,
+ 106, 122, 95
};
static const int lexer_goto_row132[] = {
- 1,
- 0, 255, -54
+ 3,
+ 48, 113, -35,
+ 114, 114, 201,
+ 115, 122, 95
};
-static const int lexer_goto_row135[] = {
- 9,
- 0, 9, 197,
- 10, 10, 198,
- 11, 12, 197,
- 13, 13, 199,
- 14, 38, 197,
- 39, 39, 200,
- 40, 91, 197,
- 92, 92, 201,
- 93, 255, 197
+static const int lexer_goto_row133[] = {
+ 3,
+ 48, 104, -113,
+ 105, 105, 202,
+ 106, 122, 95
+};
+static const int lexer_goto_row134[] = {
+ 3,
+ 48, 115, -107,
+ 116, 116, 203,
+ 117, 122, 95
};
static const int lexer_goto_row136[] = {
- 1,
- 39, 39, 202
+ 2,
+ 0, 123, -54,
+ 124, 255, 135
};
static const int lexer_goto_row138[] = {
- 1,
- 48, 102, -70
-};
-static const int lexer_goto_row139[] = {
- 1,
- 48, 102, -70
+ 3,
+ 0, 9, 204,
+ 11, 12, 204,
+ 14, 255, 204
};
static const int lexer_goto_row140[] = {
- 1,
- 48, 102, -70
+ 3,
+ 0, 124, -54,
+ 125, 125, 205,
+ 126, 255, 135
};
static const int lexer_goto_row142[] = {
- 1,
- 101, 101, 203
+ 11,
+ 0, 9, 206,
+ 10, 10, 207,
+ 11, 12, 206,
+ 13, 13, 208,
+ 14, 33, 206,
+ 34, 34, 209,
+ 35, 91, 206,
+ 92, 92, 210,
+ 93, 122, 206,
+ 123, 123, 211,
+ 124, 255, 206
};
static const int lexer_goto_row143[] = {
1,
- 48, 122, -83
-};
-static const int lexer_goto_row144[] = {
- 1,
- 48, 122, -83
-};
-static const int lexer_goto_row145[] = {
- 1,
- 48, 122, -83
+ 0, 255, -58
};
static const int lexer_goto_row146[] = {
- 1,
- 48, 122, -83
+ 9,
+ 0, 9, 212,
+ 10, 10, 213,
+ 11, 12, 212,
+ 13, 13, 214,
+ 14, 38, 212,
+ 39, 39, 215,
+ 40, 91, 212,
+ 92, 92, 216,
+ 93, 255, 212
};
static const int lexer_goto_row147[] = {
1,
- 0, 255, -84
-};
-static const int lexer_goto_row148[] = {
- 1,
- 0, 255, 204
-};
-static const int lexer_goto_row149[] = {
- 3,
- 0, 124, 205,
- 125, 125, 206,
- 126, 255, 205
+ 39, 39, 217
};
static const int lexer_goto_row150[] = {
- 3,
- 48, 113, -33,
- 114, 114, 207,
- 115, 122, 86
+ 1,
+ 48, 102, -78
};
static const int lexer_goto_row151[] = {
- 3,
- 48, 115, -98,
- 116, 116, 208,
- 117, 122, 86
+ 1,
+ 48, 102, -78
};
static const int lexer_goto_row152[] = {
1,
- 48, 122, -38
-};
-static const int lexer_goto_row153[] = {
- 3,
- 48, 100, -42,
- 101, 101, 209,
- 102, 122, 86
-};
-static const int lexer_goto_row154[] = {
- 3,
- 48, 95, -32,
- 97, 97, 210,
- 98, 122, 86
-};
-static const int lexer_goto_row155[] = {
- 3,
- 48, 114, -91,
- 115, 115, 211,
- 116, 122, 86
+ 48, 102, -78
};
static const int lexer_goto_row156[] = {
- 3,
- 48, 115, -98,
- 116, 116, 212,
- 117, 122, 86
+ 1,
+ 101, 101, 218
};
static const int lexer_goto_row157[] = {
- 3,
- 48, 100, -42,
- 101, 101, 213,
- 102, 122, 86
+ 1,
+ 48, 122, -92
};
static const int lexer_goto_row158[] = {
1,
- 48, 122, -38
+ 48, 122, -92
};
static const int lexer_goto_row159[] = {
- 4,
- 48, 95, -32,
- 97, 108, 86,
- 109, 109, 214,
- 110, 122, 86
+ 1,
+ 48, 122, -92
};
static const int lexer_goto_row160[] = {
- 3,
- 48, 100, -42,
- 101, 101, 215,
- 102, 122, 86
+ 1,
+ 48, 122, -92
};
static const int lexer_goto_row161[] = {
- 3,
- 48, 114, -91,
- 115, 115, 216,
- 116, 122, 86
+ 1,
+ 0, 255, -93
};
static const int lexer_goto_row162[] = {
1,
- 48, 122, -38
+ 0, 255, 219
};
static const int lexer_goto_row163[] = {
- 1,
- 48, 122, -38
+ 3,
+ 0, 124, 220,
+ 125, 125, 221,
+ 126, 255, 220
};
static const int lexer_goto_row164[] = {
- 5,
- 48, 107, -34,
- 108, 108, 217,
- 109, 110, 86,
- 111, 111, 218,
- 112, 122, 86
+ 3,
+ 48, 113, -35,
+ 114, 114, 222,
+ 115, 122, 95
};
static const int lexer_goto_row165[] = {
3,
- 48, 115, -98,
- 116, 116, 219,
- 117, 122, 86
+ 48, 115, -107,
+ 116, 116, 223,
+ 117, 122, 95
};
static const int lexer_goto_row166[] = {
- 5,
- 48, 100, -42,
- 101, 101, 220,
- 102, 113, 86,
- 114, 114, 221,
- 115, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row167[] = {
- 1,
- 48, 122, -38
+ 3,
+ 48, 100, -44,
+ 101, 101, 224,
+ 102, 122, 95
};
static const int lexer_goto_row168[] = {
3,
- 48, 100, -42,
- 101, 101, 222,
- 102, 122, 86
+ 48, 95, -34,
+ 97, 97, 225,
+ 98, 122, 95
};
static const int lexer_goto_row169[] = {
3,
- 48, 100, -42,
- 101, 101, 223,
- 102, 122, 86
+ 48, 114, -100,
+ 115, 115, 226,
+ 116, 122, 95
};
static const int lexer_goto_row170[] = {
3,
- 48, 111, -103,
- 112, 112, 224,
- 113, 122, 86
+ 48, 115, -107,
+ 116, 116, 227,
+ 117, 122, 95
};
static const int lexer_goto_row171[] = {
3,
- 48, 116, -121,
- 117, 117, 225,
- 118, 122, 86
+ 48, 100, -44,
+ 101, 101, 228,
+ 102, 122, 95
};
static const int lexer_goto_row172[] = {
1,
- 48, 122, -38
+ 48, 122, -40
};
static const int lexer_goto_row173[] = {
- 1,
- 48, 122, -38
+ 4,
+ 48, 95, -34,
+ 97, 108, 95,
+ 109, 109, 229,
+ 110, 122, 95
};
static const int lexer_goto_row174[] = {
3,
- 48, 107, -34,
- 108, 108, 226,
- 109, 122, 86
+ 48, 100, -44,
+ 101, 101, 230,
+ 102, 122, 95
};
static const int lexer_goto_row175[] = {
3,
- 48, 100, -42,
- 101, 101, 227,
- 102, 122, 86
+ 48, 114, -100,
+ 115, 115, 231,
+ 116, 122, 95
};
static const int lexer_goto_row176[] = {
- 4,
- 48, 95, -32,
- 97, 106, 86,
- 107, 107, 228,
- 108, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row177[] = {
- 4,
- 48, 95, -32,
- 97, 117, 86,
- 118, 118, 229,
- 119, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row178[] = {
- 3,
- 48, 115, -98,
- 116, 116, 230,
- 117, 122, 86
+ 5,
+ 48, 107, -36,
+ 108, 108, 232,
+ 109, 110, 95,
+ 111, 111, 233,
+ 112, 122, 95
};
static const int lexer_goto_row179[] = {
3,
- 48, 107, -34,
- 108, 108, 231,
- 109, 122, 86
+ 48, 115, -107,
+ 116, 116, 234,
+ 117, 122, 95
};
static const int lexer_goto_row180[] = {
- 3,
- 48, 100, -42,
- 101, 101, 232,
- 102, 122, 86
+ 5,
+ 48, 100, -44,
+ 101, 101, 235,
+ 102, 113, 95,
+ 114, 114, 236,
+ 115, 122, 95
};
static const int lexer_goto_row181[] = {
- 3,
- 48, 116, -121,
- 117, 117, 233,
- 118, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row182[] = {
3,
- 48, 101, -39,
- 102, 102, 234,
- 103, 122, 86
+ 48, 100, -44,
+ 101, 101, 237,
+ 102, 122, 95
};
static const int lexer_goto_row183[] = {
3,
- 48, 100, -42,
- 101, 101, 235,
- 102, 122, 86
+ 48, 100, -44,
+ 101, 101, 238,
+ 102, 122, 95
};
static const int lexer_goto_row184[] = {
3,
- 48, 109, -43,
- 110, 110, 236,
- 111, 122, 86
+ 48, 111, -112,
+ 112, 112, 239,
+ 113, 122, 95
};
static const int lexer_goto_row185[] = {
3,
- 48, 100, -42,
- 101, 101, 237,
- 102, 122, 86
+ 48, 116, -130,
+ 117, 117, 240,
+ 118, 122, 95
};
static const int lexer_goto_row186[] = {
- 3,
- 48, 100, -42,
- 101, 101, 238,
- 102, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row187[] = {
- 3,
- 48, 117, -178,
- 118, 118, 239,
- 119, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row188[] = {
- 1,
- 48, 122, -38
+ 3,
+ 48, 107, -36,
+ 108, 108, 241,
+ 109, 122, 95
};
static const int lexer_goto_row189[] = {
3,
- 48, 107, -34,
- 108, 108, 240,
- 109, 122, 86
+ 48, 100, -44,
+ 101, 101, 242,
+ 102, 122, 95
};
static const int lexer_goto_row190[] = {
- 1,
- 0, 255, -126
+ 4,
+ 48, 95, -34,
+ 97, 106, 95,
+ 107, 107, 243,
+ 108, 122, 95
};
static const int lexer_goto_row191[] = {
- 11,
- 0, 9, 241,
- 10, 10, 242,
- 11, 12, 241,
- 13, 13, 243,
- 14, 33, 241,
- 34, 34, 244,
- 35, 91, 241,
- 92, 92, 245,
- 93, 122, 241,
- 123, 123, 246,
- 124, 255, 241
+ 4,
+ 48, 95, -34,
+ 97, 117, 95,
+ 118, 118, 244,
+ 119, 122, 95
};
static const int lexer_goto_row192[] = {
- 1,
- 0, 255, -132
+ 3,
+ 48, 115, -107,
+ 116, 116, 245,
+ 117, 122, 95
};
static const int lexer_goto_row193[] = {
- 1,
- 0, 255, -132
+ 3,
+ 48, 107, -36,
+ 108, 108, 246,
+ 109, 122, 95
};
static const int lexer_goto_row194[] = {
- 1,
- 0, 255, -132
+ 3,
+ 48, 100, -44,
+ 101, 101, 247,
+ 102, 122, 95
};
static const int lexer_goto_row195[] = {
- 5,
- 0, 33, -132,
- 34, 34, 247,
- 35, 122, -132,
- 123, 123, 248,
- 124, 255, 191
+ 3,
+ 48, 116, -130,
+ 117, 117, 248,
+ 118, 122, 95
};
static const int lexer_goto_row196[] = {
3,
- 0, 9, 249,
- 11, 12, 249,
- 14, 255, 249
+ 48, 101, -41,
+ 102, 102, 249,
+ 103, 122, 95
};
static const int lexer_goto_row197[] = {
- 5,
- 0, 33, -132,
- 34, 34, 250,
- 35, 122, -132,
- 123, 123, 251,
- 124, 255, 191
+ 3,
+ 48, 100, -44,
+ 101, 101, 250,
+ 102, 122, 95
};
static const int lexer_goto_row198[] = {
- 1,
- 0, 255, -136
+ 3,
+ 48, 109, -45,
+ 110, 110, 251,
+ 111, 122, 95
};
static const int lexer_goto_row199[] = {
- 1,
- 0, 255, -136
+ 3,
+ 48, 100, -44,
+ 101, 101, 252,
+ 102, 122, 95
};
static const int lexer_goto_row200[] = {
- 1,
- 0, 255, -136
+ 3,
+ 48, 100, -44,
+ 101, 101, 253,
+ 102, 122, 95
};
static const int lexer_goto_row201[] = {
- 9,
- 0, 9, 252,
- 10, 10, 253,
- 11, 12, 252,
- 13, 13, 254,
- 14, 38, 252,
- 39, 39, 255,
- 40, 91, 252,
- 92, 92, 256,
- 93, 255, 252
+ 3,
+ 48, 117, -192,
+ 118, 118, 254,
+ 119, 122, 95
};
static const int lexer_goto_row202[] = {
+ 1,
+ 48, 122, -40
+};
+static const int lexer_goto_row203[] = {
3,
- 0, 9, 257,
- 11, 12, 257,
- 14, 255, 257
+ 48, 107, -36,
+ 108, 108, 255,
+ 109, 122, 95
};
static const int lexer_goto_row204[] = {
- 1,
- 98, 98, 258
+ 3,
+ 48, 103, -49,
+ 104, 104, 256,
+ 105, 122, 95
};
static const int lexer_goto_row205[] = {
1,
- 0, 255, -84
+ 0, 255, -137
};
static const int lexer_goto_row206[] = {
+ 11,
+ 0, 9, 257,
+ 10, 10, 258,
+ 11, 12, 257,
+ 13, 13, 259,
+ 14, 33, 257,
+ 34, 34, 260,
+ 35, 91, 257,
+ 92, 92, 261,
+ 93, 122, 257,
+ 123, 123, 262,
+ 124, 255, 257
+};
+static const int lexer_goto_row207[] = {
1,
- 0, 255, -84
+ 0, 255, -143
};
static const int lexer_goto_row208[] = {
- 3,
- 48, 115, -98,
- 116, 116, 259,
- 117, 122, 86
+ 1,
+ 0, 255, -143
};
static const int lexer_goto_row209[] = {
- 3,
- 48, 113, -33,
- 114, 114, 260,
- 115, 122, 86
+ 1,
+ 0, 255, -143
};
static const int lexer_goto_row210[] = {
- 3,
- 48, 113, -33,
- 114, 114, 261,
- 115, 122, 86
+ 5,
+ 0, 33, -143,
+ 34, 34, 263,
+ 35, 122, -143,
+ 123, 123, 264,
+ 124, 255, 206
};
static const int lexer_goto_row211[] = {
3,
- 48, 106, -177,
- 107, 107, 262,
- 108, 122, 86
+ 0, 9, 265,
+ 11, 12, 265,
+ 14, 255, 265
};
static const int lexer_goto_row212[] = {
- 3,
- 48, 114, -91,
- 115, 115, 263,
- 116, 122, 86
+ 5,
+ 0, 33, -143,
+ 34, 34, 266,
+ 35, 122, -143,
+ 123, 123, 267,
+ 124, 255, 206
};
static const int lexer_goto_row213[] = {
- 3,
- 48, 104, -104,
- 105, 105, 264,
- 106, 122, 86
+ 1,
+ 0, 255, -147
};
static const int lexer_goto_row214[] = {
1,
- 48, 122, -38
+ 0, 255, -147
};
static const int lexer_goto_row215[] = {
1,
- 48, 122, -38
+ 0, 255, -147
};
static const int lexer_goto_row216[] = {
- 3,
- 48, 113, -33,
- 114, 114, 265,
- 115, 122, 86
+ 9,
+ 0, 9, 268,
+ 10, 10, 269,
+ 11, 12, 268,
+ 13, 13, 270,
+ 14, 38, 268,
+ 39, 39, 271,
+ 40, 91, 268,
+ 92, 92, 272,
+ 93, 255, 268
};
static const int lexer_goto_row217[] = {
3,
- 48, 100, -42,
- 101, 101, 266,
- 102, 122, 86
-};
-static const int lexer_goto_row218[] = {
- 3,
- 48, 104, -104,
- 105, 105, 267,
- 106, 122, 86
+ 0, 9, 273,
+ 11, 12, 273,
+ 14, 255, 273
};
static const int lexer_goto_row219[] = {
- 3,
- 48, 113, -33,
- 114, 114, 268,
- 115, 122, 86
+ 1,
+ 98, 98, 274
};
static const int lexer_goto_row220[] = {
1,
- 48, 122, -38
+ 0, 255, -93
};
static const int lexer_goto_row221[] = {
- 3,
- 48, 113, -33,
- 114, 114, 269,
- 115, 122, 86
-};
-static const int lexer_goto_row222[] = {
- 3,
- 48, 116, -121,
- 117, 117, 270,
- 118, 122, 86
+ 1,
+ 0, 255, -93
};
static const int lexer_goto_row223[] = {
3,
- 48, 115, -98,
- 116, 116, 271,
- 117, 122, 86
+ 48, 115, -107,
+ 116, 116, 275,
+ 117, 122, 95
};
static const int lexer_goto_row224[] = {
3,
- 48, 107, -34,
- 108, 108, 272,
- 109, 122, 86
+ 48, 113, -35,
+ 114, 114, 276,
+ 115, 122, 95
};
static const int lexer_goto_row225[] = {
- 1,
- 48, 122, -38
+ 3,
+ 48, 113, -35,
+ 114, 114, 277,
+ 115, 122, 95
};
static const int lexer_goto_row226[] = {
3,
- 48, 107, -34,
- 108, 108, 273,
- 109, 122, 86
+ 48, 106, -191,
+ 107, 107, 278,
+ 108, 122, 95
};
static const int lexer_goto_row227[] = {
3,
- 48, 95, -32,
- 97, 97, 274,
- 98, 122, 86
+ 48, 114, -100,
+ 115, 115, 279,
+ 116, 122, 95
};
static const int lexer_goto_row228[] = {
- 1,
- 48, 122, -38
+ 3,
+ 48, 104, -113,
+ 105, 105, 280,
+ 106, 122, 95
};
static const int lexer_goto_row229[] = {
- 3,
- 48, 95, -32,
- 97, 97, 275,
- 98, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row230[] = {
- 3,
- 48, 95, -32,
- 97, 97, 276,
- 98, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row231[] = {
3,
- 48, 100, -42,
- 101, 101, 277,
- 102, 122, 86
+ 48, 113, -35,
+ 114, 114, 281,
+ 115, 122, 95
};
static const int lexer_goto_row232[] = {
3,
- 48, 104, -104,
- 105, 105, 278,
- 106, 122, 86
+ 48, 100, -44,
+ 101, 101, 282,
+ 102, 122, 95
};
static const int lexer_goto_row233[] = {
3,
- 48, 101, -39,
- 102, 102, 279,
- 103, 122, 86
+ 48, 104, -113,
+ 105, 105, 283,
+ 106, 122, 95
};
static const int lexer_goto_row234[] = {
3,
- 48, 113, -33,
- 114, 114, 280,
- 115, 122, 86
+ 48, 113, -35,
+ 114, 114, 284,
+ 115, 122, 95
};
static const int lexer_goto_row235[] = {
1,
- 48, 122, -38
+ 48, 122, -40
};
static const int lexer_goto_row236[] = {
3,
- 48, 113, -33,
- 114, 114, 281,
- 115, 122, 86
+ 48, 113, -35,
+ 114, 114, 285,
+ 115, 122, 95
};
static const int lexer_goto_row237[] = {
- 1,
- 48, 122, -38
+ 3,
+ 48, 116, -130,
+ 117, 117, 286,
+ 118, 122, 95
};
static const int lexer_goto_row238[] = {
- 1,
- 48, 122, -38
+ 3,
+ 48, 115, -107,
+ 116, 116, 287,
+ 117, 122, 95
};
static const int lexer_goto_row239[] = {
- 1,
- 48, 122, -38
+ 3,
+ 48, 107, -36,
+ 108, 108, 288,
+ 109, 122, 95
};
static const int lexer_goto_row240[] = {
- 3,
- 48, 100, -42,
- 101, 101, 282,
- 102, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row241[] = {
3,
- 48, 100, -42,
- 101, 101, 283,
- 102, 122, 86
+ 48, 107, -36,
+ 108, 108, 289,
+ 109, 122, 95
};
static const int lexer_goto_row242[] = {
- 1,
- 0, 255, -192
+ 3,
+ 48, 95, -34,
+ 97, 97, 290,
+ 98, 122, 95
};
static const int lexer_goto_row243[] = {
- 11,
- 0, 9, 284,
- 10, 10, 242,
- 11, 12, 284,
- 13, 13, 243,
- 14, 33, 284,
- 34, 34, 285,
- 35, 91, 284,
- 92, 92, 286,
- 93, 122, 284,
- 123, 123, 287,
- 124, 255, 284
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row244[] = {
- 1,
- 0, 255, -244
+ 3,
+ 48, 95, -34,
+ 97, 97, 291,
+ 98, 122, 95
};
static const int lexer_goto_row245[] = {
- 5,
- 0, 33, -244,
- 34, 34, 288,
- 35, 122, -244,
- 123, 123, 289,
- 124, 255, 284
+ 3,
+ 48, 95, -34,
+ 97, 97, 292,
+ 98, 122, 95
};
static const int lexer_goto_row246[] = {
3,
- 0, 9, 290,
- 11, 12, 290,
- 14, 255, 290
+ 48, 100, -44,
+ 101, 101, 293,
+ 102, 122, 95
};
static const int lexer_goto_row247[] = {
- 5,
- 0, 33, -244,
- 34, 34, 291,
- 35, 122, -244,
- 123, 123, 292,
- 124, 255, 284
+ 3,
+ 48, 104, -113,
+ 105, 105, 294,
+ 106, 122, 95
};
static const int lexer_goto_row248[] = {
3,
- 0, 33, -132,
- 34, 34, 293,
- 35, 255, -196
+ 48, 101, -41,
+ 102, 102, 295,
+ 103, 122, 95
};
static const int lexer_goto_row249[] = {
3,
- 0, 122, -198,
- 123, 123, 294,
- 124, 255, 191
+ 48, 113, -35,
+ 114, 114, 296,
+ 115, 122, 95
};
static const int lexer_goto_row250[] = {
1,
- 0, 255, -132
+ 48, 122, -40
};
static const int lexer_goto_row251[] = {
3,
- 0, 33, -132,
- 34, 34, 295,
- 35, 255, -196
+ 48, 113, -35,
+ 114, 114, 297,
+ 115, 122, 95
};
static const int lexer_goto_row252[] = {
- 3,
- 0, 122, -198,
- 123, 123, 296,
- 124, 255, 191
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row253[] = {
1,
- 0, 255, -136
+ 48, 122, -40
};
static const int lexer_goto_row254[] = {
1,
- 0, 255, -136
+ 48, 122, -40
};
static const int lexer_goto_row255[] = {
- 1,
- 0, 255, -136
+ 3,
+ 48, 100, -44,
+ 101, 101, 298,
+ 102, 122, 95
};
static const int lexer_goto_row256[] = {
- 9,
- 0, 9, 297,
- 10, 10, 298,
- 11, 12, 297,
- 13, 13, 299,
- 14, 38, 297,
- 39, 39, 300,
- 40, 91, 297,
- 92, 92, 301,
- 93, 255, 297
+ 3,
+ 48, 100, -44,
+ 101, 101, 299,
+ 102, 122, 95
};
static const int lexer_goto_row257[] = {
- 3,
- 0, 9, 302,
- 11, 12, 302,
- 14, 255, 302
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row258[] = {
1,
- 0, 255, -136
+ 0, 255, -207
};
static const int lexer_goto_row259[] = {
- 1,
- 117, 117, 303
+ 11,
+ 0, 9, 300,
+ 10, 10, 258,
+ 11, 12, 300,
+ 13, 13, 259,
+ 14, 33, 300,
+ 34, 34, 301,
+ 35, 91, 300,
+ 92, 92, 302,
+ 93, 122, 300,
+ 123, 123, 303,
+ 124, 255, 300
};
static const int lexer_goto_row260[] = {
1,
- 48, 122, -38
+ 0, 255, -260
};
static const int lexer_goto_row261[] = {
- 3,
- 48, 95, -32,
- 97, 97, 304,
- 98, 122, 86
+ 5,
+ 0, 33, -260,
+ 34, 34, 304,
+ 35, 122, -260,
+ 123, 123, 305,
+ 124, 255, 300
};
static const int lexer_goto_row262[] = {
3,
- 48, 115, -98,
- 116, 116, 305,
- 117, 122, 86
+ 0, 9, 306,
+ 11, 12, 306,
+ 14, 255, 306
};
static const int lexer_goto_row263[] = {
- 1,
- 48, 122, -38
+ 5,
+ 0, 33, -260,
+ 34, 34, 307,
+ 35, 122, -260,
+ 123, 123, 308,
+ 124, 255, 300
};
static const int lexer_goto_row264[] = {
- 1,
- 48, 122, -38
+ 3,
+ 0, 33, -143,
+ 34, 34, 309,
+ 35, 255, -211
};
static const int lexer_goto_row265[] = {
3,
- 48, 109, -43,
- 110, 110, 306,
- 111, 122, 86
+ 0, 122, -213,
+ 123, 123, 310,
+ 124, 255, 206
};
static const int lexer_goto_row266[] = {
- 3,
- 48, 109, -43,
- 110, 110, 307,
- 111, 122, 86
+ 1,
+ 0, 255, -143
};
static const int lexer_goto_row267[] = {
- 1,
- 48, 122, -38
+ 3,
+ 0, 33, -143,
+ 34, 34, 311,
+ 35, 255, -211
};
static const int lexer_goto_row268[] = {
3,
- 48, 100, -42,
- 101, 101, 308,
- 102, 122, 86
+ 0, 122, -213,
+ 123, 123, 312,
+ 124, 255, 206
};
static const int lexer_goto_row269[] = {
- 3,
- 48, 115, -98,
- 116, 116, 309,
- 117, 122, 86
+ 1,
+ 0, 255, -147
};
static const int lexer_goto_row270[] = {
- 3,
- 48, 101, -39,
- 102, 102, 310,
- 103, 122, 86
+ 1,
+ 0, 255, -147
};
static const int lexer_goto_row271[] = {
- 3,
- 48, 99, -90,
- 100, 100, 311,
- 101, 122, 86
+ 1,
+ 0, 255, -147
};
static const int lexer_goto_row272[] = {
- 1,
- 48, 122, -38
+ 9,
+ 0, 9, 313,
+ 10, 10, 314,
+ 11, 12, 313,
+ 13, 13, 315,
+ 14, 38, 313,
+ 39, 39, 316,
+ 40, 91, 313,
+ 92, 92, 317,
+ 93, 255, 313
};
static const int lexer_goto_row273[] = {
- 1,
- 48, 122, -38
+ 3,
+ 0, 9, 318,
+ 11, 12, 318,
+ 14, 255, 318
};
static const int lexer_goto_row274[] = {
- 3,
- 48, 100, -42,
- 101, 101, 312,
- 102, 122, 86
+ 1,
+ 0, 255, -147
};
static const int lexer_goto_row275[] = {
- 3,
- 48, 97, -32,
- 98, 98, 313,
- 99, 122, 86
+ 1,
+ 117, 117, 319
};
static const int lexer_goto_row276[] = {
- 4,
- 48, 95, -32,
- 97, 102, 86,
- 103, 103, 314,
- 104, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row277[] = {
3,
- 48, 115, -98,
- 116, 116, 315,
- 117, 122, 86
+ 48, 95, -34,
+ 97, 97, 320,
+ 98, 122, 95
};
static const int lexer_goto_row278[] = {
3,
- 48, 98, -112,
- 99, 99, 316,
- 100, 122, 86
+ 48, 115, -107,
+ 116, 116, 321,
+ 117, 122, 95
};
static const int lexer_goto_row279[] = {
- 3,
- 48, 98, -112,
- 99, 99, 317,
- 100, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row280[] = {
1,
- 48, 122, -38
+ 48, 122, -40
};
static const int lexer_goto_row281[] = {
3,
- 48, 109, -43,
- 110, 110, 318,
- 111, 122, 86
+ 48, 109, -45,
+ 110, 110, 322,
+ 111, 122, 95
};
static const int lexer_goto_row282[] = {
- 1,
- 48, 122, -38
+ 3,
+ 48, 109, -45,
+ 110, 110, 323,
+ 111, 122, 95
};
static const int lexer_goto_row283[] = {
- 3,
- 48, 113, -33,
- 114, 114, 319,
- 115, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row284[] = {
- 1,
- 48, 122, -38
+ 3,
+ 48, 100, -44,
+ 101, 101, 324,
+ 102, 122, 95
};
static const int lexer_goto_row285[] = {
- 1,
- 0, 255, -244
+ 3,
+ 48, 115, -107,
+ 116, 116, 325,
+ 117, 122, 95
};
static const int lexer_goto_row286[] = {
- 1,
- 0, 255, -246
+ 3,
+ 48, 101, -41,
+ 102, 102, 326,
+ 103, 122, 95
};
static const int lexer_goto_row287[] = {
3,
- 0, 9, 320,
- 11, 12, 320,
- 14, 255, 320
+ 48, 99, -99,
+ 100, 100, 327,
+ 101, 122, 95
};
static const int lexer_goto_row288[] = {
1,
- 0, 255, -248
+ 48, 122, -40
};
static const int lexer_goto_row289[] = {
- 3,
- 0, 33, -244,
- 34, 34, 321,
- 35, 255, -246
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row290[] = {
3,
- 0, 122, -248,
- 123, 123, 322,
- 124, 255, 284
+ 48, 100, -44,
+ 101, 101, 328,
+ 102, 122, 95
};
static const int lexer_goto_row291[] = {
- 1,
- 0, 255, -192
+ 3,
+ 48, 97, -34,
+ 98, 98, 329,
+ 99, 122, 95
};
static const int lexer_goto_row292[] = {
- 3,
- 0, 33, -244,
- 34, 34, 323,
- 35, 255, -246
+ 4,
+ 48, 95, -34,
+ 97, 102, 95,
+ 103, 103, 330,
+ 104, 122, 95
};
static const int lexer_goto_row293[] = {
3,
- 0, 122, -248,
- 123, 123, 324,
- 124, 255, 284
+ 48, 115, -107,
+ 116, 116, 331,
+ 117, 122, 95
};
static const int lexer_goto_row294[] = {
- 1,
- 34, 34, 325
+ 3,
+ 48, 98, -121,
+ 99, 99, 332,
+ 100, 122, 95
};
static const int lexer_goto_row295[] = {
- 1,
- 0, 255, -253
+ 3,
+ 48, 98, -121,
+ 99, 99, 333,
+ 100, 122, 95
};
static const int lexer_goto_row296[] = {
1,
- 0, 255, -249
+ 48, 122, -40
};
static const int lexer_goto_row297[] = {
- 1,
- 123, 123, 326
+ 3,
+ 48, 109, -45,
+ 110, 110, 334,
+ 111, 122, 95
};
static const int lexer_goto_row298[] = {
1,
- 0, 255, -136
+ 48, 122, -40
};
static const int lexer_goto_row299[] = {
- 1,
- 0, 255, -136
+ 3,
+ 48, 113, -35,
+ 114, 114, 335,
+ 115, 122, 95
};
static const int lexer_goto_row300[] = {
1,
- 0, 255, -136
+ 48, 122, -40
+};
+static const int lexer_goto_row301[] = {
+ 1,
+ 0, 255, -260
};
static const int lexer_goto_row302[] = {
- 3,
- 0, 9, 327,
- 11, 12, 327,
- 14, 255, 327
+ 1,
+ 0, 255, -262
};
static const int lexer_goto_row303[] = {
- 1,
- 0, 255, -136
+ 3,
+ 0, 9, 336,
+ 11, 12, 336,
+ 14, 255, 336
};
static const int lexer_goto_row304[] = {
1,
- 103, 103, 328
+ 0, 255, -264
};
static const int lexer_goto_row305[] = {
3,
- 48, 98, -112,
- 99, 99, 329,
- 100, 122, 86
+ 0, 33, -260,
+ 34, 34, 337,
+ 35, 255, -262
};
static const int lexer_goto_row306[] = {
- 1,
- 48, 122, -38
+ 3,
+ 0, 122, -264,
+ 123, 123, 338,
+ 124, 255, 300
};
static const int lexer_goto_row307[] = {
- 3,
- 48, 116, -121,
- 117, 117, 330,
- 118, 122, 86
+ 1,
+ 0, 255, -207
};
static const int lexer_goto_row308[] = {
- 1,
- 48, 122, -38
+ 3,
+ 0, 33, -260,
+ 34, 34, 339,
+ 35, 255, -262
};
static const int lexer_goto_row309[] = {
3,
- 48, 114, -91,
- 115, 115, 331,
- 116, 122, 86
+ 0, 122, -264,
+ 123, 123, 340,
+ 124, 255, 300
};
static const int lexer_goto_row310[] = {
1,
- 48, 122, -38
+ 34, 34, 341
};
static const int lexer_goto_row311[] = {
- 3,
- 48, 95, -32,
- 97, 97, 332,
- 98, 122, 86
+ 1,
+ 0, 255, -269
};
static const int lexer_goto_row312[] = {
- 3,
- 48, 100, -42,
- 101, 101, 333,
- 102, 122, 86
+ 1,
+ 0, 255, -265
};
static const int lexer_goto_row313[] = {
1,
- 48, 122, -38
+ 123, 123, 342
};
static const int lexer_goto_row314[] = {
- 3,
- 48, 107, -34,
- 108, 108, 334,
- 109, 122, 86
+ 1,
+ 0, 255, -147
};
static const int lexer_goto_row315[] = {
- 3,
- 48, 100, -42,
- 101, 101, 335,
- 102, 122, 86
+ 1,
+ 0, 255, -147
};
static const int lexer_goto_row316[] = {
- 3,
- 48, 100, -42,
- 101, 101, 336,
- 102, 122, 86
-};
-static const int lexer_goto_row317[] = {
- 3,
- 48, 115, -98,
- 116, 116, 337,
- 117, 122, 86
+ 1,
+ 0, 255, -147
};
static const int lexer_goto_row318[] = {
- 1,
- 48, 122, -38
+ 3,
+ 0, 9, 343,
+ 11, 12, 343,
+ 14, 255, 343
};
static const int lexer_goto_row319[] = {
1,
- 48, 122, -38
+ 0, 255, -147
};
static const int lexer_goto_row320[] = {
- 3,
- 48, 114, -91,
- 115, 115, 338,
- 116, 122, 86
+ 1,
+ 103, 103, 344
};
static const int lexer_goto_row321[] = {
- 1,
- 0, 255, -244
+ 3,
+ 48, 98, -121,
+ 99, 99, 345,
+ 100, 122, 95
};
static const int lexer_goto_row322[] = {
1,
- 34, 34, 339
+ 48, 122, -40
};
static const int lexer_goto_row323[] = {
- 1,
- 0, 255, -294
+ 3,
+ 48, 116, -130,
+ 117, 117, 346,
+ 118, 122, 95
};
static const int lexer_goto_row324[] = {
1,
- 0, 255, -290
+ 48, 122, -40
};
static const int lexer_goto_row325[] = {
- 1,
- 123, 123, 340
+ 3,
+ 48, 114, -100,
+ 115, 115, 347,
+ 116, 122, 95
};
static const int lexer_goto_row326[] = {
1,
- 34, 34, 325
+ 48, 122, -40
};
static const int lexer_goto_row327[] = {
- 1,
- 123, 123, 326
+ 3,
+ 48, 95, -34,
+ 97, 97, 348,
+ 98, 122, 95
};
static const int lexer_goto_row328[] = {
- 1,
- 0, 255, -136
+ 3,
+ 48, 100, -44,
+ 101, 101, 349,
+ 102, 122, 95
};
static const int lexer_goto_row329[] = {
1,
- 95, 95, 341
+ 48, 122, -40
};
static const int lexer_goto_row330[] = {
3,
- 48, 115, -98,
- 116, 116, 342,
- 117, 122, 86
+ 48, 107, -36,
+ 108, 108, 350,
+ 109, 122, 95
};
static const int lexer_goto_row331[] = {
3,
- 48, 100, -42,
- 101, 101, 343,
- 102, 122, 86
+ 48, 100, -44,
+ 101, 101, 351,
+ 102, 122, 95
};
static const int lexer_goto_row332[] = {
- 1,
- 48, 122, -38
+ 3,
+ 48, 100, -44,
+ 101, 101, 352,
+ 102, 122, 95
};
static const int lexer_goto_row333[] = {
3,
- 48, 98, -112,
- 99, 99, 344,
- 100, 122, 86
+ 48, 115, -107,
+ 116, 116, 353,
+ 117, 122, 95
};
static const int lexer_goto_row334[] = {
1,
- 48, 122, -38
+ 48, 122, -40
};
static const int lexer_goto_row335[] = {
- 3,
- 48, 100, -42,
- 101, 101, 345,
- 102, 122, 86
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row336[] = {
- 1,
- 48, 122, -38
+ 3,
+ 48, 114, -100,
+ 115, 115, 354,
+ 116, 122, 95
};
static const int lexer_goto_row337[] = {
1,
- 48, 122, -38
+ 0, 255, -260
};
static const int lexer_goto_row338[] = {
- 3,
- 48, 100, -42,
- 101, 101, 346,
- 102, 122, 86
+ 1,
+ 34, 34, 355
};
static const int lexer_goto_row339[] = {
- 3,
- 48, 95, -32,
- 97, 97, 347,
- 98, 122, 86
+ 1,
+ 0, 255, -310
};
static const int lexer_goto_row340[] = {
1,
- 34, 34, 339
+ 0, 255, -306
};
static const int lexer_goto_row341[] = {
1,
- 123, 123, 340
+ 123, 123, 356
};
static const int lexer_goto_row342[] = {
1,
- 95, 95, 348
+ 34, 34, 341
};
static const int lexer_goto_row343[] = {
1,
- 48, 122, -38
+ 123, 123, 342
};
static const int lexer_goto_row344[] = {
1,
- 48, 122, -38
+ 0, 255, -147
};
static const int lexer_goto_row345[] = {
- 3,
- 48, 100, -42,
- 101, 101, 349,
- 102, 122, 86
+ 1,
+ 95, 95, 357
};
static const int lexer_goto_row346[] = {
- 1,
- 48, 122, -38
+ 3,
+ 48, 115, -107,
+ 116, 116, 358,
+ 117, 122, 95
};
static const int lexer_goto_row347[] = {
3,
- 48, 99, -90,
- 100, 100, 350,
- 101, 122, 86
+ 48, 100, -44,
+ 101, 101, 359,
+ 102, 122, 95
};
static const int lexer_goto_row348[] = {
+ 1,
+ 48, 122, -40
+};
+static const int lexer_goto_row349[] = {
3,
- 48, 107, -34,
- 108, 108, 351,
- 109, 122, 86
+ 48, 98, -121,
+ 99, 99, 360,
+ 100, 122, 95
};
static const int lexer_goto_row350[] = {
1,
- 48, 122, -38
+ 48, 122, -40
};
static const int lexer_goto_row351[] = {
- 1,
- 48, 122, -38
+ 3,
+ 48, 100, -44,
+ 101, 101, 361,
+ 102, 122, 95
};
static const int lexer_goto_row352[] = {
1,
- 48, 122, -38
+ 48, 122, -40
+};
+static const int lexer_goto_row353[] = {
+ 1,
+ 48, 122, -40
+};
+static const int lexer_goto_row354[] = {
+ 3,
+ 48, 100, -44,
+ 101, 101, 362,
+ 102, 122, 95
+};
+static const int lexer_goto_row355[] = {
+ 3,
+ 48, 95, -34,
+ 97, 97, 363,
+ 98, 122, 95
+};
+static const int lexer_goto_row356[] = {
+ 1,
+ 34, 34, 355
+};
+static const int lexer_goto_row357[] = {
+ 1,
+ 123, 123, 356
+};
+static const int lexer_goto_row358[] = {
+ 1,
+ 95, 95, 364
+};
+static const int lexer_goto_row359[] = {
+ 1,
+ 48, 122, -40
+};
+static const int lexer_goto_row360[] = {
+ 1,
+ 48, 122, -40
+};
+static const int lexer_goto_row361[] = {
+ 3,
+ 48, 100, -44,
+ 101, 101, 365,
+ 102, 122, 95
+};
+static const int lexer_goto_row362[] = {
+ 1,
+ 48, 122, -40
+};
+static const int lexer_goto_row363[] = {
+ 3,
+ 48, 99, -99,
+ 100, 100, 366,
+ 101, 122, 95
+};
+static const int lexer_goto_row364[] = {
+ 3,
+ 48, 107, -36,
+ 108, 108, 367,
+ 109, 122, 95
+};
+static const int lexer_goto_row366[] = {
+ 1,
+ 48, 122, -40
+};
+static const int lexer_goto_row367[] = {
+ 1,
+ 48, 122, -40
+};
+static const int lexer_goto_row368[] = {
+ 1,
+ 48, 122, -40
};
static const int lexer_goto_row_null[] = {0};
const int* const lexer_goto_table[] = {
lexer_goto_row6,
lexer_goto_row7,
lexer_goto_row8,
- lexer_goto_row_null,
+ lexer_goto_row9,
lexer_goto_row10,
+ lexer_goto_row11,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row13,
lexer_goto_row14,
+ lexer_goto_row15,
lexer_goto_row_null,
- lexer_goto_row16,
lexer_goto_row17,
- lexer_goto_row_null,
+ lexer_goto_row18,
lexer_goto_row19,
lexer_goto_row20,
lexer_goto_row21,
lexer_goto_row22,
lexer_goto_row23,
lexer_goto_row24,
+ lexer_goto_row25,
lexer_goto_row_null,
- lexer_goto_row26,
+ lexer_goto_row27,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row29,
lexer_goto_row30,
lexer_goto_row31,
lexer_goto_row32,
lexer_goto_row48,
lexer_goto_row49,
lexer_goto_row50,
+ lexer_goto_row51,
+ lexer_goto_row52,
+ lexer_goto_row53,
lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row53,
- lexer_goto_row54,
- lexer_goto_row55,
lexer_goto_row_null,
lexer_goto_row57,
- lexer_goto_row_null,
+ lexer_goto_row58,
lexer_goto_row59,
- lexer_goto_row60,
+ lexer_goto_row_null,
lexer_goto_row61,
- lexer_goto_row62,
lexer_goto_row_null,
+ lexer_goto_row63,
lexer_goto_row_null,
lexer_goto_row_null,
lexer_goto_row66,
lexer_goto_row67,
lexer_goto_row68,
lexer_goto_row69,
- lexer_goto_row70,
- lexer_goto_row_null,
lexer_goto_row_null,
- lexer_goto_row73,
lexer_goto_row_null,
lexer_goto_row_null,
+ lexer_goto_row73,
+ lexer_goto_row74,
lexer_goto_row_null,
+ lexer_goto_row76,
lexer_goto_row77,
lexer_goto_row78,
- lexer_goto_row79,
+ lexer_goto_row_null,
lexer_goto_row80,
lexer_goto_row81,
- lexer_goto_row82,
- lexer_goto_row83,
+ lexer_goto_row_null,
+ lexer_goto_row_null,
lexer_goto_row84,
lexer_goto_row85,
lexer_goto_row86,
lexer_goto_row87,
lexer_goto_row88,
- lexer_goto_row89,
+ lexer_goto_row_null,
lexer_goto_row90,
lexer_goto_row91,
lexer_goto_row92,
lexer_goto_row123,
lexer_goto_row124,
lexer_goto_row125,
- lexer_goto_row_null,
+ lexer_goto_row126,
lexer_goto_row127,
- lexer_goto_row_null,
+ lexer_goto_row128,
lexer_goto_row129,
- lexer_goto_row_null,
+ lexer_goto_row130,
lexer_goto_row131,
lexer_goto_row132,
+ lexer_goto_row133,
+ lexer_goto_row134,
lexer_goto_row_null,
- lexer_goto_row_null,
- lexer_goto_row135,
lexer_goto_row136,
lexer_goto_row_null,
lexer_goto_row138,
- lexer_goto_row139,
+ lexer_goto_row_null,
lexer_goto_row140,
lexer_goto_row_null,
lexer_goto_row142,
lexer_goto_row143,
- lexer_goto_row144,
- lexer_goto_row145,
+ lexer_goto_row_null,
+ lexer_goto_row_null,
lexer_goto_row146,
lexer_goto_row147,
- lexer_goto_row148,
- lexer_goto_row149,
+ lexer_goto_row_null,
+ lexer_goto_row_null,
lexer_goto_row150,
lexer_goto_row151,
lexer_goto_row152,
- lexer_goto_row153,
- lexer_goto_row154,
- lexer_goto_row155,
+ lexer_goto_row_null,
+ lexer_goto_row_null,
+ lexer_goto_row_null,
lexer_goto_row156,
lexer_goto_row157,
lexer_goto_row158,
lexer_goto_row200,
lexer_goto_row201,
lexer_goto_row202,
- lexer_goto_row_null,
+ lexer_goto_row203,
lexer_goto_row204,
lexer_goto_row205,
lexer_goto_row206,
- lexer_goto_row_null,
+ lexer_goto_row207,
lexer_goto_row208,
lexer_goto_row209,
lexer_goto_row210,
lexer_goto_row215,
lexer_goto_row216,
lexer_goto_row217,
- lexer_goto_row218,
+ lexer_goto_row_null,
lexer_goto_row219,
lexer_goto_row220,
lexer_goto_row221,
- lexer_goto_row222,
+ lexer_goto_row_null,
lexer_goto_row223,
lexer_goto_row224,
lexer_goto_row225,
lexer_goto_row298,
lexer_goto_row299,
lexer_goto_row300,
- lexer_goto_row_null,
+ lexer_goto_row301,
lexer_goto_row302,
lexer_goto_row303,
lexer_goto_row304,
lexer_goto_row314,
lexer_goto_row315,
lexer_goto_row316,
- lexer_goto_row317,
+ lexer_goto_row_null,
lexer_goto_row318,
lexer_goto_row319,
lexer_goto_row320,
lexer_goto_row346,
lexer_goto_row347,
lexer_goto_row348,
- lexer_goto_row_null,
+ lexer_goto_row349,
lexer_goto_row350,
lexer_goto_row351,
- lexer_goto_row352
+ lexer_goto_row352,
+ lexer_goto_row353,
+ lexer_goto_row354,
+ lexer_goto_row355,
+ lexer_goto_row356,
+ lexer_goto_row357,
+ lexer_goto_row358,
+ lexer_goto_row359,
+ lexer_goto_row360,
+ lexer_goto_row361,
+ lexer_goto_row362,
+ lexer_goto_row363,
+ lexer_goto_row364,
+ lexer_goto_row_null,
+ lexer_goto_row366,
+ lexer_goto_row367,
+ lexer_goto_row368
};
const int lexer_accept_table[] = {
- -1,0,1,1,0,80,93,2,70,-1,52,53,67,65,56,66,64,69,85,85,57,73,59,76,81,82,54,55,-1,-1,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,93,1,72,93,88,-1,89,2,2,2,94,94,94,68,60,61,63,87,-1,-1,-1,58,75,74,71,77,78,82,82,82,82,-1,84,-1,83,83,83,83,83,83,47,83,83,83,16,83,83,83,83,83,83,23,83,29,15,83,83,83,83,83,83,83,31,83,83,83,83,83,83,83,83,83,83,83,83,93,91,-1,90,93,88,93,93,2,92,93,94,62,86,86,86,79,-1,84,84,84,84,-1,-1,-1,83,83,30,83,83,83,83,83,10,83,83,83,28,11,83,83,83,40,83,83,83,83,39,32,83,83,83,83,83,83,83,83,83,83,83,83,83,83,17,83,93,93,93,93,93,-1,-1,-1,93,93,93,-1,-1,92,-1,-1,-1,95,83,83,83,83,83,83,25,9,83,83,83,83,13,83,83,83,83,27,83,46,41,83,83,83,83,83,83,43,83,24,44,12,83,83,93,-1,-1,91,-1,90,-1,-1,93,-1,-1,93,93,93,-1,-1,93,-1,37,83,83,36,6,83,83,45,83,83,83,83,49,50,83,83,83,83,83,83,14,83,42,83,26,-1,-1,-1,-1,-1,-1,93,-1,-1,88,-1,-1,89,93,93,93,88,-1,93,-1,83,38,83,18,83,5,83,83,4,83,83,83,83,19,34,83,-1,91,-1,-1,90,88,89,93,-1,83,83,33,83,22,83,3,21,83,83,91,90,-1,7,35,83,48,83,83,51,8,20,9
+ -1,0,1,1,0,94,107,2,80,83,-1,53,54,77,75,57,76,74,79,99,99,58,87,60,90,95,96,55,56,82,-1,-1,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,81,107,84,1,86,107,102,-1,103,2,2,2,65,69,108,108,108,78,63,61,62,73,101,64,-1,-1,-1,59,89,88,85,91,92,96,96,96,96,68,-1,98,-1,97,97,97,97,97,97,47,97,97,97,16,97,97,97,97,97,97,23,97,29,15,97,97,97,97,97,97,97,31,97,97,97,97,97,97,97,97,97,97,97,97,97,67,107,105,-1,104,107,102,107,107,2,106,107,108,66,72,100,100,100,70,93,71,-1,98,98,98,98,-1,-1,-1,97,97,30,97,97,97,97,97,10,97,97,97,28,11,97,97,97,40,97,97,97,97,39,32,97,97,97,97,97,97,97,97,97,97,97,97,97,97,17,97,97,107,107,107,107,107,-1,-1,-1,107,107,107,-1,-1,106,-1,-1,-1,109,97,97,97,97,97,97,25,9,97,97,97,97,13,97,97,97,97,27,97,46,41,97,97,97,97,97,97,43,97,24,44,12,97,97,51,107,-1,-1,105,-1,104,-1,-1,107,-1,-1,107,107,107,-1,-1,107,-1,37,97,97,36,6,97,97,45,97,97,97,97,49,50,97,97,97,97,97,97,14,97,42,97,26,-1,-1,-1,-1,-1,-1,107,-1,-1,102,-1,-1,103,107,107,107,102,-1,107,-1,97,38,97,18,97,5,97,97,4,97,97,97,97,19,34,97,-1,105,-1,-1,104,102,103,107,-1,97,97,33,97,22,97,3,21,97,97,105,104,-1,7,35,97,48,97,97,52,8,20,9
};
static int parser_action_row1[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
static int parser_action_row2[] = {
1,
- -1, 1, 1000
+ -1, 1, 1068
};
static int parser_action_row3[] = {
1,
- -1, 1, 998
+ -1, 1, 1066
};
static int parser_action_row4[] = {
2,
-1, 3, 3,
- 95, 2, -1
+ 109, 2, -1
};
static int parser_action_row5[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
static int parser_action_row6[] = {
1,
- -1, 1, 964
+ -1, 1, 1032
};
static int parser_action_row7[] = {
1,
- -1, 1, 968
+ -1, 1, 1036
};
static int parser_action_row8[] = {
1,
};
static int parser_action_row11[] = {
1,
- -1, 1, 966
+ -1, 1, 1034
};
static int parser_action_row12[] = {
2,
- -1, 1, 446,
- 95, 1, 23
+ -1, 1, 474,
+ 109, 1, 23
};
static int parser_action_row13[] = {
- 34,
+ 35,
-1, 1, 28,
12, 0, 25,
13, 0, 26,
36, 0, 37,
37, 0, 38,
38, 0, 39,
- 41, 1, 427,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54,
- 94, 0, 55
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55,
+ 108, 0, 56
};
static int parser_action_row14[] = {
2,
- -1, 1, 444,
+ -1, 1, 472,
1, 0, 2
};
static int parser_action_row15[] = {
3,
-1, 3, 14,
- 0, 0, 81,
- 1, 0, 82
+ 0, 0, 83,
+ 1, 0, 84
};
static int parser_action_row16[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
static int parser_action_row17[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
static int parser_action_row18[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
static int parser_action_row19[] = {
3,
- -1, 1, 442,
+ -1, 1, 470,
0, 0, 1,
- 1, 0, 95
+ 1, 0, 97
};
static int parser_action_row20[] = {
2,
- -1, 1, 449,
- 0, 0, 97
+ -1, 1, 477,
+ 0, 0, 99
};
static int parser_action_row21[] = {
1,
-1, 1, 1
};
static int parser_action_row22[] = {
- 34,
+ 35,
-1, 1, 28,
12, 0, 25,
13, 0, 26,
36, 0, 37,
37, 0, 38,
38, 0, 39,
- 41, 1, 427,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54,
- 94, 0, 55
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55,
+ 108, 0, 56
};
static int parser_action_row23[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
static int parser_action_row24[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
static int parser_action_row25[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
static int parser_action_row26[] = {
- 26,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 321,
- 61, 1, 321,
- 63, 1, 321,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+ 28,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 349,
+ 71, 1, 349,
+ 73, 1, 349,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
static int parser_action_row27[] = {
1,
-1, 1, 29
};
static int parser_action_row28[] = {
- 32,
- -1, 1, 427,
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 140,
+ 9, 0, 148,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
static int parser_action_row29[] = {
2,
-1, 3, 28,
- 82, 0, 145
+ 96, 0, 153
};
static int parser_action_row30[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
static int parser_action_row31[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
static int parser_action_row32[] = {
- 32,
- -1, 1, 427,
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 140,
+ 9, 0, 148,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
static int parser_action_row33[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
static int parser_action_row34[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
static int parser_action_row35[] = {
- 24,
- -1, 1, 163,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+ 26,
+ -1, 1, 167,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
static int parser_action_row36[] = {
2,
- -1, 1, 168,
- 49, 0, 174
+ -1, 1, 172,
+ 49, 0, 188
};
static int parser_action_row37[] = {
2,
- -1, 1, 165,
- 49, 0, 174
+ -1, 1, 169,
+ 49, 0, 188
};
static int parser_action_row38[] = {
1,
- -1, 1, 167
+ -1, 1, 171
};
static int parser_action_row39[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 177,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 191,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
static int parser_action_row40[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
static int parser_action_row41[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
static int parser_action_row42[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
static int parser_action_row43[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
static int parser_action_row44[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
static int parser_action_row45[] = {
- 2,
- -1, 3, 44,
- 11, 0, 187
-};
-static int parser_action_row46[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
+static int parser_action_row46[] = {
+ 2,
+ -1, 3, 45,
+ 11, 0, 202
+};
static int parser_action_row47[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
static int parser_action_row48[] = {
- 2,
- -1, 3, 47,
- 57, 0, 190
+ 3,
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row49[] = {
- 30,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 309,
- 57, 0, 191,
- 58, 0, 192,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 309,
- 63, 1, 309,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+ 2,
+ -1, 3, 48,
+ 58, 0, 205
};
static int parser_action_row50[] = {
- 2,
- -1, 1, 371,
- 80, 0, 181
+ 41,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 337,
+ 58, 0, 206,
+ 59, 0, 207,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 337,
+ 73, 1, 337,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
static int parser_action_row51[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
static int parser_action_row52[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
static int parser_action_row53[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
static int parser_action_row54[] = {
- 1,
- -1, 1, 363
+ 2,
+ -1, 1, 399,
+ 94, 0, 195
};
static int parser_action_row55[] = {
- 2,
- -1, 1, 371,
- 80, 0, 181
+ 1,
+ -1, 1, 391
};
static int parser_action_row56[] = {
- 1,
- -1, 1, 135
+ 2,
+ -1, 1, 399,
+ 94, 0, 195
};
static int parser_action_row57[] = {
+ 1,
+ -1, 1, 139
+};
+static int parser_action_row58[] = {
5,
-1, 1, 79,
- 18, 0, 203,
- 19, 0, 204,
- 20, 0, 205,
- 21, 0, 206
+ 18, 0, 227,
+ 19, 0, 228,
+ 20, 0, 229,
+ 21, 0, 230
};
-static int parser_action_row58[] = {
+static int parser_action_row59[] = {
2,
- -1, 3, 57,
- 94, 0, 208
+ -1, 3, 58,
+ 108, 0, 232
};
-static int parser_action_row59[] = {
+static int parser_action_row60[] = {
1,
- -1, 1, 139
+ -1, 1, 143
};
-static int parser_action_row60[] = {
+static int parser_action_row61[] = {
1,
-1, 1, 24
};
-static int parser_action_row61[] = {
+static int parser_action_row62[] = {
1,
-1, 1, 25
};
-static int parser_action_row62[] = {
+static int parser_action_row63[] = {
3,
- -1, 1, 154,
+ -1, 1, 158,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row63[] = {
- 1,
- -1, 1, 161
-};
static int parser_action_row64[] = {
1,
- -1, 1, 162
+ -1, 1, 165
};
static int parser_action_row65[] = {
1,
- -1, 1, 170
+ -1, 1, 166
};
static int parser_action_row66[] = {
1,
- -1, 1, 171
+ -1, 1, 174
};
static int parser_action_row67[] = {
1,
- -1, 1, 173
+ -1, 1, 175
};
static int parser_action_row68[] = {
1,
- -1, 1, 172
+ -1, 1, 177
};
static int parser_action_row69[] = {
1,
- -1, 1, 174
+ -1, 1, 176
};
static int parser_action_row70[] = {
1,
- -1, 1, 175
+ -1, 1, 178
};
static int parser_action_row71[] = {
- 4,
- -1, 3, 70,
- 53, 0, 212,
- 61, 0, 213,
- 63, 0, 214
+ 1,
+ -1, 1, 179
};
static int parser_action_row72[] = {
1,
- -1, 1, 297
+ -1, 1, 180
};
static int parser_action_row73[] = {
- 1,
- -1, 1, 345
+ 4,
+ -1, 3, 72,
+ 54, 0, 236,
+ 71, 0, 237,
+ 73, 0, 238
};
static int parser_action_row74[] = {
1,
- -1, 1, 344
+ -1, 1, 325
};
static int parser_action_row75[] = {
- 3,
- -1, 3, 74,
- 89, 0, 216,
- 90, 0, 217
+ 1,
+ -1, 1, 373
};
static int parser_action_row76[] = {
- 3,
- -1, 1, 445,
- 0, 0, 1,
- 1, 0, 2
+ 1,
+ -1, 1, 372
};
static int parser_action_row77[] = {
3,
-1, 3, 76,
- 41, 0, 223,
- 83, 0, 224
+ 103, 0, 240,
+ 104, 0, 241
};
static int parser_action_row78[] = {
- 1,
- -1, 1, 996
+ 3,
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
};
static int parser_action_row79[] = {
3,
- -1, 1, 424,
- 12, 0, 225,
- 82, 0, 226
+ -1, 3, 78,
+ 41, 0, 247,
+ 97, 0, 248
};
static int parser_action_row80[] = {
- 4,
- -1, 1, 426,
- 12, 0, 227,
- 81, 0, 47,
- 82, 0, 228
+ 1,
+ -1, 1, 1064
};
static int parser_action_row81[] = {
3,
- -1, 1, 443,
- 0, 0, 1,
- 1, 0, 95
+ -1, 1, 452,
+ 12, 0, 249,
+ 96, 0, 250
};
static int parser_action_row82[] = {
- 1,
- -1, 1, 441
+ 4,
+ -1, 1, 454,
+ 12, 0, 251,
+ 95, 0, 48,
+ 96, 0, 252
};
static int parser_action_row83[] = {
- 1,
- -1, 1, 440
+ 3,
+ -1, 1, 471,
+ 0, 0, 1,
+ 1, 0, 97
};
static int parser_action_row84[] = {
1,
- -1, 1, 20
+ -1, 1, 469
};
static int parser_action_row85[] = {
1,
- -1, 1, 965
+ -1, 1, 468
};
static int parser_action_row86[] = {
1,
- -1, 1, 2
+ -1, 1, 20
};
static int parser_action_row87[] = {
+ 1,
+ -1, 1, 1033
+};
+static int parser_action_row88[] = {
+ 1,
+ -1, 1, 2
+};
+static int parser_action_row89[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
-static int parser_action_row88[] = {
+static int parser_action_row90[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
-static int parser_action_row89[] = {
+static int parser_action_row91[] = {
1,
-1, 1, 4
};
-static int parser_action_row90[] = {
+static int parser_action_row92[] = {
1,
- -1, 1, 967
+ -1, 1, 1035
};
-static int parser_action_row91[] = {
- 34,
+static int parser_action_row93[] = {
+ 35,
-1, 1, 28,
12, 0, 25,
13, 0, 26,
36, 0, 37,
37, 0, 38,
38, 0, 39,
- 41, 1, 427,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54,
- 94, 0, 55
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55,
+ 108, 0, 56
};
-static int parser_action_row92[] = {
+static int parser_action_row94[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
-static int parser_action_row93[] = {
+static int parser_action_row95[] = {
1,
- -1, 1, 969
+ -1, 1, 1037
};
-static int parser_action_row94[] = {
+static int parser_action_row96[] = {
1,
-1, 1, 8
};
-static int parser_action_row95[] = {
- 32,
+static int parser_action_row97[] = {
+ 33,
-1, 1, 28,
12, 0, 25,
13, 0, 26,
36, 0, 37,
37, 0, 38,
38, 0, 39,
- 41, 1, 427,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row96[] = {
+static int parser_action_row98[] = {
1,
- -1, 1, 999
+ -1, 1, 1067
};
-static int parser_action_row97[] = {
+static int parser_action_row99[] = {
2,
- -1, 1, 447,
- 0, 0, 97
+ -1, 1, 475,
+ 0, 0, 99
};
-static int parser_action_row98[] = {
+static int parser_action_row100[] = {
1,
- -1, 1, 1001
+ -1, 1, 1069
};
-static int parser_action_row99[] = {
+static int parser_action_row101[] = {
5,
-1, 1, 79,
- 18, 0, 203,
- 19, 0, 204,
- 20, 0, 205,
- 21, 0, 206
+ 18, 0, 227,
+ 19, 0, 228,
+ 20, 0, 229,
+ 21, 0, 230
};
-static int parser_action_row100[] = {
+static int parser_action_row102[] = {
1,
-1, 1, 3
};
-static int parser_action_row101[] = {
+static int parser_action_row103[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
-static int parser_action_row102[] = {
+static int parser_action_row104[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
-static int parser_action_row103[] = {
+static int parser_action_row105[] = {
1,
-1, 1, 5
};
-static int parser_action_row104[] = {
+static int parser_action_row106[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
-static int parser_action_row105[] = {
+static int parser_action_row107[] = {
1,
-1, 1, 9
};
-static int parser_action_row106[] = {
+static int parser_action_row108[] = {
2,
- -1, 1, 702,
- 51, 0, 242
+ -1, 1, 753,
+ 52, 0, 266
};
-static int parser_action_row107[] = {
+static int parser_action_row109[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row108[] = {
+static int parser_action_row110[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row109[] = {
+static int parser_action_row111[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row110[] = {
+static int parser_action_row112[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row111[] = {
+static int parser_action_row113[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row112[] = {
+static int parser_action_row114[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row113[] = {
+static int parser_action_row115[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row114[] = {
+static int parser_action_row116[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row115[] = {
+static int parser_action_row117[] = {
15,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 252,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 276,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row116[] = {
+static int parser_action_row118[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row117[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row119[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row118[] = {
- 3,
- -1, 1, 690,
- 51, 0, 242,
- 57, 0, 191
-};
-static int parser_action_row119[] = {
- 2,
- -1, 1, 371,
- 80, 0, 181
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
static int parser_action_row120[] = {
- 2,
- -1, 1, 371,
- 80, 0, 181
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
static int parser_action_row121[] = {
- 2,
- -1, 1, 371,
- 80, 0, 181
-};
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
static int parser_action_row122[] = {
- 2,
- -1, 1, 371,
- 80, 0, 181
+ 3,
+ -1, 1, 741,
+ 52, 0, 266,
+ 58, 0, 206
};
static int parser_action_row123[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
static int parser_action_row124[] = {
- 1,
- -1, 1, 725
+ 2,
+ -1, 1, 399,
+ 94, 0, 195
};
static int parser_action_row125[] = {
- 1,
- -1, 1, 320
+ 2,
+ -1, 1, 399,
+ 94, 0, 195
};
static int parser_action_row126[] = {
- 1,
- -1, 1, 186
+ 2,
+ -1, 1, 399,
+ 94, 0, 195
};
static int parser_action_row127[] = {
- 3,
- -1, 3, 126,
- 41, 0, 263,
- 83, 0, 264
+ 2,
+ -1, 1, 399,
+ 94, 0, 195
};
static int parser_action_row128[] = {
- 2,
- -1, 1, 424,
- 82, 0, 265
+ 1,
+ -1, 1, 776
};
static int parser_action_row129[] = {
1,
- -1, 1, 408
+ -1, 1, 348
};
static int parser_action_row130[] = {
- 4,
- -1, 1, 641,
- 29, 0, 266,
- 30, 0, 267,
- 32, 0, 268
+ 1,
+ -1, 1, 191
};
static int parser_action_row131[] = {
- 1,
- -1, 1, 643
+ 3,
+ -1, 3, 130,
+ 41, 0, 289,
+ 97, 0, 290
};
static int parser_action_row132[] = {
- 3,
- -1, 1, 648,
- 74, 0, 269,
- 77, 0, 270
+ 2,
+ -1, 1, 452,
+ 96, 0, 291
};
static int parser_action_row133[] = {
- 11,
- -1, 1, 650,
- 39, 0, 271,
- 64, 0, 272,
- 65, 0, 273,
- 70, 0, 274,
- 71, 0, 275,
- 72, 0, 276,
- 73, 0, 277,
- 75, 0, 278,
- 76, 0, 279,
- 78, 0, 280
+ 1,
+ -1, 1, 436
};
static int parser_action_row134[] = {
4,
- -1, 1, 661,
- 66, 0, 281,
- 68, 0, 282,
- 69, 0, 283
+ -1, 1, 683,
+ 29, 0, 292,
+ 30, 0, 293,
+ 32, 0, 294
};
static int parser_action_row135[] = {
1,
- -1, 1, 664
+ -1, 1, 685
};
static int parser_action_row136[] = {
- 2,
- -1, 1, 668,
- 67, 0, 284
+ 1,
+ -1, 1, 690
};
static int parser_action_row137[] = {
- 1,
- -1, 1, 670
+ 10,
+ -1, 1, 692,
+ 39, 0, 295,
+ 80, 0, 296,
+ 84, 0, 297,
+ 85, 0, 298,
+ 86, 0, 299,
+ 87, 0, 300,
+ 89, 0, 301,
+ 90, 0, 302,
+ 92, 0, 303
};
static int parser_action_row138[] = {
- 4,
- -1, 1, 673,
- 53, 0, 212,
- 61, 0, 285,
- 63, 0, 286
+ 2,
+ -1, 1, 701,
+ 81, 0, 304
};
static int parser_action_row139[] = {
- 1,
- -1, 1, 678
+ 2,
+ -1, 1, 703,
+ 82, 0, 305
};
static int parser_action_row140[] = {
3,
- -1, 1, 426,
- 81, 0, 47,
- 82, 0, 288
+ -1, 1, 705,
+ 88, 0, 306,
+ 91, 0, 307
};
static int parser_action_row141[] = {
- 2,
- -1, 1, 152,
- 49, 1, 898
+ 3,
+ -1, 1, 707,
+ 74, 0, 308,
+ 75, 0, 309
};
static int parser_action_row142[] = {
- 1,
- -1, 1, 241
+ 4,
+ -1, 1, 710,
+ 76, 0, 310,
+ 78, 0, 311,
+ 79, 0, 312
};
static int parser_action_row143[] = {
1,
- -1, 1, 153
+ -1, 1, 713
};
static int parser_action_row144[] = {
- 30,
- -1, 1, 427,
- 9, 0, 290,
+ 2,
+ -1, 1, 717,
+ 77, 0, 313
+};
+static int parser_action_row145[] = {
+ 1,
+ -1, 1, 719
+};
+static int parser_action_row146[] = {
+ 4,
+ -1, 1, 724,
+ 54, 0, 236,
+ 71, 0, 314,
+ 73, 0, 315
+};
+static int parser_action_row147[] = {
+ 1,
+ -1, 1, 729
+};
+static int parser_action_row148[] = {
+ 3,
+ -1, 1, 454,
+ 95, 0, 48,
+ 96, 0, 317
+};
+static int parser_action_row149[] = {
+ 2,
+ -1, 1, 156,
+ 49, 1, 962
+};
+static int parser_action_row150[] = {
+ 1,
+ -1, 1, 255
+};
+static int parser_action_row151[] = {
+ 1,
+ -1, 1, 157
+};
+static int parser_action_row152[] = {
+ 31,
+ -1, 1, 455,
+ 9, 0, 319,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row145[] = {
+static int parser_action_row153[] = {
2,
- -1, 3, 144,
- 49, 0, 174
+ -1, 3, 152,
+ 49, 0, 188
};
-static int parser_action_row146[] = {
+static int parser_action_row154[] = {
3,
- -1, 1, 149,
- 56, 0, 294,
- 80, 0, 181
+ -1, 1, 153,
+ 57, 0, 323,
+ 94, 0, 195
};
-static int parser_action_row147[] = {
+static int parser_action_row155[] = {
1,
- -1, 1, 446
+ -1, 1, 474
};
-static int parser_action_row148[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row156[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row149[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row157[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row150[] = {
+static int parser_action_row158[] = {
1,
- -1, 1, 250
+ -1, 1, 264
};
-static int parser_action_row151[] = {
+static int parser_action_row159[] = {
2,
- -1, 3, 150,
- 49, 0, 174
+ -1, 3, 158,
+ 49, 0, 188
};
-static int parser_action_row152[] = {
+static int parser_action_row160[] = {
3,
- -1, 3, 151,
- 51, 0, 300,
- 82, 0, 301
+ -1, 3, 159,
+ 52, 0, 329,
+ 96, 0, 330
};
-static int parser_action_row153[] = {
+static int parser_action_row161[] = {
2,
- -1, 3, 152,
- 87, 0, 304
+ -1, 3, 160,
+ 101, 0, 333
};
-static int parser_action_row154[] = {
+static int parser_action_row162[] = {
2,
- -1, 1, 321,
- 51, 0, 242
+ -1, 1, 349,
+ 52, 0, 266
};
-static int parser_action_row155[] = {
+static int parser_action_row163[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row156[] = {
+static int parser_action_row164[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row157[] = {
+static int parser_action_row165[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row158[] = {
+static int parser_action_row166[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row159[] = {
+static int parser_action_row167[] = {
17,
- -1, 1, 427,
- 12, 0, 153,
+ -1, 1, 455,
+ 12, 0, 161,
38, 0, 39,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row160[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row168[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row161[] = {
+static int parser_action_row169[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row170[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row171[] = {
3,
- -1, 1, 309,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 337,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row162[] = {
+static int parser_action_row172[] = {
1,
- -1, 1, 164
+ -1, 1, 168
};
-static int parser_action_row163[] = {
+static int parser_action_row173[] = {
4,
- -1, 1, 260,
- 29, 0, 313,
- 30, 0, 314,
- 32, 0, 315
+ -1, 1, 279,
+ 29, 0, 344,
+ 30, 0, 345,
+ 32, 0, 346
};
-static int parser_action_row164[] = {
+static int parser_action_row174[] = {
1,
- -1, 1, 262
+ -1, 1, 281
};
-static int parser_action_row165[] = {
+static int parser_action_row175[] = {
+ 1,
+ -1, 1, 286
+};
+static int parser_action_row176[] = {
+ 10,
+ -1, 1, 288,
+ 39, 0, 347,
+ 80, 0, 348,
+ 84, 0, 349,
+ 85, 0, 350,
+ 86, 0, 351,
+ 87, 0, 352,
+ 89, 0, 353,
+ 90, 0, 354,
+ 92, 0, 355
+};
+static int parser_action_row177[] = {
+ 2,
+ -1, 1, 297,
+ 81, 0, 356
+};
+static int parser_action_row178[] = {
+ 2,
+ -1, 1, 299,
+ 82, 0, 357
+};
+static int parser_action_row179[] = {
3,
- -1, 1, 267,
- 74, 0, 316,
- 77, 0, 317
+ -1, 1, 301,
+ 88, 0, 358,
+ 91, 0, 359
};
-static int parser_action_row166[] = {
- 11,
- -1, 1, 269,
- 39, 0, 318,
- 64, 0, 319,
- 65, 0, 320,
- 70, 0, 321,
- 71, 0, 322,
- 72, 0, 323,
- 73, 0, 324,
- 75, 0, 325,
- 76, 0, 326,
- 78, 0, 327
+static int parser_action_row180[] = {
+ 3,
+ -1, 1, 303,
+ 74, 0, 360,
+ 75, 0, 361
};
-static int parser_action_row167[] = {
+static int parser_action_row181[] = {
4,
- -1, 1, 280,
- 66, 0, 328,
- 68, 0, 329,
- 69, 0, 330
+ -1, 1, 306,
+ 76, 0, 362,
+ 78, 0, 363,
+ 79, 0, 364
};
-static int parser_action_row168[] = {
+static int parser_action_row182[] = {
1,
- -1, 1, 283
+ -1, 1, 309
};
-static int parser_action_row169[] = {
+static int parser_action_row183[] = {
2,
- -1, 1, 287,
- 67, 0, 331
+ -1, 1, 313,
+ 77, 0, 365
};
-static int parser_action_row170[] = {
+static int parser_action_row184[] = {
1,
- -1, 1, 289
+ -1, 1, 315
};
-static int parser_action_row171[] = {
+static int parser_action_row185[] = {
4,
- -1, 1, 292,
- 53, 0, 212,
- 61, 0, 213,
- 63, 0, 332
+ -1, 1, 320,
+ 54, 0, 236,
+ 71, 0, 237,
+ 73, 0, 366
};
-static int parser_action_row172[] = {
+static int parser_action_row186[] = {
3,
- -1, 3, 171,
- 41, 0, 334,
- 83, 0, 335
+ -1, 3, 185,
+ 41, 0, 368,
+ 97, 0, 369
};
-static int parser_action_row173[] = {
+static int parser_action_row187[] = {
2,
- -1, 1, 424,
- 82, 0, 336
+ -1, 1, 452,
+ 96, 0, 370
};
-static int parser_action_row174[] = {
+static int parser_action_row188[] = {
3,
- -1, 1, 426,
- 81, 0, 47,
- 82, 0, 337
+ -1, 1, 454,
+ 95, 0, 48,
+ 96, 0, 371
};
-static int parser_action_row175[] = {
+static int parser_action_row189[] = {
2,
- -1, 1, 194,
- 82, 0, 339
+ -1, 1, 199,
+ 96, 0, 373
};
-static int parser_action_row176[] = {
+static int parser_action_row190[] = {
1,
- -1, 1, 169
+ -1, 1, 173
};
-static int parser_action_row177[] = {
+static int parser_action_row191[] = {
1,
- -1, 1, 166
+ -1, 1, 170
};
-static int parser_action_row178[] = {
+static int parser_action_row192[] = {
4,
- -1, 1, 309,
- 51, 0, 242,
- 56, 0, 340,
- 57, 0, 191
+ -1, 1, 337,
+ 52, 0, 266,
+ 57, 0, 374,
+ 58, 0, 206
};
-static int parser_action_row179[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row193[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row180[] = {
+static int parser_action_row194[] = {
2,
- -1, 1, 257,
- 24, 0, 342
+ -1, 1, 276,
+ 24, 0, 376
};
-static int parser_action_row181[] = {
+static int parser_action_row195[] = {
3,
- -1, 3, 180,
- 47, 0, 343,
- 81, 0, 344
+ -1, 3, 194,
+ 47, 0, 377,
+ 95, 0, 378
};
-static int parser_action_row182[] = {
+static int parser_action_row196[] = {
3,
-1, 1, 28,
13, 0, 26,
- 51, 0, 346
+ 52, 0, 380
};
-static int parser_action_row183[] = {
+static int parser_action_row197[] = {
1,
- -1, 1, 370
+ -1, 1, 398
};
-static int parser_action_row184[] = {
+static int parser_action_row198[] = {
1,
- -1, 1, 335
+ -1, 1, 363
};
-static int parser_action_row185[] = {
+static int parser_action_row199[] = {
1,
- -1, 1, 336
+ -1, 1, 364
};
-static int parser_action_row186[] = {
+static int parser_action_row200[] = {
1,
- -1, 1, 337
+ -1, 1, 365
};
-static int parser_action_row187[] = {
+static int parser_action_row201[] = {
1,
- -1, 1, 338
-};
-static int parser_action_row188[] = {
- 3,
- -1, 3, 187,
- 47, 0, 349,
- 81, 0, 350
+ -1, 1, 366
};
-static int parser_action_row189[] = {
- 49,
- -1, 1, 427,
- 12, 0, 153,
- 15, 0, 27,
- 16, 0, 28,
- 22, 0, 154,
+static int parser_action_row202[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 383,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row203[] = {
+ 3,
+ -1, 3, 202,
+ 47, 0, 386,
+ 95, 0, 387
+};
+static int parser_action_row204[] = {
+ 54,
+ -1, 1, 455,
+ 12, 0, 161,
+ 15, 0, 27,
+ 16, 0, 28,
+ 22, 0, 162,
25, 0, 30,
26, 0, 31,
27, 0, 32,
- 31, 0, 155,
- 33, 0, 352,
- 34, 0, 353,
- 35, 0, 354,
- 36, 0, 355,
+ 31, 0, 163,
+ 33, 0, 389,
+ 34, 0, 390,
+ 35, 0, 391,
+ 36, 0, 392,
37, 0, 38,
- 38, 0, 156,
- 40, 0, 157,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 47, 0, 349,
- 48, 0, 158,
- 50, 0, 356,
- 51, 0, 45,
- 53, 0, 357,
- 64, 0, 358,
- 65, 0, 359,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 80, 0, 181,
- 81, 0, 373,
- 82, 0, 374,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 47, 0, 386,
+ 48, 0, 166,
+ 50, 0, 44,
+ 51, 0, 393,
+ 52, 0, 46,
+ 54, 0, 394,
+ 74, 0, 395,
+ 75, 0, 396,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 404,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 94, 0, 195,
+ 95, 0, 414,
+ 96, 0, 415,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row190[] = {
- 23,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 394,
- 27, 0, 395,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row205[] = {
+ 25,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 436,
+ 27, 0, 437,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row191[] = {
+static int parser_action_row206[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row192[] = {
+static int parser_action_row207[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row193[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row208[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row194[] = {
+static int parser_action_row209[] = {
1,
- -1, 1, 238
+ -1, 1, 243
};
-static int parser_action_row195[] = {
+static int parser_action_row210[] = {
1,
- -1, 1, 239
+ -1, 1, 244
};
-static int parser_action_row196[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row211[] = {
+ 1,
+ -1, 1, 245
+};
+static int parser_action_row212[] = {
+ 1,
+ -1, 1, 246
+};
+static int parser_action_row213[] = {
+ 1,
+ -1, 1, 247
+};
+static int parser_action_row214[] = {
+ 1,
+ -1, 1, 248
+};
+static int parser_action_row215[] = {
+ 1,
+ -1, 1, 249
+};
+static int parser_action_row216[] = {
+ 1,
+ -1, 1, 250
+};
+static int parser_action_row217[] = {
+ 1,
+ -1, 1, 251
+};
+static int parser_action_row218[] = {
+ 1,
+ -1, 1, 252
+};
+static int parser_action_row219[] = {
+ 1,
+ -1, 1, 253
+};
+static int parser_action_row220[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row197[] = {
- 4,
- -1, 1, 308,
- 58, 0, 403,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row221[] = {
+ 13,
+ -1, 1, 336,
+ 59, 0, 445,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row198[] = {
+static int parser_action_row222[] = {
1,
- -1, 1, 180
+ -1, 1, 185
};
-static int parser_action_row199[] = {
+static int parser_action_row223[] = {
1,
- -1, 1, 339
+ -1, 1, 367
};
-static int parser_action_row200[] = {
+static int parser_action_row224[] = {
1,
- -1, 1, 340
+ -1, 1, 368
};
-static int parser_action_row201[] = {
+static int parser_action_row225[] = {
1,
- -1, 1, 341
+ -1, 1, 369
};
-static int parser_action_row202[] = {
+static int parser_action_row226[] = {
1,
- -1, 1, 343
+ -1, 1, 371
};
-static int parser_action_row203[] = {
+static int parser_action_row227[] = {
1,
- -1, 1, 342
+ -1, 1, 370
};
-static int parser_action_row204[] = {
+static int parser_action_row228[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row205[] = {
+static int parser_action_row229[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row206[] = {
+static int parser_action_row230[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row207[] = {
+static int parser_action_row231[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row208[] = {
+static int parser_action_row232[] = {
9,
- -1, 3, 207,
- 3, 0, 409,
- 4, 0, 410,
- 5, 0, 411,
- 6, 0, 412,
- 7, 0, 413,
- 8, 0, 414,
- 10, 0, 415,
- 17, 0, 416
+ -1, 3, 231,
+ 3, 0, 451,
+ 4, 0, 452,
+ 5, 0, 453,
+ 6, 0, 454,
+ 7, 0, 455,
+ 8, 0, 456,
+ 10, 0, 457,
+ 17, 0, 458
};
-static int parser_action_row209[] = {
+static int parser_action_row233[] = {
1,
- -1, 1, 136
+ -1, 1, 140
};
-static int parser_action_row210[] = {
+static int parser_action_row234[] = {
1,
- -1, 1, 980
+ -1, 1, 1048
};
-static int parser_action_row211[] = {
- 31,
- -1, 1, 156,
+static int parser_action_row235[] = {
+ 32,
+ -1, 1, 160,
12, 0, 25,
15, 0, 27,
16, 0, 28,
36, 0, 37,
37, 0, 38,
38, 0, 39,
- 41, 1, 427,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row212[] = {
+static int parser_action_row236[] = {
3,
- -1, 1, 155,
+ -1, 1, 159,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row213[] = {
+static int parser_action_row237[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row214[] = {
+static int parser_action_row238[] = {
1,
- -1, 1, 334
+ -1, 1, 362
};
-static int parser_action_row215[] = {
+static int parser_action_row239[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row216[] = {
- 4,
- -1, 1, 322,
- 58, 0, 423,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row240[] = {
+ 13,
+ -1, 1, 350,
+ 59, 0, 465,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row217[] = {
+static int parser_action_row241[] = {
1,
- -1, 1, 366
+ -1, 1, 394
};
-static int parser_action_row218[] = {
+static int parser_action_row242[] = {
1,
- -1, 1, 367
+ -1, 1, 395
};
-static int parser_action_row219[] = {
+static int parser_action_row243[] = {
1,
- -1, 1, 986
+ -1, 1, 1054
};
-static int parser_action_row220[] = {
+static int parser_action_row244[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row221[] = {
+static int parser_action_row245[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row222[] = {
+static int parser_action_row246[] = {
3,
- -1, 3, 221,
- 89, 0, 216,
- 90, 0, 217
+ -1, 3, 245,
+ 103, 0, 240,
+ 104, 0, 241
};
-static int parser_action_row223[] = {
- 24,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row247[] = {
+ 26,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 89, 1, 362,
- 90, 1, 362,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 103, 1, 390,
+ 104, 1, 390,
+ 105, 0, 55
};
-static int parser_action_row224[] = {
- 26,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 317,
- 61, 1, 317,
- 63, 1, 317,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row248[] = {
+ 28,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 345,
+ 71, 1, 345,
+ 73, 1, 345,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row225[] = {
- 4,
- -1, 1, 299,
- 58, 0, 432,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row249[] = {
+ 13,
+ -1, 1, 327,
+ 59, 0, 474,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row226[] = {
- 23,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 434,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row250[] = {
+ 25,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 476,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row227[] = {
- 29,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 311,
- 58, 0, 436,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 311,
- 63, 1, 311,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row251[] = {
+ 40,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 339,
+ 59, 0, 478,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 339,
+ 73, 1, 339,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row228[] = {
- 23,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 434,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row252[] = {
+ 25,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 476,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row229[] = {
- 30,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 315,
- 57, 0, 191,
- 58, 0, 441,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 315,
- 63, 1, 315,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row253[] = {
+ 41,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 343,
+ 58, 0, 206,
+ 59, 0, 483,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 343,
+ 73, 1, 343,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row230[] = {
+static int parser_action_row254[] = {
1,
- -1, 1, 997
+ -1, 1, 1065
};
-static int parser_action_row231[] = {
+static int parser_action_row255[] = {
3,
- -1, 1, 425,
- 12, 0, 445,
- 82, 0, 446
+ -1, 1, 453,
+ 12, 0, 487,
+ 96, 0, 488
};
-static int parser_action_row232[] = {
+static int parser_action_row256[] = {
2,
- -1, 1, 448,
- 0, 0, 97
+ -1, 1, 476,
+ 0, 0, 99
};
-static int parser_action_row233[] = {
+static int parser_action_row257[] = {
1,
-1, 1, 6
};
-static int parser_action_row234[] = {
+static int parser_action_row258[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
-static int parser_action_row235[] = {
+static int parser_action_row259[] = {
1,
-1, 1, 10
};
-static int parser_action_row236[] = {
+static int parser_action_row260[] = {
5,
-1, 1, 79,
- 18, 0, 203,
- 19, 0, 204,
- 20, 0, 205,
- 21, 0, 206
+ 18, 0, 227,
+ 19, 0, 228,
+ 20, 0, 229,
+ 21, 0, 230
};
-static int parser_action_row237[] = {
+static int parser_action_row261[] = {
1,
-1, 1, 12
};
-static int parser_action_row238[] = {
+static int parser_action_row262[] = {
8,
- -1, 3, 237,
- 4, 0, 410,
- 5, 0, 411,
- 6, 0, 412,
- 7, 0, 413,
- 8, 0, 414,
- 10, 0, 415,
- 17, 0, 416
+ -1, 3, 261,
+ 4, 0, 452,
+ 5, 0, 453,
+ 6, 0, 454,
+ 7, 0, 455,
+ 8, 0, 456,
+ 10, 0, 457,
+ 17, 0, 458
};
-static int parser_action_row239[] = {
+static int parser_action_row263[] = {
1,
-1, 1, 7
};
-static int parser_action_row240[] = {
+static int parser_action_row264[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 95, 1, 22
+ 109, 1, 22
};
-static int parser_action_row241[] = {
+static int parser_action_row265[] = {
1,
-1, 1, 11
};
-static int parser_action_row242[] = {
+static int parser_action_row266[] = {
1,
-1, 1, 13
};
-static int parser_action_row243[] = {
+static int parser_action_row267[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row244[] = {
+static int parser_action_row268[] = {
1,
- -1, 1, 701
+ -1, 1, 752
};
-static int parser_action_row245[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row269[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row246[] = {
- 19,
- -1, 1, 427,
- 12, 0, 105,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row270[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 107,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row247[] = {
+static int parser_action_row271[] = {
3,
- -1, 3, 246,
- 47, 0, 343,
- 81, 0, 344
+ -1, 3, 270,
+ 47, 0, 377,
+ 95, 0, 378
};
-static int parser_action_row248[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
- 42, 0, 40,
+static int parser_action_row272[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
+ 42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row249[] = {
+static int parser_action_row273[] = {
1,
- -1, 1, 716
+ -1, 1, 767
};
-static int parser_action_row250[] = {
+static int parser_action_row274[] = {
1,
- -1, 1, 717
+ -1, 1, 768
};
-static int parser_action_row251[] = {
+static int parser_action_row275[] = {
1,
- -1, 1, 718
+ -1, 1, 769
};
-static int parser_action_row252[] = {
+static int parser_action_row276[] = {
1,
- -1, 1, 719
+ -1, 1, 770
};
-static int parser_action_row253[] = {
+static int parser_action_row277[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row254[] = {
+static int parser_action_row278[] = {
3,
- -1, 3, 253,
- 41, 0, 263,
- 83, 0, 456
+ -1, 3, 277,
+ 41, 0, 289,
+ 97, 0, 498
};
-static int parser_action_row255[] = {
+static int parser_action_row279[] = {
4,
- -1, 3, 254,
- 53, 0, 212,
- 61, 0, 285,
- 63, 0, 457
+ -1, 3, 278,
+ 54, 0, 236,
+ 71, 0, 314,
+ 73, 0, 499
};
-static int parser_action_row256[] = {
- 23,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row280[] = {
+ 25,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 52, 0, 458,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 53, 0, 500,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row257[] = {
+static int parser_action_row281[] = {
1,
- -1, 1, 671
+ -1, 1, 721
};
-static int parser_action_row258[] = {
+static int parser_action_row282[] = {
1,
- -1, 1, 689
+ -1, 1, 720
};
-static int parser_action_row259[] = {
+static int parser_action_row283[] = {
1,
- -1, 1, 720
+ -1, 1, 722
};
-static int parser_action_row260[] = {
+static int parser_action_row284[] = {
1,
- -1, 1, 721
+ -1, 1, 740
};
-static int parser_action_row261[] = {
+static int parser_action_row285[] = {
1,
- -1, 1, 722
+ -1, 1, 771
};
-static int parser_action_row262[] = {
+static int parser_action_row286[] = {
1,
- -1, 1, 724
+ -1, 1, 772
};
-static int parser_action_row263[] = {
+static int parser_action_row287[] = {
1,
- -1, 1, 723
+ -1, 1, 773
};
-static int parser_action_row264[] = {
+static int parser_action_row288[] = {
+ 1,
+ -1, 1, 775
+};
+static int parser_action_row289[] = {
+ 1,
+ -1, 1, 774
+};
+static int parser_action_row290[] = {
2,
- -1, 1, 698,
- 51, 0, 242
+ -1, 1, 749,
+ 52, 0, 266
};
-static int parser_action_row265[] = {
+static int parser_action_row291[] = {
1,
- -1, 1, 680
+ -1, 1, 731
};
-static int parser_action_row266[] = {
+static int parser_action_row292[] = {
2,
- -1, 1, 692,
- 51, 0, 242
+ -1, 1, 743,
+ 52, 0, 266
};
-static int parser_action_row267[] = {
+static int parser_action_row293[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row268[] = {
+static int parser_action_row294[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 24, 0, 464
+ 24, 0, 506
};
-static int parser_action_row269[] = {
+static int parser_action_row295[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row270[] = {
+static int parser_action_row296[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row271[] = {
+static int parser_action_row297[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row272[] = {
+static int parser_action_row298[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row273[] = {
+static int parser_action_row299[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row274[] = {
+static int parser_action_row300[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row275[] = {
+static int parser_action_row301[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row276[] = {
+static int parser_action_row302[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row277[] = {
+static int parser_action_row303[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row278[] = {
+static int parser_action_row304[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row279[] = {
+static int parser_action_row305[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row280[] = {
+static int parser_action_row306[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row281[] = {
+static int parser_action_row307[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row282[] = {
+static int parser_action_row308[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row283[] = {
+static int parser_action_row309[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row284[] = {
+static int parser_action_row310[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row285[] = {
+static int parser_action_row311[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row286[] = {
+static int parser_action_row312[] = {
+ 3,
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row313[] = {
+ 3,
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row314[] = {
+ 3,
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row315[] = {
1,
- -1, 1, 715
+ -1, 1, 766
};
-static int parser_action_row287[] = {
+static int parser_action_row316[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row288[] = {
+static int parser_action_row317[] = {
1,
- -1, 1, 703
+ -1, 1, 754
};
-static int parser_action_row289[] = {
+static int parser_action_row318[] = {
3,
- -1, 1, 696,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 747,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row290[] = {
+static int parser_action_row319[] = {
2,
- -1, 1, 425,
- 82, 0, 485
+ -1, 1, 453,
+ 96, 0, 530
};
-static int parser_action_row291[] = {
+static int parser_action_row320[] = {
2,
- -1, 1, 151,
- 49, 1, 897
+ -1, 1, 155,
+ 49, 1, 961
};
-static int parser_action_row292[] = {
+static int parser_action_row321[] = {
2,
- -1, 1, 150,
- 49, 1, 896
+ -1, 1, 154,
+ 49, 1, 960
};
-static int parser_action_row293[] = {
+static int parser_action_row322[] = {
3,
- -1, 3, 292,
+ -1, 3, 321,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row294[] = {
+static int parser_action_row323[] = {
1,
- -1, 1, 240
+ -1, 1, 254
};
-static int parser_action_row295[] = {
+static int parser_action_row324[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row296[] = {
+static int parser_action_row325[] = {
2,
- -1, 1, 196,
- 58, 0, 489
+ -1, 1, 201,
+ 59, 0, 534
};
-static int parser_action_row297[] = {
+static int parser_action_row326[] = {
2,
- -1, 1, 149,
- 56, 0, 294
+ -1, 1, 153,
+ 57, 0, 323
};
-static int parser_action_row298[] = {
+static int parser_action_row327[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row299[] = {
+static int parser_action_row328[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row300[] = {
+static int parser_action_row329[] = {
1,
- -1, 1, 249
+ -1, 1, 263
};
-static int parser_action_row301[] = {
+static int parser_action_row330[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row302[] = {
+static int parser_action_row331[] = {
1,
- -1, 1, 418
+ -1, 1, 446
};
-static int parser_action_row303[] = {
+static int parser_action_row332[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row304[] = {
+static int parser_action_row333[] = {
2,
- -1, 1, 417,
- 55, 0, 495
+ -1, 1, 445,
+ 56, 0, 540
};
-static int parser_action_row305[] = {
+static int parser_action_row334[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row306[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row335[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row307[] = {
- 21,
- -1, 1, 427,
- 12, 0, 153,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row336[] = {
+ 23,
+ -1, 1, 455,
+ 12, 0, 161,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row308[] = {
+static int parser_action_row337[] = {
3,
- -1, 3, 307,
- 47, 0, 343,
- 81, 0, 344
+ -1, 3, 336,
+ 47, 0, 377,
+ 95, 0, 378
};
-static int parser_action_row309[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row338[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row310[] = {
+static int parser_action_row339[] = {
4,
- -1, 3, 309,
- 53, 0, 212,
- 61, 0, 213,
- 63, 0, 501
+ -1, 3, 338,
+ 54, 0, 236,
+ 71, 0, 237,
+ 73, 0, 546
};
-static int parser_action_row311[] = {
+static int parser_action_row340[] = {
3,
- -1, 3, 310,
- 41, 0, 334,
- 83, 0, 502
+ -1, 3, 339,
+ 41, 0, 368,
+ 97, 0, 547
};
-static int parser_action_row312[] = {
+static int parser_action_row341[] = {
1,
- -1, 1, 290
+ -1, 1, 317
};
-static int parser_action_row313[] = {
+static int parser_action_row342[] = {
1,
- -1, 1, 308
+ -1, 1, 316
};
-static int parser_action_row314[] = {
- 3,
- -1, 1, 445,
+static int parser_action_row343[] = {
+ 1,
+ -1, 1, 318
+};
+static int parser_action_row344[] = {
+ 1,
+ -1, 1, 336
+};
+static int parser_action_row345[] = {
+ 3,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row315[] = {
+static int parser_action_row346[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 24, 0, 504
+ 24, 0, 549
};
-static int parser_action_row316[] = {
+static int parser_action_row347[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row317[] = {
+static int parser_action_row348[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row318[] = {
+static int parser_action_row349[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row319[] = {
+static int parser_action_row350[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row320[] = {
+static int parser_action_row351[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row321[] = {
+static int parser_action_row352[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row322[] = {
+static int parser_action_row353[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row323[] = {
+static int parser_action_row354[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row324[] = {
+static int parser_action_row355[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row325[] = {
+static int parser_action_row356[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row326[] = {
+static int parser_action_row357[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row327[] = {
+static int parser_action_row358[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row328[] = {
+static int parser_action_row359[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row329[] = {
+static int parser_action_row360[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row330[] = {
+static int parser_action_row361[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row331[] = {
+static int parser_action_row362[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row332[] = {
+static int parser_action_row363[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row333[] = {
+static int parser_action_row364[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row334[] = {
+static int parser_action_row365[] = {
+ 3,
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row366[] = {
+ 3,
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row367[] = {
+ 3,
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row368[] = {
1,
- -1, 1, 322
+ -1, 1, 350
};
-static int parser_action_row335[] = {
+static int parser_action_row369[] = {
2,
- -1, 1, 317,
- 51, 0, 242
+ -1, 1, 345,
+ 52, 0, 266
};
-static int parser_action_row336[] = {
+static int parser_action_row370[] = {
1,
- -1, 1, 299
+ -1, 1, 327
};
-static int parser_action_row337[] = {
+static int parser_action_row371[] = {
2,
- -1, 1, 311,
- 51, 0, 242
+ -1, 1, 339,
+ 52, 0, 266
};
-static int parser_action_row338[] = {
+static int parser_action_row372[] = {
3,
- -1, 1, 315,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 343,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row339[] = {
+static int parser_action_row373[] = {
2,
- -1, 1, 425,
- 82, 0, 526
+ -1, 1, 453,
+ 96, 0, 574
};
-static int parser_action_row340[] = {
+static int parser_action_row374[] = {
1,
- -1, 1, 195
+ -1, 1, 200
};
-static int parser_action_row341[] = {
+static int parser_action_row375[] = {
1,
- -1, 1, 259
+ -1, 1, 278
};
-static int parser_action_row342[] = {
+static int parser_action_row376[] = {
2,
- -1, 1, 258,
- 24, 0, 527
+ -1, 1, 277,
+ 24, 0, 575
};
-static int parser_action_row343[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row377[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row344[] = {
+static int parser_action_row378[] = {
2,
- -1, 3, 343,
- 81, 0, 531
+ -1, 3, 377,
+ 95, 0, 579
};
-static int parser_action_row345[] = {
+static int parser_action_row379[] = {
3,
- -1, 1, 729,
- 53, 0, 532,
- 80, 0, 533
+ -1, 1, 780,
+ 54, 0, 580,
+ 94, 0, 581
};
-static int parser_action_row346[] = {
+static int parser_action_row380[] = {
2,
- -1, 3, 345,
- 63, 0, 536
+ -1, 3, 379,
+ 73, 0, 584
};
-static int parser_action_row347[] = {
+static int parser_action_row381[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row348[] = {
+static int parser_action_row382[] = {
5,
-1, 1, 79,
- 18, 0, 203,
- 19, 0, 204,
- 20, 0, 205,
- 21, 0, 206
+ 18, 0, 227,
+ 19, 0, 228,
+ 20, 0, 229,
+ 21, 0, 230
};
-static int parser_action_row349[] = {
+static int parser_action_row383[] = {
1,
- -1, 1, 368
+ -1, 1, 396
};
-static int parser_action_row350[] = {
+static int parser_action_row384[] = {
+ 6,
+ -1, 1, 337,
+ 52, 0, 266,
+ 57, 0, 323,
+ 58, 0, 206,
+ 59, 1, 153,
+ 94, 0, 195
+};
+static int parser_action_row385[] = {
+ 3,
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row386[] = {
+ 1,
+ -1, 1, 273
+};
+static int parser_action_row387[] = {
2,
- -1, 3, 349,
- 81, 0, 539
+ -1, 3, 386,
+ 95, 0, 590
};
-static int parser_action_row351[] = {
+static int parser_action_row388[] = {
3,
- -1, 1, 371,
- 53, 0, 540,
- 80, 0, 181
+ -1, 1, 399,
+ 54, 0, 591,
+ 94, 0, 195
};
-static int parser_action_row352[] = {
+static int parser_action_row389[] = {
2,
- -1, 3, 351,
- 56, 0, 542
+ -1, 3, 388,
+ 57, 0, 593
};
-static int parser_action_row353[] = {
- 24,
- -1, 1, 904,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row390[] = {
+ 26,
+ -1, 1, 968,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row354[] = {
+static int parser_action_row391[] = {
2,
- -1, 1, 909,
- 49, 0, 174
+ -1, 1, 973,
+ 49, 0, 188
};
-static int parser_action_row355[] = {
+static int parser_action_row392[] = {
2,
- -1, 1, 906,
- 49, 0, 174
+ -1, 1, 970,
+ 49, 0, 188
};
-static int parser_action_row356[] = {
+static int parser_action_row393[] = {
1,
- -1, 1, 908
+ -1, 1, 972
};
-static int parser_action_row357[] = {
+static int parser_action_row394[] = {
2,
- -1, 3, 356,
- 11, 0, 546
+ -1, 3, 393,
+ 11, 0, 597
};
-static int parser_action_row358[] = {
+static int parser_action_row395[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 54, 0, 547
+ 55, 0, 598
};
-static int parser_action_row359[] = {
- 1,
- -1, 1, 457
+static int parser_action_row396[] = {
+ 24,
+ -1, 1, 485,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row360[] = {
- 22,
- -1, 1, 458,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row397[] = {
+ 24,
+ -1, 1, 486,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row361[] = {
+static int parser_action_row398[] = {
1,
- -1, 1, 459
+ -1, 1, 487
};
-static int parser_action_row362[] = {
+static int parser_action_row399[] = {
1,
- -1, 1, 460
+ -1, 1, 488
};
-static int parser_action_row363[] = {
+static int parser_action_row400[] = {
1,
- -1, 1, 461
+ -1, 1, 489
};
-static int parser_action_row364[] = {
+static int parser_action_row401[] = {
1,
- -1, 1, 462
+ -1, 1, 490
};
-static int parser_action_row365[] = {
+static int parser_action_row402[] = {
1,
- -1, 1, 463
+ -1, 1, 491
};
-static int parser_action_row366[] = {
+static int parser_action_row403[] = {
1,
- -1, 1, 464
+ -1, 1, 492
};
-static int parser_action_row367[] = {
+static int parser_action_row404[] = {
1,
- -1, 1, 467
+ -1, 1, 493
};
-static int parser_action_row368[] = {
- 1,
- -1, 1, 465
+static int parser_action_row405[] = {
+ 24,
+ -1, 1, 494,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row369[] = {
+static int parser_action_row406[] = {
1,
- -1, 1, 469
+ -1, 1, 495
};
-static int parser_action_row370[] = {
+static int parser_action_row407[] = {
1,
- -1, 1, 468
+ -1, 1, 496
};
-static int parser_action_row371[] = {
+static int parser_action_row408[] = {
1,
- -1, 1, 466
+ -1, 1, 499
};
-static int parser_action_row372[] = {
+static int parser_action_row409[] = {
1,
- -1, 1, 470
+ -1, 1, 497
};
-static int parser_action_row373[] = {
+static int parser_action_row410[] = {
1,
- -1, 1, 472
-};
-static int parser_action_row374[] = {
- 4,
- -1, 1, 371,
- 53, 0, 540,
- 57, 0, 190,
- 80, 0, 181
-};
-static int parser_action_row375[] = {
- 6,
- -1, 1, 309,
- 51, 0, 242,
- 57, 0, 191,
- 58, 0, 548,
- 59, 0, 193,
- 60, 0, 194
+ -1, 1, 501
};
-static int parser_action_row376[] = {
+static int parser_action_row411[] = {
1,
- -1, 1, 396
+ -1, 1, 500
};
-static int parser_action_row377[] = {
+static int parser_action_row412[] = {
1,
- -1, 1, 902
+ -1, 1, 498
};
-static int parser_action_row378[] = {
+static int parser_action_row413[] = {
1,
- -1, 1, 903
+ -1, 1, 502
};
-static int parser_action_row379[] = {
+static int parser_action_row414[] = {
1,
- -1, 1, 911
+ -1, 1, 504
};
-static int parser_action_row380[] = {
+static int parser_action_row415[] = {
+ 4,
+ -1, 1, 399,
+ 54, 0, 591,
+ 58, 0, 205,
+ 94, 0, 195
+};
+static int parser_action_row416[] = {
+ 15,
+ -1, 1, 337,
+ 52, 0, 266,
+ 58, 0, 206,
+ 59, 0, 599,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
+};
+static int parser_action_row417[] = {
1,
- -1, 1, 913
+ -1, 1, 424
};
-static int parser_action_row381[] = {
+static int parser_action_row418[] = {
1,
- -1, 1, 912
+ -1, 1, 966
};
-static int parser_action_row382[] = {
+static int parser_action_row419[] = {
1,
- -1, 1, 914
+ -1, 1, 967
};
-static int parser_action_row383[] = {
+static int parser_action_row420[] = {
1,
- -1, 1, 915
+ -1, 1, 975
};
-static int parser_action_row384[] = {
+static int parser_action_row421[] = {
1,
- -1, 1, 397
+ -1, 1, 977
};
-static int parser_action_row385[] = {
+static int parser_action_row422[] = {
+ 1,
+ -1, 1, 976
+};
+static int parser_action_row423[] = {
+ 1,
+ -1, 1, 978
+};
+static int parser_action_row424[] = {
+ 1,
+ -1, 1, 979
+};
+static int parser_action_row425[] = {
+ 1,
+ -1, 1, 980
+};
+static int parser_action_row426[] = {
+ 1,
+ -1, 1, 425
+};
+static int parser_action_row427[] = {
4,
- -1, 1, 292,
- 53, 0, 212,
- 61, 0, 213,
- 63, 0, 549
+ -1, 1, 320,
+ 54, 0, 236,
+ 71, 0, 237,
+ 73, 0, 600
};
-static int parser_action_row386[] = {
+static int parser_action_row428[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row387[] = {
+static int parser_action_row429[] = {
1,
- -1, 1, 401
+ -1, 1, 429
};
-static int parser_action_row388[] = {
+static int parser_action_row430[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 55, 0, 551
+ 56, 0, 602
};
-static int parser_action_row389[] = {
+static int parser_action_row431[] = {
3,
- -1, 3, 388,
- 41, 0, 334,
- 83, 0, 224
+ -1, 3, 430,
+ 41, 0, 368,
+ 97, 0, 248
};
-static int parser_action_row390[] = {
- 18,
- -1, 1, 424,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 556,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 82, 0, 557
+static int parser_action_row432[] = {
+ 22,
+ -1, 1, 452,
+ 54, 0, 606,
+ 74, 0, 607,
+ 75, 0, 608,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 609,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 96, 0, 610
};
-static int parser_action_row391[] = {
+static int parser_action_row433[] = {
1,
- -1, 1, 475
+ -1, 1, 507
};
-static int parser_action_row392[] = {
+static int parser_action_row434[] = {
1,
- -1, 1, 400
+ -1, 1, 428
};
-static int parser_action_row393[] = {
+static int parser_action_row435[] = {
1,
- -1, 1, 398
+ -1, 1, 426
};
-static int parser_action_row394[] = {
- 19,
- -1, 1, 426,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 556,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 81, 0, 47,
- 82, 0, 559
+static int parser_action_row436[] = {
+ 23,
+ -1, 1, 454,
+ 54, 0, 606,
+ 74, 0, 607,
+ 75, 0, 608,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 609,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 95, 0, 48,
+ 96, 0, 612
};
-static int parser_action_row395[] = {
+static int parser_action_row437[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row396[] = {
+static int parser_action_row438[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row397[] = {
+static int parser_action_row439[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row398[] = {
+static int parser_action_row440[] = {
2,
- -1, 1, 149,
- 56, 0, 294
+ -1, 1, 153,
+ 57, 0, 323
};
-static int parser_action_row399[] = {
+static int parser_action_row441[] = {
2,
- -1, 1, 353,
- 55, 0, 566
+ -1, 1, 381,
+ 56, 0, 619
};
-static int parser_action_row400[] = {
+static int parser_action_row442[] = {
1,
- -1, 1, 437
+ -1, 1, 465
};
-static int parser_action_row401[] = {
+static int parser_action_row443[] = {
1,
- -1, 1, 436
+ -1, 1, 464
};
-static int parser_action_row402[] = {
+static int parser_action_row444[] = {
1,
- -1, 1, 211
+ -1, 1, 216
};
-static int parser_action_row403[] = {
+static int parser_action_row445[] = {
1,
- -1, 1, 230
+ -1, 1, 235
};
-static int parser_action_row404[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row446[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row405[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row447[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row406[] = {
+static int parser_action_row448[] = {
1,
-1, 1, 80
};
-static int parser_action_row407[] = {
+static int parser_action_row449[] = {
1,
-1, 1, 82
};
-static int parser_action_row408[] = {
+static int parser_action_row450[] = {
1,
-1, 1, 81
};
-static int parser_action_row409[] = {
+static int parser_action_row451[] = {
1,
-1, 1, 83
};
-static int parser_action_row410[] = {
+static int parser_action_row452[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row411[] = {
+static int parser_action_row453[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row412[] = {
+static int parser_action_row454[] = {
1,
-1, 1, 30
};
-static int parser_action_row413[] = {
+static int parser_action_row455[] = {
2,
- -1, 3, 412,
- 5, 0, 573
+ -1, 3, 454,
+ 5, 0, 626
};
-static int parser_action_row414[] = {
+static int parser_action_row456[] = {
1,
-1, 1, 32
};
-static int parser_action_row415[] = {
+static int parser_action_row457[] = {
1,
-1, 1, 33
};
-static int parser_action_row416[] = {
- 19,
- -1, 3, 415,
- 53, 0, 574,
- 64, 0, 575,
- 65, 0, 576,
- 66, 0, 577,
- 67, 0, 578,
- 68, 0, 579,
- 69, 0, 580,
- 70, 0, 581,
- 71, 0, 582,
- 72, 0, 583,
- 73, 0, 584,
- 74, 0, 585,
- 75, 0, 586,
- 76, 0, 587,
- 77, 0, 588,
- 78, 0, 589,
- 81, 0, 47,
- 82, 0, 590
+static int parser_action_row458[] = {
+ 23,
+ -1, 3, 457,
+ 54, 0, 627,
+ 74, 0, 628,
+ 75, 0, 629,
+ 76, 0, 630,
+ 77, 0, 631,
+ 78, 0, 632,
+ 79, 0, 633,
+ 80, 0, 634,
+ 81, 0, 635,
+ 82, 0, 636,
+ 83, 0, 637,
+ 84, 0, 638,
+ 85, 0, 639,
+ 86, 0, 640,
+ 87, 0, 641,
+ 88, 0, 642,
+ 89, 0, 643,
+ 90, 0, 644,
+ 91, 0, 645,
+ 92, 0, 646,
+ 95, 0, 48,
+ 96, 0, 647
};
-static int parser_action_row417[] = {
+static int parser_action_row459[] = {
2,
- -1, 3, 416,
- 5, 0, 595
+ -1, 3, 458,
+ 5, 0, 652
};
-static int parser_action_row418[] = {
+static int parser_action_row460[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row419[] = {
+static int parser_action_row461[] = {
1,
- -1, 1, 160
+ -1, 1, 164
};
-static int parser_action_row420[] = {
+static int parser_action_row462[] = {
1,
- -1, 1, 981
+ -1, 1, 1049
};
-static int parser_action_row421[] = {
- 31,
- -1, 1, 157,
+static int parser_action_row463[] = {
+ 32,
+ -1, 1, 161,
12, 0, 25,
15, 0, 27,
16, 0, 28,
36, 0, 37,
37, 0, 38,
38, 0, 39,
- 41, 1, 427,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row422[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row464[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row423[] = {
+static int parser_action_row465[] = {
5,
- -1, 1, 427,
- 12, 0, 598,
- 46, 0, 599,
- 81, 0, 47,
- 82, 0, 600
+ -1, 1, 455,
+ 12, 0, 655,
+ 46, 0, 656,
+ 95, 0, 48,
+ 96, 0, 657
};
-static int parser_action_row424[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row466[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row425[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row467[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row426[] = {
- 24,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row468[] = {
+ 26,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 89, 1, 365,
- 90, 1, 365,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 103, 1, 393,
+ 104, 1, 393,
+ 105, 0, 55
};
-static int parser_action_row427[] = {
+static int parser_action_row469[] = {
1,
- -1, 1, 359
+ -1, 1, 387
};
-static int parser_action_row428[] = {
+static int parser_action_row470[] = {
1,
- -1, 1, 987
+ -1, 1, 1055
};
-static int parser_action_row429[] = {
+static int parser_action_row471[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row430[] = {
+static int parser_action_row472[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row431[] = {
+static int parser_action_row473[] = {
1,
- -1, 1, 316
+ -1, 1, 344
};
-static int parser_action_row432[] = {
+static int parser_action_row474[] = {
1,
- -1, 1, 184
+ -1, 1, 189
};
-static int parser_action_row433[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row475[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row434[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row476[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row435[] = {
+static int parser_action_row477[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row436[] = {
+static int parser_action_row478[] = {
1,
- -1, 1, 190
+ -1, 1, 195
};
-static int parser_action_row437[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row479[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row438[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row480[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row439[] = {
- 4,
- -1, 1, 310,
- 58, 0, 614,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row481[] = {
+ 13,
+ -1, 1, 338,
+ 59, 0, 671,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row440[] = {
+static int parser_action_row482[] = {
1,
- -1, 1, 181
+ -1, 1, 186
};
-static int parser_action_row441[] = {
+static int parser_action_row483[] = {
1,
- -1, 1, 192
+ -1, 1, 197
};
-static int parser_action_row442[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row484[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row443[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row485[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row444[] = {
- 4,
- -1, 1, 314,
- 58, 0, 618,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row486[] = {
+ 13,
+ -1, 1, 342,
+ 59, 0, 675,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row445[] = {
+static int parser_action_row487[] = {
1,
- -1, 1, 183
+ -1, 1, 188
};
-static int parser_action_row446[] = {
- 23,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 434,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row488[] = {
+ 25,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 476,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row447[] = {
- 29,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 313,
- 58, 0, 621,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 313,
- 63, 1, 313,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row489[] = {
+ 40,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 341,
+ 59, 0, 678,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 341,
+ 73, 1, 341,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row448[] = {
+static int parser_action_row490[] = {
1,
-1, 1, 14
};
-static int parser_action_row449[] = {
+static int parser_action_row491[] = {
7,
- -1, 3, 448,
- 5, 0, 411,
- 6, 0, 412,
- 7, 0, 413,
- 8, 0, 414,
- 10, 0, 415,
- 17, 0, 416
+ -1, 3, 490,
+ 5, 0, 453,
+ 6, 0, 454,
+ 7, 0, 455,
+ 8, 0, 456,
+ 10, 0, 457,
+ 17, 0, 458
};
-static int parser_action_row450[] = {
+static int parser_action_row492[] = {
1,
-1, 1, 15
};
-static int parser_action_row451[] = {
- 23,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row493[] = {
+ 25,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 52, 0, 625,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 53, 0, 682,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row452[] = {
+static int parser_action_row494[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row453[] = {
+static int parser_action_row495[] = {
1,
- -1, 1, 649
+ -1, 1, 691
};
-static int parser_action_row454[] = {
+static int parser_action_row496[] = {
3,
- -1, 1, 675,
- 51, 0, 242,
- 63, 0, 628
+ -1, 1, 726,
+ 52, 0, 266,
+ 73, 0, 685
};
-static int parser_action_row455[] = {
+static int parser_action_row497[] = {
1,
- -1, 1, 672
+ -1, 1, 723
};
-static int parser_action_row456[] = {
+static int parser_action_row498[] = {
3,
- -1, 3, 455,
- 47, 0, 343,
- 81, 0, 344
+ -1, 3, 497,
+ 47, 0, 377,
+ 95, 0, 378
};
-static int parser_action_row457[] = {
+static int parser_action_row499[] = {
4,
- -1, 1, 677,
- 53, 1, 680,
- 61, 1, 680,
- 63, 1, 680
+ -1, 1, 728,
+ 54, 1, 731,
+ 71, 1, 731,
+ 73, 1, 731
};
-static int parser_action_row458[] = {
+static int parser_action_row500[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row459[] = {
- 7,
- -1, 1, 409,
- 53, 1, 406,
- 58, 1, 406,
- 59, 1, 406,
- 60, 1, 406,
- 61, 1, 406,
- 63, 1, 406
+static int parser_action_row501[] = {
+ 8,
+ -1, 1, 434,
+ 0, 1, 437,
+ 1, 1, 437,
+ 9, 1, 437,
+ 24, 1, 437,
+ 53, 1, 437,
+ 56, 1, 437,
+ 109, 1, 437
};
-static int parser_action_row460[] = {
+static int parser_action_row502[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row461[] = {
+static int parser_action_row503[] = {
2,
- -1, 3, 460,
- 52, 0, 633
+ -1, 3, 502,
+ 53, 0, 690
};
-static int parser_action_row462[] = {
+static int parser_action_row504[] = {
1,
- -1, 1, 697
+ -1, 1, 748
};
-static int parser_action_row463[] = {
+static int parser_action_row505[] = {
1,
- -1, 1, 691
+ -1, 1, 742
};
-static int parser_action_row464[] = {
- 19,
- -1, 1, 427,
- 12, 0, 105,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row506[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 107,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row465[] = {
+static int parser_action_row507[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row466[] = {
- 19,
- -1, 1, 427,
- 12, 0, 105,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row508[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 107,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row467[] = {
- 19,
- -1, 1, 427,
- 12, 0, 105,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row509[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 107,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row468[] = {
- 18,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row510[] = {
+ 3,
+ -1, 3, 509,
+ 47, 0, 386,
+ 95, 0, 387
};
-static int parser_action_row469[] = {
- 18,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row511[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row470[] = {
- 3,
- -1, 3, 469,
- 47, 0, 349,
- 81, 0, 350
+static int parser_action_row512[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row471[] = {
- 18,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row513[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row472[] = {
- 18,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row514[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row473[] = {
- 18,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row515[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row474[] = {
- 18,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row516[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row475[] = {
- 18,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row517[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row476[] = {
- 18,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row518[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row477[] = {
- 18,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row519[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row478[] = {
- 18,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row520[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row479[] = {
- 18,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row521[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row480[] = {
- 18,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row522[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row481[] = {
- 18,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row523[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row482[] = {
- 18,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row524[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row483[] = {
- 18,
- -1, 1, 427,
- 12, 0, 105,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row525[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row484[] = {
+static int parser_action_row526[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
+};
+static int parser_action_row527[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
+};
+static int parser_action_row528[] = {
+ 20,
+ -1, 1, 455,
+ 12, 0, 107,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
+};
+static int parser_action_row529[] = {
5,
- -1, 1, 427,
- 12, 0, 654,
- 46, 0, 655,
- 81, 0, 47,
- 82, 0, 656
+ -1, 1, 455,
+ 12, 0, 714,
+ 46, 0, 715,
+ 95, 0, 48,
+ 96, 0, 716
};
-static int parser_action_row485[] = {
+static int parser_action_row530[] = {
1,
- -1, 1, 695
+ -1, 1, 746
};
-static int parser_action_row486[] = {
+static int parser_action_row531[] = {
2,
- -1, 1, 694,
- 51, 0, 242
+ -1, 1, 745,
+ 52, 0, 266
};
-static int parser_action_row487[] = {
- 30,
- -1, 1, 427,
- 9, 0, 661,
+static int parser_action_row532[] = {
+ 31,
+ -1, 1, 455,
+ 9, 0, 721,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row488[] = {
+static int parser_action_row533[] = {
3,
- -1, 3, 487,
+ -1, 3, 532,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row489[] = {
+static int parser_action_row534[] = {
3,
- -1, 3, 488,
- 47, 0, 349,
- 81, 0, 350
+ -1, 3, 533,
+ 47, 0, 386,
+ 95, 0, 387
};
-static int parser_action_row490[] = {
+static int parser_action_row535[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row491[] = {
+static int parser_action_row536[] = {
2,
- -1, 1, 197,
- 58, 0, 665
+ -1, 1, 202,
+ 59, 0, 725
};
-static int parser_action_row492[] = {
+static int parser_action_row537[] = {
2,
- -1, 3, 491,
- 23, 0, 666
+ -1, 3, 536,
+ 23, 0, 726
};
-static int parser_action_row493[] = {
+static int parser_action_row538[] = {
2,
- -1, 3, 492,
- 15, 0, 667
+ -1, 3, 537,
+ 15, 0, 727
};
-static int parser_action_row494[] = {
+static int parser_action_row539[] = {
2,
- -1, 3, 493,
- 82, 0, 301
+ -1, 3, 538,
+ 96, 0, 330
};
-static int parser_action_row495[] = {
+static int parser_action_row540[] = {
2,
- -1, 3, 494,
- 28, 0, 669
+ -1, 3, 539,
+ 28, 0, 729
};
-static int parser_action_row496[] = {
+static int parser_action_row541[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row497[] = {
+static int parser_action_row542[] = {
1,
- -1, 1, 134
+ -1, 1, 138
};
-static int parser_action_row498[] = {
+static int parser_action_row543[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row499[] = {
+static int parser_action_row544[] = {
1,
- -1, 1, 268
+ -1, 1, 287
};
-static int parser_action_row500[] = {
+static int parser_action_row545[] = {
3,
- -1, 1, 294,
- 51, 0, 242,
- 63, 0, 536
+ -1, 1, 322,
+ 52, 0, 266,
+ 73, 0, 584
};
-static int parser_action_row501[] = {
+static int parser_action_row546[] = {
1,
- -1, 1, 291
+ -1, 1, 319
};
-static int parser_action_row502[] = {
+static int parser_action_row547[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row503[] = {
+static int parser_action_row548[] = {
4,
- -1, 1, 296,
- 53, 1, 299,
- 61, 1, 299,
- 63, 1, 299
+ -1, 1, 324,
+ 54, 1, 327,
+ 71, 1, 327,
+ 73, 1, 327
};
-static int parser_action_row504[] = {
- 21,
- -1, 1, 427,
- 12, 0, 153,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row549[] = {
+ 23,
+ -1, 1, 455,
+ 12, 0, 161,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row505[] = {
+static int parser_action_row550[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row506[] = {
- 21,
- -1, 1, 427,
- 12, 0, 153,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row551[] = {
+ 23,
+ -1, 1, 455,
+ 12, 0, 161,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row507[] = {
- 21,
- -1, 1, 427,
- 12, 0, 153,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row552[] = {
+ 23,
+ -1, 1, 455,
+ 12, 0, 161,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row508[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row553[] = {
+ 3,
+ -1, 3, 552,
+ 47, 0, 386,
+ 95, 0, 387
+};
+static int parser_action_row554[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row509[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row555[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row510[] = {
- 3,
- -1, 3, 509,
- 47, 0, 349,
- 81, 0, 350
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row511[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row556[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row512[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row557[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row513[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row558[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row514[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row559[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row515[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row560[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row516[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row561[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row517[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row562[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row518[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row563[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row519[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row564[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row520[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row565[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row521[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row566[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row522[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row567[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row523[] = {
- 20,
- -1, 1, 427,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row568[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row524[] = {
+static int parser_action_row569[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row570[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row571[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row572[] = {
5,
- -1, 1, 427,
- 12, 0, 694,
- 46, 0, 599,
- 81, 0, 47,
- 82, 0, 695
+ -1, 1, 455,
+ 12, 0, 757,
+ 46, 0, 656,
+ 95, 0, 48,
+ 96, 0, 758
};
-static int parser_action_row525[] = {
+static int parser_action_row573[] = {
1,
- -1, 1, 310
+ -1, 1, 338
};
-static int parser_action_row526[] = {
+static int parser_action_row574[] = {
1,
- -1, 1, 314
+ -1, 1, 342
};
-static int parser_action_row527[] = {
+static int parser_action_row575[] = {
2,
- -1, 1, 313,
- 51, 0, 242
+ -1, 1, 341,
+ 52, 0, 266
};
-static int parser_action_row528[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row576[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row529[] = {
+static int parser_action_row577[] = {
1,
- -1, 1, 152
+ -1, 1, 156
};
-static int parser_action_row530[] = {
+static int parser_action_row578[] = {
1,
- -1, 1, 255
+ -1, 1, 274
};
-static int parser_action_row531[] = {
- 30,
- -1, 1, 427,
- 9, 0, 701,
+static int parser_action_row579[] = {
+ 31,
+ -1, 1, 455,
+ 9, 0, 764,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row532[] = {
+static int parser_action_row580[] = {
3,
- -1, 1, 729,
- 53, 0, 703,
- 80, 0, 533
+ -1, 1, 780,
+ 54, 0, 766,
+ 94, 0, 581
};
-static int parser_action_row533[] = {
+static int parser_action_row581[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row534[] = {
+static int parser_action_row582[] = {
3,
-1, 1, 28,
13, 0, 26,
- 51, 0, 706
+ 52, 0, 769
};
-static int parser_action_row535[] = {
+static int parser_action_row583[] = {
1,
- -1, 1, 728
+ -1, 1, 779
};
-static int parser_action_row536[] = {
+static int parser_action_row584[] = {
1,
- -1, 1, 566
+ -1, 1, 607
};
-static int parser_action_row537[] = {
+static int parser_action_row585[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row538[] = {
+static int parser_action_row586[] = {
2,
-1, 1, 28,
13, 0, 26
};
-static int parser_action_row539[] = {
+static int parser_action_row587[] = {
4,
- -1, 3, 538,
- 6, 0, 713,
- 17, 0, 714,
- 82, 0, 715
+ -1, 3, 586,
+ 6, 0, 776,
+ 17, 0, 777,
+ 96, 0, 778
};
-static int parser_action_row540[] = {
+static int parser_action_row588[] = {
+ 2,
+ -1, 3, 587,
+ 59, 0, 780
+};
+static int parser_action_row589[] = {
+ 2,
+ -1, 1, 153,
+ 57, 0, 323
+};
+static int parser_action_row590[] = {
+ 2,
+ -1, 3, 589,
+ 15, 0, 782
+};
+static int parser_action_row591[] = {
3,
- -1, 1, 371,
- 53, 0, 717,
- 80, 0, 181
+ -1, 1, 399,
+ 54, 0, 783,
+ 94, 0, 195
};
-static int parser_action_row541[] = {
+static int parser_action_row592[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row542[] = {
+static int parser_action_row593[] = {
1,
- -1, 1, 140
+ -1, 1, 144
};
-static int parser_action_row543[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row594[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row544[] = {
+static int parser_action_row595[] = {
1,
- -1, 1, 905
+ -1, 1, 969
};
-static int parser_action_row545[] = {
+static int parser_action_row596[] = {
1,
- -1, 1, 910
+ -1, 1, 974
};
-static int parser_action_row546[] = {
+static int parser_action_row597[] = {
1,
- -1, 1, 907
+ -1, 1, 971
};
-static int parser_action_row547[] = {
+static int parser_action_row598[] = {
3,
- -1, 3, 546,
- 47, 0, 349,
- 81, 0, 350
+ -1, 3, 597,
+ 47, 0, 386,
+ 95, 0, 387
};
-static int parser_action_row548[] = {
+static int parser_action_row599[] = {
2,
- -1, 1, 471,
- 58, 0, 722
+ -1, 1, 503,
+ 59, 0, 788
};
-static int parser_action_row549[] = {
- 24,
- -1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row600[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row550[] = {
+static int parser_action_row601[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row551[] = {
+static int parser_action_row602[] = {
2,
- -1, 3, 550,
- 52, 0, 724
+ -1, 3, 601,
+ 53, 0, 790
};
-static int parser_action_row552[] = {
+static int parser_action_row603[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row553[] = {
+static int parser_action_row604[] = {
1,
- -1, 1, 982
+ -1, 1, 1050
};
-static int parser_action_row554[] = {
+static int parser_action_row605[] = {
2,
- -1, 3, 553,
- 52, 0, 726
+ -1, 3, 604,
+ 53, 0, 792
};
-static int parser_action_row555[] = {
+static int parser_action_row606[] = {
2,
- -1, 1, 351,
- 55, 0, 551
+ -1, 1, 379,
+ 56, 0, 602
};
-static int parser_action_row556[] = {
+static int parser_action_row607[] = {
2,
- -1, 3, 555,
- 54, 0, 547
+ -1, 3, 606,
+ 55, 0, 598
};
-static int parser_action_row557[] = {
+static int parser_action_row608[] = {
1,
- -1, 1, 458
-};
-static int parser_action_row558[] = {
- 5,
- -1, 1, 311,
- 51, 0, 242,
- 58, 0, 728,
- 59, 0, 193,
- 60, 0, 194
+ -1, 1, 485
};
-static int parser_action_row559[] = {
+static int parser_action_row609[] = {
1,
- -1, 1, 476
+ -1, 1, 486
};
-static int parser_action_row560[] = {
- 6,
- -1, 1, 315,
- 51, 0, 242,
- 57, 0, 191,
- 58, 0, 729,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row610[] = {
+ 1,
+ -1, 1, 494
};
-static int parser_action_row561[] = {
- 18,
- -1, 1, 425,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 556,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 82, 0, 730
+static int parser_action_row611[] = {
+ 14,
+ -1, 1, 339,
+ 52, 0, 266,
+ 59, 0, 794,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row562[] = {
+static int parser_action_row612[] = {
1,
- -1, 1, 478
+ -1, 1, 508
};
-static int parser_action_row563[] = {
+static int parser_action_row613[] = {
+ 15,
+ -1, 1, 343,
+ 52, 0, 266,
+ 58, 0, 206,
+ 59, 0, 795,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
+};
+static int parser_action_row614[] = {
22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+ -1, 1, 453,
+ 54, 0, 606,
+ 74, 0, 607,
+ 75, 0, 608,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 609,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 96, 0, 796
+};
+static int parser_action_row615[] = {
+ 1,
+ -1, 1, 510
+};
+static int parser_action_row616[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row564[] = {
+static int parser_action_row617[] = {
3,
- -1, 3, 563,
- 51, 0, 300,
- 82, 0, 301
+ -1, 3, 616,
+ 52, 0, 329,
+ 96, 0, 330
};
-static int parser_action_row565[] = {
+static int parser_action_row618[] = {
2,
- -1, 1, 356,
- 62, 0, 734
+ -1, 1, 384,
+ 72, 0, 800
};
-static int parser_action_row566[] = {
+static int parser_action_row619[] = {
2,
- -1, 3, 565,
- 54, 0, 735
+ -1, 3, 618,
+ 55, 0, 801
};
-static int parser_action_row567[] = {
+static int parser_action_row620[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row568[] = {
+static int parser_action_row621[] = {
1,
- -1, 1, 984
+ -1, 1, 1052
};
-static int parser_action_row569[] = {
+static int parser_action_row622[] = {
2,
- -1, 1, 354,
- 55, 0, 566
+ -1, 1, 382,
+ 56, 0, 619
};
-static int parser_action_row570[] = {
+static int parser_action_row623[] = {
1,
- -1, 1, 210
+ -1, 1, 215
};
-static int parser_action_row571[] = {
+static int parser_action_row624[] = {
1,
- -1, 1, 229
+ -1, 1, 234
};
-static int parser_action_row572[] = {
+static int parser_action_row625[] = {
3,
- -1, 3, 571,
- 57, 0, 738,
- 82, 0, 739
+ -1, 3, 624,
+ 58, 0, 804,
+ 96, 0, 805
};
-static int parser_action_row573[] = {
+static int parser_action_row626[] = {
4,
- -1, 3, 572,
- 9, 0, 742,
- 57, 0, 738,
- 82, 0, 739
+ -1, 3, 625,
+ 9, 0, 808,
+ 58, 0, 804,
+ 96, 0, 805
};
-static int parser_action_row574[] = {
+static int parser_action_row627[] = {
1,
-1, 1, 31
};
-static int parser_action_row575[] = {
+static int parser_action_row628[] = {
2,
- -1, 3, 574,
- 54, 0, 744
+ -1, 3, 627,
+ 55, 0, 810
};
-static int parser_action_row576[] = {
+static int parser_action_row629[] = {
1,
-1, 1, 84
};
-static int parser_action_row577[] = {
+static int parser_action_row630[] = {
1,
-1, 1, 85
};
-static int parser_action_row578[] = {
+static int parser_action_row631[] = {
1,
-1, 1, 86
};
-static int parser_action_row579[] = {
+static int parser_action_row632[] = {
1,
-1, 1, 87
};
-static int parser_action_row580[] = {
+static int parser_action_row633[] = {
1,
-1, 1, 88
};
-static int parser_action_row581[] = {
+static int parser_action_row634[] = {
1,
-1, 1, 89
};
-static int parser_action_row582[] = {
+static int parser_action_row635[] = {
1,
-1, 1, 90
};
-static int parser_action_row583[] = {
+static int parser_action_row636[] = {
1,
-1, 1, 91
};
-static int parser_action_row584[] = {
+static int parser_action_row637[] = {
+ 1,
+ -1, 1, 92
+};
+static int parser_action_row638[] = {
+ 1,
+ -1, 1, 93
+};
+static int parser_action_row639[] = {
1,
-1, 1, 94
};
-static int parser_action_row585[] = {
+static int parser_action_row640[] = {
1,
- -1, 1, 92
+ -1, 1, 95
};
-static int parser_action_row586[] = {
+static int parser_action_row641[] = {
+ 1,
+ -1, 1, 98
+};
+static int parser_action_row642[] = {
1,
-1, 1, 96
};
-static int parser_action_row587[] = {
+static int parser_action_row643[] = {
1,
- -1, 1, 95
+ -1, 1, 100
};
-static int parser_action_row588[] = {
+static int parser_action_row644[] = {
1,
- -1, 1, 93
+ -1, 1, 99
};
-static int parser_action_row589[] = {
+static int parser_action_row645[] = {
1,
-1, 1, 97
};
-static int parser_action_row590[] = {
+static int parser_action_row646[] = {
1,
- -1, 1, 99
+ -1, 1, 101
};
-static int parser_action_row591[] = {
+static int parser_action_row647[] = {
+ 1,
+ -1, 1, 103
+};
+static int parser_action_row648[] = {
3,
- -1, 1, 102,
- 57, 0, 191,
- 58, 0, 745
+ -1, 1, 106,
+ 58, 0, 206,
+ 59, 0, 811
};
-static int parser_action_row592[] = {
+static int parser_action_row649[] = {
1,
- -1, 1, 432
+ -1, 1, 460
};
-static int parser_action_row593[] = {
+static int parser_action_row650[] = {
5,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 51, 0, 746,
- 56, 0, 747
+ 52, 0, 812,
+ 57, 0, 813
};
-static int parser_action_row594[] = {
- 18,
- -1, 3, 593,
- 53, 0, 574,
- 64, 0, 575,
- 65, 0, 576,
- 66, 0, 577,
- 67, 0, 578,
- 68, 0, 579,
- 69, 0, 580,
- 70, 0, 581,
- 71, 0, 582,
- 72, 0, 583,
- 73, 0, 584,
- 74, 0, 585,
- 75, 0, 586,
- 76, 0, 587,
- 77, 0, 588,
- 78, 0, 589,
- 82, 0, 751
+static int parser_action_row651[] = {
+ 22,
+ -1, 3, 650,
+ 54, 0, 627,
+ 74, 0, 628,
+ 75, 0, 629,
+ 76, 0, 630,
+ 77, 0, 631,
+ 78, 0, 632,
+ 79, 0, 633,
+ 80, 0, 634,
+ 81, 0, 635,
+ 82, 0, 636,
+ 83, 0, 637,
+ 84, 0, 638,
+ 85, 0, 639,
+ 86, 0, 640,
+ 87, 0, 641,
+ 88, 0, 642,
+ 89, 0, 643,
+ 90, 0, 644,
+ 91, 0, 645,
+ 92, 0, 646,
+ 96, 0, 817
};
-static int parser_action_row595[] = {
- 19,
- -1, 3, 594,
- 53, 0, 574,
- 64, 0, 575,
- 65, 0, 576,
- 66, 0, 577,
- 67, 0, 578,
- 68, 0, 579,
- 69, 0, 580,
- 70, 0, 581,
- 71, 0, 582,
- 72, 0, 583,
- 73, 0, 584,
- 74, 0, 585,
- 75, 0, 586,
- 76, 0, 587,
- 77, 0, 588,
- 78, 0, 589,
- 81, 0, 47,
- 82, 0, 590
+static int parser_action_row652[] = {
+ 23,
+ -1, 3, 651,
+ 54, 0, 627,
+ 74, 0, 628,
+ 75, 0, 629,
+ 76, 0, 630,
+ 77, 0, 631,
+ 78, 0, 632,
+ 79, 0, 633,
+ 80, 0, 634,
+ 81, 0, 635,
+ 82, 0, 636,
+ 83, 0, 637,
+ 84, 0, 638,
+ 85, 0, 639,
+ 86, 0, 640,
+ 87, 0, 641,
+ 88, 0, 642,
+ 89, 0, 643,
+ 90, 0, 644,
+ 91, 0, 645,
+ 92, 0, 646,
+ 95, 0, 48,
+ 96, 0, 647
};
-static int parser_action_row596[] = {
+static int parser_action_row653[] = {
1,
-1, 1, 34
};
-static int parser_action_row597[] = {
+static int parser_action_row654[] = {
3,
- -1, 3, 596,
- 81, 0, 755,
- 82, 0, 756
+ -1, 3, 653,
+ 95, 0, 821,
+ 96, 0, 822
};
-static int parser_action_row598[] = {
+static int parser_action_row655[] = {
2,
- -1, 3, 597,
- 54, 0, 760
+ -1, 3, 654,
+ 55, 0, 826
};
-static int parser_action_row599[] = {
- 26,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 319,
- 61, 1, 319,
- 63, 1, 319,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row656[] = {
+ 28,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 347,
+ 71, 1, 347,
+ 73, 1, 347,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row600[] = {
+static int parser_action_row657[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row601[] = {
- 30,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 301,
- 57, 0, 191,
- 58, 0, 764,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 301,
- 63, 1, 301,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row658[] = {
+ 41,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 329,
+ 58, 0, 206,
+ 59, 0, 830,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 329,
+ 73, 1, 329,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row602[] = {
+static int parser_action_row659[] = {
2,
- -1, 3, 601,
- 83, 0, 768
+ -1, 3, 658,
+ 97, 0, 834
};
-static int parser_action_row603[] = {
+static int parser_action_row660[] = {
3,
- -1, 1, 424,
- 12, 0, 769,
- 82, 0, 770
+ -1, 1, 452,
+ 12, 0, 835,
+ 96, 0, 836
};
-static int parser_action_row604[] = {
+static int parser_action_row661[] = {
4,
- -1, 1, 426,
- 12, 0, 771,
- 81, 0, 47,
- 82, 0, 772
+ -1, 1, 454,
+ 12, 0, 837,
+ 95, 0, 48,
+ 96, 0, 838
};
-static int parser_action_row605[] = {
+static int parser_action_row662[] = {
1,
- -1, 1, 218
+ -1, 1, 223
};
-static int parser_action_row606[] = {
+static int parser_action_row663[] = {
1,
- -1, 1, 237
+ -1, 1, 242
};
-static int parser_action_row607[] = {
+static int parser_action_row664[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row608[] = {
+static int parser_action_row665[] = {
1,
- -1, 1, 360
+ -1, 1, 388
};
-static int parser_action_row609[] = {
+static int parser_action_row666[] = {
1,
- -1, 1, 361
+ -1, 1, 389
};
-static int parser_action_row610[] = {
+static int parser_action_row667[] = {
1,
- -1, 1, 201
+ -1, 1, 206
};
-static int parser_action_row611[] = {
+static int parser_action_row668[] = {
1,
- -1, 1, 220
+ -1, 1, 225
};
-static int parser_action_row612[] = {
- 23,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row669[] = {
+ 25,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 52, 0, 775,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 53, 0, 841,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row613[] = {
+static int parser_action_row670[] = {
1,
- -1, 1, 213
+ -1, 1, 218
};
-static int parser_action_row614[] = {
+static int parser_action_row671[] = {
1,
- -1, 1, 232
+ -1, 1, 237
};
-static int parser_action_row615[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row672[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row616[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row673[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row617[] = {
+static int parser_action_row674[] = {
1,
- -1, 1, 217
+ -1, 1, 222
};
-static int parser_action_row618[] = {
+static int parser_action_row675[] = {
1,
- -1, 1, 236
+ -1, 1, 241
};
-static int parser_action_row619[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row676[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row620[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row677[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row621[] = {
+static int parser_action_row678[] = {
1,
- -1, 1, 191
+ -1, 1, 196
};
-static int parser_action_row622[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row679[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row623[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row680[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row624[] = {
- 4,
- -1, 1, 312,
- 58, 0, 783,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row681[] = {
+ 13,
+ -1, 1, 340,
+ 59, 0, 849,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row625[] = {
+static int parser_action_row682[] = {
1,
- -1, 1, 182
+ -1, 1, 187
};
-static int parser_action_row626[] = {
+static int parser_action_row683[] = {
1,
- -1, 1, 406
+ -1, 1, 434
};
-static int parser_action_row627[] = {
+static int parser_action_row684[] = {
2,
- -1, 3, 626,
- 52, 0, 785
+ -1, 3, 683,
+ 53, 0, 851
};
-static int parser_action_row628[] = {
+static int parser_action_row685[] = {
2,
- -1, 3, 627,
- 23, 0, 786
+ -1, 3, 684,
+ 23, 0, 852
};
-static int parser_action_row629[] = {
+static int parser_action_row686[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row630[] = {
+static int parser_action_row687[] = {
1,
- -1, 1, 674
+ -1, 1, 725
};
-static int parser_action_row631[] = {
+static int parser_action_row688[] = {
2,
- -1, 3, 630,
- 63, 0, 628
+ -1, 3, 687,
+ 73, 0, 685
};
-static int parser_action_row632[] = {
+static int parser_action_row689[] = {
5,
- -1, 1, 427,
- 12, 0, 654,
- 46, 0, 655,
- 81, 0, 47,
- 82, 0, 656
+ -1, 1, 455,
+ 12, 0, 714,
+ 46, 0, 715,
+ 95, 0, 48,
+ 96, 0, 716
};
-static int parser_action_row633[] = {
+static int parser_action_row690[] = {
2,
- -1, 1, 413,
- 55, 0, 789
+ -1, 1, 441,
+ 56, 0, 855
};
-static int parser_action_row634[] = {
- 7,
- -1, 1, 407,
- 53, 1, 405,
- 58, 1, 405,
- 59, 1, 405,
- 60, 1, 405,
- 61, 1, 405,
- 63, 1, 405
+static int parser_action_row691[] = {
+ 8,
+ -1, 1, 433,
+ 0, 1, 435,
+ 1, 1, 435,
+ 9, 1, 435,
+ 24, 1, 435,
+ 53, 1, 435,
+ 56, 1, 435,
+ 109, 1, 435
};
-static int parser_action_row635[] = {
+static int parser_action_row692[] = {
1,
- -1, 1, 645
+ -1, 1, 687
};
-static int parser_action_row636[] = {
- 19,
- -1, 1, 427,
- 12, 0, 105,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row693[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 107,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row637[] = {
+static int parser_action_row694[] = {
1,
- -1, 1, 644
+ -1, 1, 686
};
-static int parser_action_row638[] = {
+static int parser_action_row695[] = {
1,
- -1, 1, 647
-};
-static int parser_action_row639[] = {
- 3,
- -1, 1, 655,
- 64, 0, 272,
- 65, 0, 273
-};
-static int parser_action_row640[] = {
- 3,
- -1, 1, 658,
- 64, 0, 272,
- 65, 0, 273
+ -1, 1, 689
};
-static int parser_action_row641[] = {
+static int parser_action_row696[] = {
1,
- -1, 1, 660
+ -1, 1, 700
};
-static int parser_action_row642[] = {
- 4,
- -1, 1, 662,
- 66, 0, 281,
- 68, 0, 282,
- 69, 0, 283
+static int parser_action_row697[] = {
+ 2,
+ -1, 1, 702,
+ 81, 0, 304
};
-static int parser_action_row643[] = {
- 4,
- -1, 1, 663,
- 66, 0, 281,
- 68, 0, 282,
- 69, 0, 283
+static int parser_action_row698[] = {
+ 2,
+ -1, 1, 693,
+ 80, 0, 296
};
-static int parser_action_row644[] = {
- 3,
- -1, 1, 651,
- 64, 0, 272,
- 65, 0, 273
+static int parser_action_row699[] = {
+ 2,
+ -1, 1, 694,
+ 80, 0, 296
};
-static int parser_action_row645[] = {
- 3,
- -1, 1, 652,
- 64, 0, 272,
- 65, 0, 273
+static int parser_action_row700[] = {
+ 2,
+ -1, 1, 695,
+ 80, 0, 296
};
-static int parser_action_row646[] = {
- 3,
- -1, 1, 653,
- 64, 0, 272,
- 65, 0, 273
+static int parser_action_row701[] = {
+ 2,
+ -1, 1, 696,
+ 80, 0, 296
};
-static int parser_action_row647[] = {
- 3,
- -1, 1, 654,
- 64, 0, 272,
- 65, 0, 273
+static int parser_action_row702[] = {
+ 2,
+ -1, 1, 697,
+ 80, 0, 296
};
-static int parser_action_row648[] = {
+static int parser_action_row703[] = {
+ 2,
+ -1, 1, 698,
+ 80, 0, 296
+};
+static int parser_action_row704[] = {
+ 2,
+ -1, 1, 699,
+ 80, 0, 296
+};
+static int parser_action_row705[] = {
+ 2,
+ -1, 1, 704,
+ 82, 0, 305
+};
+static int parser_action_row706[] = {
3,
- -1, 1, 656,
- 64, 0, 272,
- 65, 0, 273
+ -1, 1, 706,
+ 88, 0, 306,
+ 91, 0, 307
};
-static int parser_action_row649[] = {
+static int parser_action_row707[] = {
3,
- -1, 1, 657,
- 64, 0, 272,
- 65, 0, 273
+ -1, 1, 708,
+ 74, 0, 308,
+ 75, 0, 309
};
-static int parser_action_row650[] = {
+static int parser_action_row708[] = {
3,
- -1, 1, 659,
- 64, 0, 272,
- 65, 0, 273
+ -1, 1, 709,
+ 74, 0, 308,
+ 75, 0, 309
};
-static int parser_action_row651[] = {
+static int parser_action_row709[] = {
+ 4,
+ -1, 1, 711,
+ 76, 0, 310,
+ 78, 0, 311,
+ 79, 0, 312
+};
+static int parser_action_row710[] = {
+ 4,
+ -1, 1, 712,
+ 76, 0, 310,
+ 78, 0, 311,
+ 79, 0, 312
+};
+static int parser_action_row711[] = {
1,
- -1, 1, 665
+ -1, 1, 714
};
-static int parser_action_row652[] = {
+static int parser_action_row712[] = {
1,
- -1, 1, 666
+ -1, 1, 715
};
-static int parser_action_row653[] = {
+static int parser_action_row713[] = {
1,
- -1, 1, 667
+ -1, 1, 716
};
-static int parser_action_row654[] = {
+static int parser_action_row714[] = {
1,
- -1, 1, 669
+ -1, 1, 718
};
-static int parser_action_row655[] = {
+static int parser_action_row715[] = {
2,
- -1, 1, 700,
- 51, 0, 242
+ -1, 1, 751,
+ 52, 0, 266
};
-static int parser_action_row656[] = {
+static int parser_action_row716[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row657[] = {
+static int parser_action_row717[] = {
3,
- -1, 1, 682,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 733,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row658[] = {
+static int parser_action_row718[] = {
2,
- -1, 3, 657,
- 83, 0, 796
+ -1, 3, 717,
+ 97, 0, 862
};
-static int parser_action_row659[] = {
+static int parser_action_row719[] = {
2,
- -1, 1, 424,
- 82, 0, 797
+ -1, 1, 452,
+ 96, 0, 863
};
-static int parser_action_row660[] = {
+static int parser_action_row720[] = {
3,
- -1, 1, 426,
- 81, 0, 47,
- 82, 0, 798
+ -1, 1, 454,
+ 95, 0, 48,
+ 96, 0, 864
};
-static int parser_action_row661[] = {
+static int parser_action_row721[] = {
1,
- -1, 1, 693
+ -1, 1, 744
};
-static int parser_action_row662[] = {
+static int parser_action_row722[] = {
1,
- -1, 1, 158
+ -1, 1, 162
};
-static int parser_action_row663[] = {
- 30,
- -1, 1, 427,
- 9, 0, 800,
+static int parser_action_row723[] = {
+ 31,
+ -1, 1, 455,
+ 9, 0, 866,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row664[] = {
+static int parser_action_row724[] = {
1,
- -1, 1, 148
+ -1, 1, 152
};
-static int parser_action_row665[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row725[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row666[] = {
+static int parser_action_row726[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row667[] = {
- 33,
- -1, 1, 427,
+static int parser_action_row727[] = {
+ 34,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 803,
- 12, 0, 804,
- 15, 0, 805,
+ 9, 0, 869,
+ 12, 0, 870,
+ 15, 0, 871,
16, 0, 28,
- 22, 0, 806,
- 24, 0, 807,
- 25, 0, 808,
- 26, 0, 809,
- 27, 0, 810,
- 33, 0, 811,
- 34, 0, 812,
- 35, 0, 813,
- 36, 0, 814,
- 37, 0, 815,
+ 22, 0, 872,
+ 24, 0, 873,
+ 25, 0, 874,
+ 26, 0, 875,
+ 27, 0, 876,
+ 33, 0, 877,
+ 34, 0, 878,
+ 35, 0, 879,
+ 36, 0, 880,
+ 37, 0, 881,
38, 0, 39,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 50, 0, 816,
- 51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 817,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 50, 0, 882,
+ 51, 0, 883,
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 884,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row668[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row728[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 140,
+ 9, 0, 148,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row669[] = {
+static int parser_action_row729[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 55, 0, 495
+ 56, 0, 540
};
-static int parser_action_row670[] = {
+static int parser_action_row730[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row671[] = {
+static int parser_action_row731[] = {
2,
- -1, 3, 670,
- 82, 0, 838
+ -1, 3, 730,
+ 96, 0, 906
};
-static int parser_action_row672[] = {
+static int parser_action_row732[] = {
2,
- -1, 3, 671,
- 23, 0, 839
+ -1, 3, 731,
+ 23, 0, 907
};
-static int parser_action_row673[] = {
+static int parser_action_row733[] = {
1,
- -1, 1, 293
+ -1, 1, 321
};
-static int parser_action_row674[] = {
+static int parser_action_row734[] = {
5,
- -1, 1, 427,
- 12, 0, 694,
- 46, 0, 599,
- 81, 0, 47,
- 82, 0, 695
+ -1, 1, 455,
+ 12, 0, 757,
+ 46, 0, 656,
+ 95, 0, 48,
+ 96, 0, 758
};
-static int parser_action_row675[] = {
+static int parser_action_row735[] = {
1,
- -1, 1, 264
+ -1, 1, 283
};
-static int parser_action_row676[] = {
- 21,
- -1, 1, 427,
- 12, 0, 153,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row736[] = {
+ 23,
+ -1, 1, 455,
+ 12, 0, 161,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row677[] = {
+static int parser_action_row737[] = {
1,
- -1, 1, 263
+ -1, 1, 282
};
-static int parser_action_row678[] = {
+static int parser_action_row738[] = {
1,
- -1, 1, 266
+ -1, 1, 285
};
-static int parser_action_row679[] = {
- 3,
- -1, 1, 274,
- 64, 0, 319,
- 65, 0, 320
+static int parser_action_row739[] = {
+ 1,
+ -1, 1, 296
};
-static int parser_action_row680[] = {
- 3,
- -1, 1, 277,
- 64, 0, 319,
- 65, 0, 320
+static int parser_action_row740[] = {
+ 2,
+ -1, 1, 298,
+ 81, 0, 356
};
-static int parser_action_row681[] = {
- 1,
- -1, 1, 279
+static int parser_action_row741[] = {
+ 2,
+ -1, 1, 289,
+ 80, 0, 348
};
-static int parser_action_row682[] = {
- 4,
- -1, 1, 281,
- 66, 0, 328,
- 68, 0, 329,
- 69, 0, 330
+static int parser_action_row742[] = {
+ 2,
+ -1, 1, 290,
+ 80, 0, 348
};
-static int parser_action_row683[] = {
- 4,
- -1, 1, 282,
- 66, 0, 328,
- 68, 0, 329,
- 69, 0, 330
+static int parser_action_row743[] = {
+ 2,
+ -1, 1, 291,
+ 80, 0, 348
};
-static int parser_action_row684[] = {
- 3,
- -1, 1, 270,
- 64, 0, 319,
- 65, 0, 320
+static int parser_action_row744[] = {
+ 2,
+ -1, 1, 292,
+ 80, 0, 348
};
-static int parser_action_row685[] = {
- 3,
- -1, 1, 271,
- 64, 0, 319,
- 65, 0, 320
+static int parser_action_row745[] = {
+ 2,
+ -1, 1, 293,
+ 80, 0, 348
};
-static int parser_action_row686[] = {
- 3,
- -1, 1, 272,
- 64, 0, 319,
- 65, 0, 320
+static int parser_action_row746[] = {
+ 2,
+ -1, 1, 294,
+ 80, 0, 348
};
-static int parser_action_row687[] = {
- 3,
- -1, 1, 273,
- 64, 0, 319,
- 65, 0, 320
+static int parser_action_row747[] = {
+ 2,
+ -1, 1, 295,
+ 80, 0, 348
};
-static int parser_action_row688[] = {
+static int parser_action_row748[] = {
+ 2,
+ -1, 1, 300,
+ 82, 0, 357
+};
+static int parser_action_row749[] = {
3,
- -1, 1, 275,
- 64, 0, 319,
- 65, 0, 320
+ -1, 1, 302,
+ 88, 0, 358,
+ 91, 0, 359
};
-static int parser_action_row689[] = {
+static int parser_action_row750[] = {
3,
- -1, 1, 276,
- 64, 0, 319,
- 65, 0, 320
+ -1, 1, 304,
+ 74, 0, 360,
+ 75, 0, 361
};
-static int parser_action_row690[] = {
+static int parser_action_row751[] = {
3,
- -1, 1, 278,
- 64, 0, 319,
- 65, 0, 320
+ -1, 1, 305,
+ 74, 0, 360,
+ 75, 0, 361
};
-static int parser_action_row691[] = {
+static int parser_action_row752[] = {
+ 4,
+ -1, 1, 307,
+ 76, 0, 362,
+ 78, 0, 363,
+ 79, 0, 364
+};
+static int parser_action_row753[] = {
+ 4,
+ -1, 1, 308,
+ 76, 0, 362,
+ 78, 0, 363,
+ 79, 0, 364
+};
+static int parser_action_row754[] = {
1,
- -1, 1, 284
+ -1, 1, 310
};
-static int parser_action_row692[] = {
+static int parser_action_row755[] = {
1,
- -1, 1, 285
+ -1, 1, 311
};
-static int parser_action_row693[] = {
+static int parser_action_row756[] = {
1,
- -1, 1, 286
+ -1, 1, 312
};
-static int parser_action_row694[] = {
+static int parser_action_row757[] = {
1,
- -1, 1, 288
+ -1, 1, 314
};
-static int parser_action_row695[] = {
+static int parser_action_row758[] = {
2,
- -1, 1, 319,
- 51, 0, 242
+ -1, 1, 347,
+ 52, 0, 266
};
-static int parser_action_row696[] = {
+static int parser_action_row759[] = {
3,
- -1, 1, 301,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 329,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row697[] = {
+static int parser_action_row760[] = {
2,
- -1, 3, 696,
- 83, 0, 843
+ -1, 3, 759,
+ 97, 0, 911
};
-static int parser_action_row698[] = {
+static int parser_action_row761[] = {
2,
- -1, 1, 424,
- 82, 0, 844
+ -1, 1, 452,
+ 96, 0, 912
};
-static int parser_action_row699[] = {
+static int parser_action_row762[] = {
3,
- -1, 1, 426,
- 81, 0, 47,
- 82, 0, 845
+ -1, 1, 454,
+ 95, 0, 48,
+ 96, 0, 913
};
-static int parser_action_row700[] = {
+static int parser_action_row763[] = {
1,
- -1, 1, 312
+ -1, 1, 340
};
-static int parser_action_row701[] = {
+static int parser_action_row764[] = {
1,
- -1, 1, 256
+ -1, 1, 275
};
-static int parser_action_row702[] = {
+static int parser_action_row765[] = {
1,
- -1, 1, 151
+ -1, 1, 155
};
-static int parser_action_row703[] = {
+static int parser_action_row766[] = {
1,
- -1, 1, 150
+ -1, 1, 154
};
-static int parser_action_row704[] = {
+static int parser_action_row767[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row705[] = {
+static int parser_action_row768[] = {
1,
- -1, 1, 567
+ -1, 1, 608
};
-static int parser_action_row706[] = {
+static int parser_action_row769[] = {
3,
- -1, 3, 705,
- 47, 0, 349,
- 81, 0, 350
+ -1, 3, 768,
+ 47, 0, 386,
+ 95, 0, 387
};
-static int parser_action_row707[] = {
+static int parser_action_row770[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row708[] = {
+static int parser_action_row771[] = {
5,
-1, 1, 79,
- 18, 0, 203,
- 19, 0, 204,
- 20, 0, 205,
- 21, 0, 206
+ 18, 0, 227,
+ 19, 0, 228,
+ 20, 0, 229,
+ 21, 0, 230
};
-static int parser_action_row709[] = {
+static int parser_action_row772[] = {
1,
- -1, 1, 726
+ -1, 1, 777
};
-static int parser_action_row710[] = {
+static int parser_action_row773[] = {
3,
- -1, 3, 709,
- 81, 0, 47,
- 82, 0, 852
+ -1, 3, 772,
+ 95, 0, 48,
+ 96, 0, 920
};
-static int parser_action_row711[] = {
+static int parser_action_row774[] = {
5,
-1, 1, 79,
- 18, 0, 203,
- 19, 0, 204,
- 20, 0, 205,
- 21, 0, 206
+ 18, 0, 227,
+ 19, 0, 228,
+ 20, 0, 229,
+ 21, 0, 230
};
-static int parser_action_row712[] = {
+static int parser_action_row775[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row713[] = {
+static int parser_action_row776[] = {
2,
- -1, 1, 375,
- 55, 0, 857
+ -1, 1, 403,
+ 56, 0, 925
};
-static int parser_action_row714[] = {
+static int parser_action_row777[] = {
1,
- -1, 1, 404
+ -1, 1, 432
};
-static int parser_action_row715[] = {
+static int parser_action_row778[] = {
1,
- -1, 1, 403
+ -1, 1, 431
};
-static int parser_action_row716[] = {
+static int parser_action_row779[] = {
1,
- -1, 1, 402
+ -1, 1, 430
};
-static int parser_action_row717[] = {
+static int parser_action_row780[] = {
3,
- -1, 1, 371,
- 51, 0, 860,
- 80, 0, 181
+ -1, 1, 399,
+ 52, 0, 928,
+ 94, 0, 195
};
-static int parser_action_row718[] = {
+static int parser_action_row781[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row719[] = {
+static int parser_action_row782[] = {
+ 2,
+ -1, 3, 781,
+ 59, 0, 931
+};
+static int parser_action_row783[] = {
+ 33,
+ -1, 1, 455,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 148,
+ 12, 0, 25,
+ 15, 0, 27,
+ 16, 0, 28,
+ 22, 0, 29,
+ 25, 0, 30,
+ 26, 0, 31,
+ 27, 0, 32,
+ 33, 0, 34,
+ 34, 0, 35,
+ 35, 0, 36,
+ 36, 0, 37,
+ 37, 0, 38,
+ 38, 0, 39,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 50, 0, 44,
+ 51, 0, 45,
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row784[] = {
+ 3,
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row785[] = {
1,
- -1, 1, 141
+ -1, 1, 145
};
-static int parser_action_row720[] = {
+static int parser_action_row786[] = {
3,
- -1, 3, 719,
- 47, 0, 349,
- 81, 0, 350
+ -1, 3, 785,
+ 47, 0, 386,
+ 95, 0, 387
};
-static int parser_action_row721[] = {
+static int parser_action_row787[] = {
1,
- -1, 1, 193
+ -1, 1, 198
};
-static int parser_action_row722[] = {
+static int parser_action_row788[] = {
2,
- -1, 3, 721,
- 56, 0, 864
+ -1, 3, 787,
+ 57, 0, 936
};
-static int parser_action_row723[] = {
+static int parser_action_row789[] = {
1,
- -1, 1, 474
+ -1, 1, 506
};
-static int parser_action_row724[] = {
- 21,
- -1, 1, 427,
- 12, 0, 694,
- 46, 0, 599,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 556,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 81, 0, 47,
- 82, 0, 865
+static int parser_action_row790[] = {
+ 25,
+ -1, 1, 455,
+ 12, 0, 757,
+ 46, 0, 656,
+ 54, 0, 606,
+ 74, 0, 607,
+ 75, 0, 608,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 609,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 95, 0, 48,
+ 96, 0, 937
};
-static int parser_action_row725[] = {
+static int parser_action_row791[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row726[] = {
- 49,
- -1, 1, 427,
- 12, 0, 153,
+static int parser_action_row792[] = {
+ 54,
+ -1, 1, 455,
+ 12, 0, 161,
15, 0, 27,
16, 0, 28,
- 22, 0, 154,
+ 22, 0, 162,
25, 0, 30,
26, 0, 31,
27, 0, 32,
- 31, 0, 155,
- 33, 0, 352,
- 34, 0, 353,
- 35, 0, 354,
- 36, 0, 355,
+ 31, 0, 163,
+ 33, 0, 389,
+ 34, 0, 390,
+ 35, 0, 391,
+ 36, 0, 392,
37, 0, 38,
- 38, 0, 156,
- 40, 0, 157,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 47, 0, 349,
- 48, 0, 158,
- 50, 0, 356,
- 51, 0, 45,
- 53, 0, 357,
- 64, 0, 358,
- 65, 0, 359,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 80, 0, 181,
- 81, 0, 373,
- 82, 0, 374,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 47, 0, 386,
+ 48, 0, 166,
+ 50, 0, 44,
+ 51, 0, 393,
+ 52, 0, 46,
+ 54, 0, 394,
+ 74, 0, 395,
+ 75, 0, 396,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 404,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 94, 0, 195,
+ 95, 0, 414,
+ 96, 0, 415,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row727[] = {
+static int parser_action_row793[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row728[] = {
+static int parser_action_row794[] = {
1,
- -1, 1, 983
+ -1, 1, 1051
};
-static int parser_action_row729[] = {
- 24,
- -1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row795[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row730[] = {
- 24,
- -1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row796[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row731[] = {
- 5,
- -1, 1, 313,
- 51, 0, 242,
- 58, 0, 872,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row797[] = {
+ 14,
+ -1, 1, 341,
+ 52, 0, 266,
+ 59, 0, 944,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row732[] = {
+static int parser_action_row798[] = {
1,
- -1, 1, 477
+ -1, 1, 509
};
-static int parser_action_row733[] = {
+static int parser_action_row799[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row734[] = {
+static int parser_action_row800[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row735[] = {
+static int parser_action_row801[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row736[] = {
+static int parser_action_row802[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row737[] = {
- 23,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 394,
- 27, 0, 395,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row803[] = {
+ 25,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 436,
+ 27, 0, 437,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row738[] = {
+static int parser_action_row804[] = {
1,
- -1, 1, 985
+ -1, 1, 1053
};
-static int parser_action_row739[] = {
+static int parser_action_row805[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row740[] = {
+static int parser_action_row806[] = {
2,
- -1, 1, 420,
- 57, 0, 191
+ -1, 1, 448,
+ 58, 0, 206
};
-static int parser_action_row741[] = {
+static int parser_action_row807[] = {
2,
-1, 1, 76,
- 14, 0, 880
+ 14, 0, 952
};
-static int parser_action_row742[] = {
+static int parser_action_row808[] = {
2,
- -1, 3, 741,
- 82, 0, 882
+ -1, 3, 807,
+ 96, 0, 954
};
-static int parser_action_row743[] = {
+static int parser_action_row809[] = {
3,
- -1, 3, 742,
- 0, 0, 81,
- 1, 0, 82
+ -1, 3, 808,
+ 0, 0, 83,
+ 1, 0, 84
};
-static int parser_action_row744[] = {
+static int parser_action_row810[] = {
2,
-1, 1, 76,
- 14, 0, 880
+ 14, 0, 952
};
-static int parser_action_row745[] = {
+static int parser_action_row811[] = {
2,
- -1, 1, 98,
- 58, 0, 885
+ -1, 1, 102,
+ 59, 0, 957
};
-static int parser_action_row746[] = {
+static int parser_action_row812[] = {
1,
- -1, 1, 100
+ -1, 1, 104
};
-static int parser_action_row747[] = {
+static int parser_action_row813[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row748[] = {
+static int parser_action_row814[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row749[] = {
+static int parser_action_row815[] = {
4,
- -1, 1, 118,
- 4, 0, 888,
- 14, 0, 889,
- 15, 0, 890
+ -1, 1, 122,
+ 4, 0, 960,
+ 14, 0, 961,
+ 15, 0, 962
};
-static int parser_action_row750[] = {
+static int parser_action_row816[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row751[] = {
+static int parser_action_row817[] = {
1,
- -1, 1, 106
+ -1, 1, 110
};
-static int parser_action_row752[] = {
+static int parser_action_row818[] = {
2,
- -1, 1, 102,
- 58, 0, 745
+ -1, 1, 106,
+ 59, 0, 811
};
-static int parser_action_row753[] = {
+static int parser_action_row819[] = {
1,
- -1, 1, 433
+ -1, 1, 461
};
-static int parser_action_row754[] = {
+static int parser_action_row820[] = {
1,
- -1, 1, 435
+ -1, 1, 463
};
-static int parser_action_row755[] = {
- 18,
- -1, 3, 754,
- 53, 0, 574,
- 64, 0, 575,
- 65, 0, 576,
- 66, 0, 577,
- 67, 0, 578,
- 68, 0, 579,
- 69, 0, 580,
- 70, 0, 581,
- 71, 0, 582,
- 72, 0, 583,
- 73, 0, 584,
- 74, 0, 585,
- 75, 0, 586,
- 76, 0, 587,
- 77, 0, 588,
- 78, 0, 589,
- 82, 0, 751
+static int parser_action_row821[] = {
+ 22,
+ -1, 3, 820,
+ 54, 0, 627,
+ 74, 0, 628,
+ 75, 0, 629,
+ 76, 0, 630,
+ 77, 0, 631,
+ 78, 0, 632,
+ 79, 0, 633,
+ 80, 0, 634,
+ 81, 0, 635,
+ 82, 0, 636,
+ 83, 0, 637,
+ 84, 0, 638,
+ 85, 0, 639,
+ 86, 0, 640,
+ 87, 0, 641,
+ 88, 0, 642,
+ 89, 0, 643,
+ 90, 0, 644,
+ 91, 0, 645,
+ 92, 0, 646,
+ 96, 0, 817
};
-static int parser_action_row756[] = {
+static int parser_action_row822[] = {
2,
- -1, 1, 428,
- 57, 0, 190
+ -1, 1, 456,
+ 58, 0, 205
};
-static int parser_action_row757[] = {
+static int parser_action_row823[] = {
2,
- -1, 3, 756,
- 57, 0, 191
+ -1, 3, 822,
+ 58, 0, 206
};
-static int parser_action_row758[] = {
+static int parser_action_row824[] = {
2,
-1, 1, 37,
- 53, 0, 896
+ 54, 0, 968
};
-static int parser_action_row759[] = {
+static int parser_action_row825[] = {
2,
- -1, 3, 758,
- 81, 0, 898
+ -1, 3, 824,
+ 95, 0, 970
};
-static int parser_action_row760[] = {
+static int parser_action_row826[] = {
3,
- -1, 3, 759,
- 81, 0, 899,
- 82, 0, 756
+ -1, 3, 825,
+ 95, 0, 971,
+ 96, 0, 822
};
-static int parser_action_row761[] = {
+static int parser_action_row827[] = {
1,
- -1, 1, 411
+ -1, 1, 439
};
-static int parser_action_row762[] = {
+static int parser_action_row828[] = {
1,
- -1, 1, 318
+ -1, 1, 346
};
-static int parser_action_row763[] = {
+static int parser_action_row829[] = {
1,
- -1, 1, 185
+ -1, 1, 190
};
-static int parser_action_row764[] = {
+static int parser_action_row830[] = {
3,
- -1, 3, 763,
- 31, 0, 901,
- 51, 0, 902
+ -1, 3, 829,
+ 31, 0, 973,
+ 52, 0, 974
};
-static int parser_action_row765[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row831[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row766[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row832[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row767[] = {
- 4,
- -1, 1, 300,
- 58, 0, 905,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row833[] = {
+ 13,
+ -1, 1, 328,
+ 59, 0, 977,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row768[] = {
+static int parser_action_row834[] = {
1,
- -1, 1, 176
+ -1, 1, 181
};
-static int parser_action_row769[] = {
- 4,
- -1, 1, 298,
- 58, 0, 907,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row835[] = {
+ 13,
+ -1, 1, 326,
+ 59, 0, 979,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row770[] = {
- 23,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 434,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row836[] = {
+ 25,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 476,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row771[] = {
- 29,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 303,
- 58, 0, 910,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 303,
- 63, 1, 303,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row837[] = {
+ 40,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 331,
+ 59, 0, 982,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 331,
+ 73, 1, 331,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row772[] = {
- 23,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 434,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row838[] = {
+ 25,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 476,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row773[] = {
- 30,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 307,
- 57, 0, 191,
- 58, 0, 915,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 307,
- 63, 1, 307,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row839[] = {
+ 41,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 335,
+ 58, 0, 206,
+ 59, 0, 987,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 335,
+ 73, 1, 335,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row774[] = {
+static int parser_action_row840[] = {
3,
- -1, 1, 425,
- 12, 0, 919,
- 82, 0, 920
+ -1, 1, 453,
+ 12, 0, 991,
+ 96, 0, 992
};
-static int parser_action_row775[] = {
+static int parser_action_row841[] = {
1,
- -1, 1, 364
+ -1, 1, 392
};
-static int parser_action_row776[] = {
+static int parser_action_row842[] = {
1,
- -1, 1, 409
+ -1, 1, 437
};
-static int parser_action_row777[] = {
+static int parser_action_row843[] = {
2,
- -1, 3, 776,
- 52, 0, 921
+ -1, 3, 842,
+ 53, 0, 993
};
-static int parser_action_row778[] = {
+static int parser_action_row844[] = {
1,
- -1, 1, 212
+ -1, 1, 217
};
-static int parser_action_row779[] = {
+static int parser_action_row845[] = {
1,
- -1, 1, 231
+ -1, 1, 236
};
-static int parser_action_row780[] = {
+static int parser_action_row846[] = {
1,
- -1, 1, 216
+ -1, 1, 221
};
-static int parser_action_row781[] = {
+static int parser_action_row847[] = {
1,
- -1, 1, 235
+ -1, 1, 240
};
-static int parser_action_row782[] = {
+static int parser_action_row848[] = {
1,
- -1, 1, 215
+ -1, 1, 220
};
-static int parser_action_row783[] = {
+static int parser_action_row849[] = {
1,
- -1, 1, 234
+ -1, 1, 239
};
-static int parser_action_row784[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row850[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row785[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row851[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row786[] = {
+static int parser_action_row852[] = {
1,
- -1, 1, 405
+ -1, 1, 433
};
-static int parser_action_row787[] = {
+static int parser_action_row853[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row788[] = {
+static int parser_action_row854[] = {
3,
- -1, 3, 787,
- 81, 0, 47,
- 82, 0, 925
+ -1, 3, 853,
+ 95, 0, 48,
+ 96, 0, 997
};
-static int parser_action_row789[] = {
+static int parser_action_row855[] = {
2,
- -1, 3, 788,
- 83, 0, 928
+ -1, 3, 854,
+ 97, 0, 1000
};
-static int parser_action_row790[] = {
+static int parser_action_row856[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row791[] = {
+static int parser_action_row857[] = {
1,
- -1, 1, 994
+ -1, 1, 1062
};
-static int parser_action_row792[] = {
+static int parser_action_row858[] = {
2,
- -1, 1, 414,
- 55, 0, 789
+ -1, 1, 442,
+ 56, 0, 855
};
-static int parser_action_row793[] = {
+static int parser_action_row859[] = {
1,
- -1, 1, 646
+ -1, 1, 688
};
-static int parser_action_row794[] = {
+static int parser_action_row860[] = {
1,
- -1, 1, 699
+ -1, 1, 750
};
-static int parser_action_row795[] = {
+static int parser_action_row861[] = {
3,
- -1, 3, 794,
- 31, 0, 931,
- 51, 0, 932
+ -1, 3, 860,
+ 31, 0, 1003,
+ 52, 0, 1004
};
-static int parser_action_row796[] = {
+static int parser_action_row862[] = {
1,
- -1, 1, 681
+ -1, 1, 732
};
-static int parser_action_row797[] = {
+static int parser_action_row863[] = {
1,
- -1, 1, 679
+ -1, 1, 730
};
-static int parser_action_row798[] = {
+static int parser_action_row864[] = {
2,
- -1, 1, 684,
- 51, 0, 242
+ -1, 1, 735,
+ 52, 0, 266
};
-static int parser_action_row799[] = {
+static int parser_action_row865[] = {
3,
- -1, 1, 688,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 739,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row800[] = {
+static int parser_action_row866[] = {
2,
- -1, 1, 425,
- 82, 0, 935
+ -1, 1, 453,
+ 96, 0, 1007
};
-static int parser_action_row801[] = {
+static int parser_action_row867[] = {
1,
- -1, 1, 159
+ -1, 1, 163
};
-static int parser_action_row802[] = {
+static int parser_action_row868[] = {
1,
- -1, 1, 198
+ -1, 1, 203
};
-static int parser_action_row803[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row869[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row804[] = {
+static int parser_action_row870[] = {
1,
- -1, 1, 248
+ -1, 1, 262
};
-static int parser_action_row805[] = {
- 26,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 321,
- 61, 1, 321,
- 63, 1, 321,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row871[] = {
+ 28,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 349,
+ 71, 1, 349,
+ 73, 1, 349,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row806[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row872[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 938,
- 12, 0, 804,
- 15, 0, 805,
+ 9, 0, 1010,
+ 12, 0, 870,
+ 15, 0, 871,
16, 0, 28,
- 22, 0, 806,
- 25, 0, 808,
- 26, 0, 809,
- 27, 0, 810,
- 33, 0, 811,
- 34, 0, 812,
- 35, 0, 813,
- 36, 0, 814,
- 37, 0, 815,
+ 22, 0, 872,
+ 25, 0, 874,
+ 26, 0, 875,
+ 27, 0, 876,
+ 33, 0, 877,
+ 34, 0, 878,
+ 35, 0, 879,
+ 36, 0, 880,
+ 37, 0, 881,
38, 0, 39,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 50, 0, 816,
- 51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 817,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 50, 0, 882,
+ 51, 0, 883,
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 884,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row807[] = {
+static int parser_action_row873[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row808[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row874[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row809[] = {
+static int parser_action_row875[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row810[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row876[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 938,
- 12, 0, 804,
- 15, 0, 805,
+ 9, 0, 1010,
+ 12, 0, 870,
+ 15, 0, 871,
16, 0, 28,
- 22, 0, 806,
- 25, 0, 808,
- 26, 0, 809,
- 27, 0, 810,
- 33, 0, 811,
- 34, 0, 812,
- 35, 0, 813,
- 36, 0, 814,
- 37, 0, 815,
+ 22, 0, 872,
+ 25, 0, 874,
+ 26, 0, 875,
+ 27, 0, 876,
+ 33, 0, 877,
+ 34, 0, 878,
+ 35, 0, 879,
+ 36, 0, 880,
+ 37, 0, 881,
38, 0, 39,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 50, 0, 816,
- 51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 817,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 50, 0, 882,
+ 51, 0, 883,
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 884,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row811[] = {
+static int parser_action_row877[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row812[] = {
- 25,
- -1, 1, 163,
- 12, 0, 153,
- 22, 0, 154,
- 24, 1, 821,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row878[] = {
+ 27,
+ -1, 1, 167,
+ 12, 0, 161,
+ 22, 0, 162,
+ 24, 1, 881,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row813[] = {
+static int parser_action_row879[] = {
3,
- -1, 1, 168,
- 24, 1, 826,
- 49, 0, 174
+ -1, 1, 172,
+ 24, 1, 886,
+ 49, 0, 188
};
-static int parser_action_row814[] = {
+static int parser_action_row880[] = {
3,
- -1, 1, 165,
- 24, 1, 823,
- 49, 0, 174
+ -1, 1, 169,
+ 24, 1, 883,
+ 49, 0, 188
};
-static int parser_action_row815[] = {
+static int parser_action_row881[] = {
2,
- -1, 1, 167,
- 24, 1, 825
+ -1, 1, 171,
+ 24, 1, 885
};
-static int parser_action_row816[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row882[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 177,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 191,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row817[] = {
+static int parser_action_row883[] = {
+ 3,
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row884[] = {
2,
- -1, 3, 816,
- 11, 0, 954
+ -1, 3, 883,
+ 11, 0, 1027
};
-static int parser_action_row818[] = {
- 30,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 309,
- 57, 0, 191,
- 58, 0, 192,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 309,
- 63, 1, 309,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row885[] = {
+ 41,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 337,
+ 58, 0, 206,
+ 59, 0, 207,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 337,
+ 73, 1, 337,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row819[] = {
+static int parser_action_row886[] = {
1,
- -1, 1, 243
+ -1, 1, 257
};
-static int parser_action_row820[] = {
+static int parser_action_row887[] = {
2,
- -1, 1, 161,
- 24, 1, 819
+ -1, 1, 165,
+ 24, 1, 879
};
-static int parser_action_row821[] = {
+static int parser_action_row888[] = {
2,
- -1, 1, 162,
- 24, 1, 820
+ -1, 1, 166,
+ 24, 1, 880
};
-static int parser_action_row822[] = {
+static int parser_action_row889[] = {
1,
- -1, 1, 245
+ -1, 1, 259
};
-static int parser_action_row823[] = {
+static int parser_action_row890[] = {
4,
- -1, 3, 822,
- 53, 0, 212,
- 61, 0, 213,
- 63, 0, 956
+ -1, 3, 889,
+ 54, 0, 236,
+ 71, 0, 237,
+ 73, 0, 1029
};
-static int parser_action_row824[] = {
+static int parser_action_row891[] = {
3,
- -1, 3, 823,
- 41, 0, 957,
- 83, 0, 224
+ -1, 3, 890,
+ 41, 0, 1030,
+ 97, 0, 248
};
-static int parser_action_row825[] = {
+static int parser_action_row892[] = {
3,
- -1, 1, 424,
- 12, 0, 958,
- 82, 0, 959
+ -1, 1, 452,
+ 12, 0, 1031,
+ 96, 0, 1032
};
-static int parser_action_row826[] = {
- 31,
- -1, 1, 427,
- 9, 0, 803,
+static int parser_action_row893[] = {
+ 32,
+ -1, 1, 455,
+ 9, 0, 869,
12, 0, 25,
15, 0, 27,
16, 0, 28,
22, 0, 29,
- 24, 0, 807,
+ 24, 0, 873,
25, 0, 30,
26, 0, 31,
27, 0, 32,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row827[] = {
+static int parser_action_row894[] = {
2,
- -1, 3, 826,
- 24, 0, 963
+ -1, 3, 893,
+ 24, 0, 1036
};
-static int parser_action_row828[] = {
+static int parser_action_row895[] = {
1,
- -1, 1, 828
+ -1, 1, 888
};
-static int parser_action_row829[] = {
+static int parser_action_row896[] = {
1,
- -1, 1, 829
+ -1, 1, 889
};
-static int parser_action_row830[] = {
+static int parser_action_row897[] = {
1,
- -1, 1, 831
+ -1, 1, 891
};
-static int parser_action_row831[] = {
+static int parser_action_row898[] = {
1,
- -1, 1, 830
+ -1, 1, 890
};
-static int parser_action_row832[] = {
+static int parser_action_row899[] = {
1,
- -1, 1, 832
+ -1, 1, 892
};
-static int parser_action_row833[] = {
+static int parser_action_row900[] = {
1,
- -1, 1, 833
+ -1, 1, 893
};
-static int parser_action_row834[] = {
+static int parser_action_row901[] = {
+ 1,
+ -1, 1, 894
+};
+static int parser_action_row902[] = {
4,
- -1, 1, 426,
- 12, 0, 964,
- 81, 0, 47,
- 82, 0, 965
+ -1, 1, 454,
+ 12, 0, 1037,
+ 95, 0, 48,
+ 96, 0, 1038
};
-static int parser_action_row835[] = {
+static int parser_action_row903[] = {
1,
- -1, 1, 252
+ -1, 1, 266
};
-static int parser_action_row836[] = {
+static int parser_action_row904[] = {
2,
- -1, 3, 835,
- 49, 0, 174
+ -1, 3, 903,
+ 49, 0, 188
};
-static int parser_action_row837[] = {
+static int parser_action_row905[] = {
2,
- -1, 3, 836,
- 52, 0, 968
+ -1, 3, 904,
+ 53, 0, 1041
};
-static int parser_action_row838[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row906[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row839[] = {
+static int parser_action_row907[] = {
1,
- -1, 1, 419
+ -1, 1, 447
};
-static int parser_action_row840[] = {
+static int parser_action_row908[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row841[] = {
+static int parser_action_row909[] = {
2,
- -1, 3, 840,
- 83, 0, 971
+ -1, 3, 908,
+ 97, 0, 1044
};
-static int parser_action_row842[] = {
+static int parser_action_row910[] = {
1,
- -1, 1, 265
+ -1, 1, 284
};
-static int parser_action_row843[] = {
+static int parser_action_row911[] = {
1,
- -1, 1, 300
+ -1, 1, 328
};
-static int parser_action_row844[] = {
+static int parser_action_row912[] = {
1,
- -1, 1, 298
+ -1, 1, 326
};
-static int parser_action_row845[] = {
+static int parser_action_row913[] = {
2,
- -1, 1, 303,
- 51, 0, 242
+ -1, 1, 331,
+ 52, 0, 266
};
-static int parser_action_row846[] = {
+static int parser_action_row914[] = {
3,
- -1, 1, 307,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 335,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row847[] = {
+static int parser_action_row915[] = {
2,
- -1, 1, 425,
- 82, 0, 974
+ -1, 1, 453,
+ 96, 0, 1047
};
-static int parser_action_row848[] = {
+static int parser_action_row916[] = {
3,
- -1, 3, 847,
- 47, 0, 349,
- 81, 0, 350
+ -1, 3, 915,
+ 47, 0, 386,
+ 95, 0, 387
};
-static int parser_action_row849[] = {
+static int parser_action_row917[] = {
2,
- -1, 1, 144,
- 55, 0, 976
+ -1, 1, 148,
+ 56, 0, 1049
};
-static int parser_action_row850[] = {
+static int parser_action_row918[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row851[] = {
+static int parser_action_row919[] = {
2,
-1, 1, 28,
13, 0, 26
};
-static int parser_action_row852[] = {
+static int parser_action_row920[] = {
4,
- -1, 3, 851,
- 6, 0, 713,
- 17, 0, 714,
- 82, 0, 715
+ -1, 3, 919,
+ 6, 0, 776,
+ 17, 0, 777,
+ 96, 0, 778
};
-static int parser_action_row853[] = {
+static int parser_action_row921[] = {
3,
- -1, 1, 324,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 352,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row854[] = {
+static int parser_action_row922[] = {
2,
- -1, 3, 853,
- 82, 0, 983
+ -1, 3, 921,
+ 96, 0, 1056
};
-static int parser_action_row855[] = {
+static int parser_action_row923[] = {
3,
- -1, 3, 854,
- 81, 0, 47,
- 82, 0, 984
+ -1, 3, 922,
+ 95, 0, 48,
+ 96, 0, 1057
};
-static int parser_action_row856[] = {
+static int parser_action_row924[] = {
4,
- -1, 3, 855,
- 6, 0, 713,
- 17, 0, 714,
- 82, 0, 715
+ -1, 3, 923,
+ 6, 0, 776,
+ 17, 0, 777,
+ 96, 0, 778
};
-static int parser_action_row857[] = {
+static int parser_action_row925[] = {
2,
- -1, 3, 856,
- 52, 0, 987
+ -1, 3, 924,
+ 53, 0, 1060
};
-static int parser_action_row858[] = {
+static int parser_action_row926[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row859[] = {
+static int parser_action_row927[] = {
1,
- -1, 1, 988
+ -1, 1, 1056
};
-static int parser_action_row860[] = {
+static int parser_action_row928[] = {
2,
- -1, 1, 376,
- 55, 0, 857
+ -1, 1, 404,
+ 56, 0, 925
};
-static int parser_action_row861[] = {
+static int parser_action_row929[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row862[] = {
+static int parser_action_row930[] = {
1,
- -1, 1, 372
+ -1, 1, 400
};
-static int parser_action_row863[] = {
+static int parser_action_row931[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row932[] = {
3,
- -1, 3, 862,
- 47, 0, 349,
- 81, 0, 350
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
};
-static int parser_action_row864[] = {
+static int parser_action_row933[] = {
+ 1,
+ -1, 1, 270
+};
+static int parser_action_row934[] = {
+ 2,
+ -1, 3, 933,
+ 49, 0, 188
+};
+static int parser_action_row935[] = {
3,
- -1, 1, 445,
+ -1, 3, 934,
+ 47, 0, 386,
+ 95, 0, 387
+};
+static int parser_action_row936[] = {
+ 3,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row865[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row937[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row866[] = {
- 6,
- -1, 1, 301,
- 51, 0, 242,
- 57, 0, 191,
- 58, 0, 994,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row938[] = {
+ 15,
+ -1, 1, 329,
+ 52, 0, 266,
+ 58, 0, 206,
+ 59, 0, 1070,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row867[] = {
- 18,
- -1, 1, 424,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 556,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 82, 0, 995
+static int parser_action_row939[] = {
+ 22,
+ -1, 1, 452,
+ 54, 0, 606,
+ 74, 0, 607,
+ 75, 0, 608,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 609,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 96, 0, 1071
};
-static int parser_action_row868[] = {
+static int parser_action_row940[] = {
1,
- -1, 1, 399
+ -1, 1, 427
};
-static int parser_action_row869[] = {
- 19,
- -1, 1, 426,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 556,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 81, 0, 47,
- 82, 0, 996
+static int parser_action_row941[] = {
+ 23,
+ -1, 1, 454,
+ 54, 0, 606,
+ 74, 0, 607,
+ 75, 0, 608,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 609,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 95, 0, 48,
+ 96, 0, 1072
};
-static int parser_action_row870[] = {
+static int parser_action_row942[] = {
1,
- -1, 1, 350
+ -1, 1, 378
};
-static int parser_action_row871[] = {
+static int parser_action_row943[] = {
1,
- -1, 1, 352
+ -1, 1, 380
};
-static int parser_action_row872[] = {
+static int parser_action_row944[] = {
1,
- -1, 1, 349
+ -1, 1, 377
};
-static int parser_action_row873[] = {
- 24,
- -1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row945[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row874[] = {
+static int parser_action_row946[] = {
2,
- -1, 3, 873,
- 23, 0, 998
+ -1, 3, 945,
+ 23, 0, 1074
};
-static int parser_action_row875[] = {
+static int parser_action_row947[] = {
2,
- -1, 3, 874,
- 28, 0, 999
+ -1, 3, 946,
+ 28, 0, 1075
};
-static int parser_action_row876[] = {
- 21,
- -1, 1, 427,
- 12, 0, 1000,
- 22, 0, 1001,
- 31, 0, 1002,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row948[] = {
+ 23,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 22, 0, 1077,
+ 31, 0, 1078,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row877[] = {
+static int parser_action_row949[] = {
1,
- -1, 1, 348
+ -1, 1, 376
};
-static int parser_action_row878[] = {
+static int parser_action_row950[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row879[] = {
+static int parser_action_row951[] = {
1,
- -1, 1, 355
+ -1, 1, 383
};
-static int parser_action_row880[] = {
+static int parser_action_row952[] = {
2,
- -1, 3, 879,
- 82, 0, 1034
+ -1, 3, 951,
+ 96, 0, 1116
};
-static int parser_action_row881[] = {
+static int parser_action_row953[] = {
4,
-1, 1, 28,
- 0, 0, 81,
- 1, 0, 82,
+ 0, 0, 83,
+ 1, 0, 84,
13, 0, 26
};
-static int parser_action_row882[] = {
+static int parser_action_row954[] = {
3,
- -1, 3, 881,
- 0, 0, 81,
- 1, 0, 82
+ -1, 3, 953,
+ 0, 0, 83,
+ 1, 0, 84
};
-static int parser_action_row883[] = {
+static int parser_action_row955[] = {
2,
- -1, 1, 421,
- 57, 0, 191
+ -1, 1, 449,
+ 58, 0, 206
};
-static int parser_action_row884[] = {
+static int parser_action_row956[] = {
1,
-1, 1, 18
};
-static int parser_action_row885[] = {
+static int parser_action_row957[] = {
3,
- -1, 3, 884,
- 0, 0, 81,
- 1, 0, 82
+ -1, 3, 956,
+ 0, 0, 83,
+ 1, 0, 84
};
-static int parser_action_row886[] = {
+static int parser_action_row958[] = {
1,
- -1, 1, 101
+ -1, 1, 105
};
-static int parser_action_row887[] = {
+static int parser_action_row959[] = {
2,
- -1, 1, 109,
- 82, 0, 1041
+ -1, 1, 113,
+ 96, 0, 1123
};
-static int parser_action_row888[] = {
+static int parser_action_row960[] = {
3,
- -1, 3, 887,
- 47, 0, 349,
- 81, 0, 350
+ -1, 3, 959,
+ 47, 0, 386,
+ 95, 0, 387
};
-static int parser_action_row889[] = {
+static int parser_action_row961[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row890[] = {
+static int parser_action_row962[] = {
4,
-1, 1, 28,
- 0, 0, 81,
- 1, 0, 82,
+ 0, 0, 83,
+ 1, 0, 84,
13, 0, 26
};
-static int parser_action_row891[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row963[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row892[] = {
+static int parser_action_row964[] = {
3,
- -1, 1, 118,
- 4, 0, 888,
- 15, 0, 1049
+ -1, 1, 122,
+ 4, 0, 960,
+ 15, 0, 1131
};
-static int parser_action_row893[] = {
+static int parser_action_row965[] = {
3,
- -1, 3, 892,
+ -1, 3, 964,
28, 0, 33,
- 94, 0, 55
+ 108, 0, 56
};
-static int parser_action_row894[] = {
+static int parser_action_row966[] = {
1,
- -1, 1, 452
+ -1, 1, 480
};
-static int parser_action_row895[] = {
+static int parser_action_row967[] = {
1,
- -1, 1, 105
+ -1, 1, 109
};
-static int parser_action_row896[] = {
+static int parser_action_row968[] = {
1,
- -1, 1, 434
+ -1, 1, 462
};
-static int parser_action_row897[] = {
+static int parser_action_row969[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row898[] = {
+static int parser_action_row970[] = {
5,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
28, 0, 33,
- 94, 0, 55
+ 108, 0, 56
};
-static int parser_action_row899[] = {
+static int parser_action_row971[] = {
1,
- -1, 1, 429
+ -1, 1, 457
};
-static int parser_action_row900[] = {
+static int parser_action_row972[] = {
2,
- -1, 1, 431,
- 57, 0, 190
+ -1, 1, 459,
+ 58, 0, 205
};
-static int parser_action_row901[] = {
+static int parser_action_row973[] = {
2,
- -1, 3, 900,
- 81, 0, 1061
+ -1, 3, 972,
+ 95, 0, 1143
};
-static int parser_action_row902[] = {
+static int parser_action_row974[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row903[] = {
+static int parser_action_row975[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row904[] = {
+static int parser_action_row976[] = {
1,
- -1, 1, 203
+ -1, 1, 208
};
-static int parser_action_row905[] = {
+static int parser_action_row977[] = {
1,
- -1, 1, 222
+ -1, 1, 227
};
-static int parser_action_row906[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row978[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row907[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row979[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row908[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row980[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row909[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row981[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row910[] = {
+static int parser_action_row982[] = {
1,
- -1, 1, 187
+ -1, 1, 192
};
-static int parser_action_row911[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row983[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row912[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row984[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row913[] = {
- 4,
- -1, 1, 302,
- 58, 0, 1070,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row985[] = {
+ 13,
+ -1, 1, 330,
+ 59, 0, 1152,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row914[] = {
+static int parser_action_row986[] = {
1,
- -1, 1, 177
+ -1, 1, 182
};
-static int parser_action_row915[] = {
+static int parser_action_row987[] = {
1,
- -1, 1, 189
+ -1, 1, 194
};
-static int parser_action_row916[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row988[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row917[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row989[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row918[] = {
- 4,
- -1, 1, 306,
- 58, 0, 1074,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row990[] = {
+ 13,
+ -1, 1, 334,
+ 59, 0, 1156,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row919[] = {
+static int parser_action_row991[] = {
1,
- -1, 1, 179
+ -1, 1, 184
};
-static int parser_action_row920[] = {
- 23,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 434,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row992[] = {
+ 25,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 476,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row921[] = {
- 29,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 305,
- 58, 0, 1077,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 305,
- 63, 1, 305,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row993[] = {
+ 40,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 333,
+ 59, 0, 1159,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 333,
+ 73, 1, 333,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row922[] = {
+static int parser_action_row994[] = {
1,
- -1, 1, 407
+ -1, 1, 435
};
-static int parser_action_row923[] = {
+static int parser_action_row995[] = {
1,
- -1, 1, 214
+ -1, 1, 219
};
-static int parser_action_row924[] = {
+static int parser_action_row996[] = {
1,
- -1, 1, 233
+ -1, 1, 238
};
-static int parser_action_row925[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row997[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row926[] = {
+static int parser_action_row998[] = {
3,
- -1, 1, 705,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 756,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row927[] = {
+static int parser_action_row999[] = {
2,
- -1, 3, 926,
- 82, 0, 1083
+ -1, 3, 998,
+ 96, 0, 1165
};
-static int parser_action_row928[] = {
+static int parser_action_row1000[] = {
3,
- -1, 3, 927,
- 81, 0, 47,
- 82, 0, 1084
+ -1, 3, 999,
+ 95, 0, 48,
+ 96, 0, 1166
};
-static int parser_action_row929[] = {
+static int parser_action_row1001[] = {
4,
- -1, 1, 676,
- 53, 1, 679,
- 61, 1, 679,
- 63, 1, 679
+ -1, 1, 727,
+ 54, 1, 730,
+ 71, 1, 730,
+ 73, 1, 730
};
-static int parser_action_row930[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1002[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row931[] = {
+static int parser_action_row1003[] = {
1,
- -1, 1, 995
+ -1, 1, 1063
};
-static int parser_action_row932[] = {
+static int parser_action_row1004[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row933[] = {
+static int parser_action_row1005[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row934[] = {
+static int parser_action_row1006[] = {
1,
- -1, 1, 683
+ -1, 1, 734
};
-static int parser_action_row935[] = {
+static int parser_action_row1007[] = {
1,
- -1, 1, 687
+ -1, 1, 738
};
-static int parser_action_row936[] = {
+static int parser_action_row1008[] = {
2,
- -1, 1, 686,
- 51, 0, 242
+ -1, 1, 737,
+ 52, 0, 266
};
-static int parser_action_row937[] = {
+static int parser_action_row1009[] = {
1,
- -1, 1, 199
+ -1, 1, 204
};
-static int parser_action_row938[] = {
+static int parser_action_row1010[] = {
2,
- -1, 1, 186,
- 24, 1, 844
+ -1, 1, 191,
+ 24, 1, 905
};
-static int parser_action_row939[] = {
+static int parser_action_row1011[] = {
3,
- -1, 1, 152,
- 24, 1, 817,
- 49, 1, 898
+ -1, 1, 156,
+ 24, 1, 877,
+ 49, 1, 962
};
-static int parser_action_row940[] = {
- 30,
- -1, 1, 427,
- 9, 0, 1090,
+static int parser_action_row1012[] = {
+ 31,
+ -1, 1, 455,
+ 9, 0, 1172,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row941[] = {
+static int parser_action_row1013[] = {
1,
- -1, 1, 853
+ -1, 1, 914
};
-static int parser_action_row942[] = {
+static int parser_action_row1014[] = {
1,
- -1, 1, 818
+ -1, 1, 878
};
-static int parser_action_row943[] = {
+static int parser_action_row1015[] = {
2,
- -1, 3, 942,
- 49, 0, 174
+ -1, 3, 1014,
+ 49, 0, 188
};
-static int parser_action_row944[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1016[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row945[] = {
+static int parser_action_row1017[] = {
1,
- -1, 1, 247
+ -1, 1, 261
};
-static int parser_action_row946[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1018[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row947[] = {
+static int parser_action_row1019[] = {
1,
- -1, 1, 856
+ -1, 1, 917
};
-static int parser_action_row948[] = {
+static int parser_action_row1020[] = {
2,
- -1, 3, 947,
- 49, 0, 174
+ -1, 3, 1019,
+ 49, 0, 188
};
-static int parser_action_row949[] = {
+static int parser_action_row1021[] = {
3,
- -1, 3, 948,
- 51, 0, 300,
- 82, 0, 301
+ -1, 3, 1020,
+ 52, 0, 329,
+ 96, 0, 330
};
-static int parser_action_row950[] = {
+static int parser_action_row1022[] = {
2,
- -1, 1, 164,
- 24, 1, 822
+ -1, 1, 168,
+ 24, 1, 882
};
-static int parser_action_row951[] = {
+static int parser_action_row1023[] = {
2,
- -1, 1, 169,
- 24, 1, 827
+ -1, 1, 173,
+ 24, 1, 887
};
-static int parser_action_row952[] = {
+static int parser_action_row1024[] = {
2,
- -1, 1, 166,
- 24, 1, 824
+ -1, 1, 170,
+ 24, 1, 884
};
-static int parser_action_row953[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1025[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row954[] = {
+static int parser_action_row1026[] = {
2,
- -1, 1, 257,
- 24, 0, 1098
+ -1, 1, 276,
+ 24, 0, 1180
};
-static int parser_action_row955[] = {
+static int parser_action_row1027[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 383,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1028[] = {
3,
- -1, 3, 954,
- 47, 0, 349,
- 81, 0, 350
+ -1, 3, 1027,
+ 47, 0, 386,
+ 95, 0, 387
};
-static int parser_action_row956[] = {
+static int parser_action_row1029[] = {
2,
- -1, 1, 180,
- 24, 1, 838
+ -1, 1, 185,
+ 24, 1, 899
};
-static int parser_action_row957[] = {
+static int parser_action_row1030[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row958[] = {
- 26,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 317,
- 61, 1, 317,
- 63, 1, 317,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1031[] = {
+ 28,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 345,
+ 71, 1, 345,
+ 73, 1, 345,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row959[] = {
- 23,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 434,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1032[] = {
+ 25,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 476,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row960[] = {
- 29,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 311,
- 58, 0, 436,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 311,
- 63, 1, 311,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1033[] = {
+ 40,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 339,
+ 59, 0, 478,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 339,
+ 73, 1, 339,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row961[] = {
+static int parser_action_row1034[] = {
3,
- -1, 3, 960,
- 9, 0, 803,
- 24, 0, 807
+ -1, 3, 1033,
+ 9, 0, 869,
+ 24, 0, 873
};
-static int parser_action_row962[] = {
+static int parser_action_row1035[] = {
3,
- -1, 3, 961,
+ -1, 3, 1034,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row963[] = {
+static int parser_action_row1036[] = {
1,
- -1, 1, 246
+ -1, 1, 260
};
-static int parser_action_row964[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1037[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row965[] = {
- 23,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 434,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1038[] = {
+ 25,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 476,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row966[] = {
- 30,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 315,
- 57, 0, 191,
- 58, 0, 441,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 315,
- 63, 1, 315,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1039[] = {
+ 41,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 343,
+ 58, 0, 206,
+ 59, 0, 483,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 343,
+ 73, 1, 343,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row967[] = {
+static int parser_action_row1040[] = {
3,
- -1, 1, 425,
- 12, 0, 1109,
- 82, 0, 1110
+ -1, 1, 453,
+ 12, 0, 1192,
+ 96, 0, 1193
};
-static int parser_action_row968[] = {
+static int parser_action_row1041[] = {
1,
- -1, 1, 251
+ -1, 1, 265
};
-static int parser_action_row969[] = {
+static int parser_action_row1042[] = {
1,
- -1, 1, 416
+ -1, 1, 444
};
-static int parser_action_row970[] = {
+static int parser_action_row1043[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row971[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1044[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row972[] = {
+static int parser_action_row1045[] = {
4,
- -1, 1, 295,
- 53, 1, 298,
- 61, 1, 298,
- 63, 1, 298
+ -1, 1, 323,
+ 54, 1, 326,
+ 71, 1, 326,
+ 73, 1, 326
};
-static int parser_action_row973[] = {
+static int parser_action_row1046[] = {
1,
- -1, 1, 302
+ -1, 1, 330
};
-static int parser_action_row974[] = {
+static int parser_action_row1047[] = {
1,
- -1, 1, 306
+ -1, 1, 334
};
-static int parser_action_row975[] = {
+static int parser_action_row1048[] = {
2,
- -1, 1, 305,
- 51, 0, 242
+ -1, 1, 333,
+ 52, 0, 266
};
-static int parser_action_row976[] = {
+static int parser_action_row1049[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row977[] = {
+static int parser_action_row1050[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row978[] = {
+static int parser_action_row1051[] = {
1,
- -1, 1, 978
+ -1, 1, 1046
};
-static int parser_action_row979[] = {
+static int parser_action_row1052[] = {
2,
- -1, 1, 145,
- 55, 0, 976
+ -1, 1, 149,
+ 56, 0, 1049
};
-static int parser_action_row980[] = {
+static int parser_action_row1053[] = {
2,
- -1, 3, 979,
- 54, 0, 1117
+ -1, 3, 1052,
+ 55, 0, 1200
};
-static int parser_action_row981[] = {
+static int parser_action_row1054[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row982[] = {
+static int parser_action_row1055[] = {
2,
- -1, 1, 729,
- 80, 0, 533
+ -1, 1, 780,
+ 94, 0, 581
};
-static int parser_action_row983[] = {
+static int parser_action_row1056[] = {
1,
- -1, 1, 323
+ -1, 1, 351
};
-static int parser_action_row984[] = {
+static int parser_action_row1057[] = {
2,
- -1, 1, 326,
- 51, 0, 242
+ -1, 1, 354,
+ 52, 0, 266
};
-static int parser_action_row985[] = {
+static int parser_action_row1058[] = {
3,
- -1, 1, 330,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 358,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row986[] = {
+static int parser_action_row1059[] = {
2,
- -1, 3, 985,
- 82, 0, 1122
+ -1, 3, 1058,
+ 96, 0, 1205
};
-static int parser_action_row987[] = {
+static int parser_action_row1060[] = {
13,
- -1, 1, 371,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 51, 0, 1123,
- 80, 0, 181,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+ -1, 1, 399,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 52, 0, 1206,
+ 94, 0, 195,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row988[] = {
+static int parser_action_row1061[] = {
1,
- -1, 1, 369
+ -1, 1, 397
};
-static int parser_action_row989[] = {
+static int parser_action_row1062[] = {
2,
-1, 1, 28,
13, 0, 26
};
-static int parser_action_row990[] = {
+static int parser_action_row1063[] = {
1,
- -1, 1, 989
+ -1, 1, 1057
};
-static int parser_action_row991[] = {
- 49,
- -1, 1, 427,
- 12, 0, 153,
+static int parser_action_row1064[] = {
+ 54,
+ -1, 1, 455,
+ 12, 0, 161,
15, 0, 27,
16, 0, 28,
- 22, 0, 154,
+ 22, 0, 162,
25, 0, 30,
26, 0, 31,
27, 0, 32,
- 31, 0, 155,
- 33, 0, 352,
- 34, 0, 353,
- 35, 0, 354,
- 36, 0, 355,
+ 31, 0, 163,
+ 33, 0, 389,
+ 34, 0, 390,
+ 35, 0, 391,
+ 36, 0, 392,
37, 0, 38,
- 38, 0, 156,
- 40, 0, 157,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 47, 0, 349,
- 48, 0, 158,
- 50, 0, 356,
- 51, 0, 45,
- 53, 0, 357,
- 64, 0, 358,
- 65, 0, 359,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 80, 0, 181,
- 81, 0, 373,
- 82, 0, 374,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row992[] = {
- 3,
- -1, 1, 445,
- 0, 0, 1,
- 1, 0, 2
-};
-static int parser_action_row993[] = {
- 2,
- -1, 3, 992,
- 54, 0, 1131
+ 47, 0, 386,
+ 48, 0, 166,
+ 50, 0, 44,
+ 51, 0, 393,
+ 52, 0, 46,
+ 54, 0, 394,
+ 74, 0, 395,
+ 75, 0, 396,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 404,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 94, 0, 195,
+ 95, 0, 414,
+ 96, 0, 415,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row994[] = {
+static int parser_action_row1065[] = {
1,
- -1, 1, 916
+ -1, 1, 271
};
-static int parser_action_row995[] = {
+static int parser_action_row1066[] = {
24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1067[] = {
+ 1,
+ -1, 1, 269
+};
+static int parser_action_row1068[] = {
+ 3,
-1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1069[] = {
+ 2,
+ -1, 3, 1068,
+ 55, 0, 1215
+};
+static int parser_action_row1070[] = {
+ 1,
+ -1, 1, 981
+};
+static int parser_action_row1071[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row996[] = {
- 5,
- -1, 1, 303,
- 51, 0, 242,
- 58, 0, 1132,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1072[] = {
+ 14,
+ -1, 1, 331,
+ 52, 0, 266,
+ 59, 0, 1216,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row997[] = {
- 6,
- -1, 1, 307,
- 51, 0, 242,
- 57, 0, 191,
- 58, 0, 1133,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1073[] = {
+ 15,
+ -1, 1, 335,
+ 52, 0, 266,
+ 58, 0, 206,
+ 59, 0, 1217,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row998[] = {
- 18,
- -1, 1, 425,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 556,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 82, 0, 1134
+static int parser_action_row1074[] = {
+ 22,
+ -1, 1, 453,
+ 54, 0, 606,
+ 74, 0, 607,
+ 75, 0, 608,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 609,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 96, 0, 1218
};
-static int parser_action_row999[] = {
+static int parser_action_row1075[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1000[] = {
+static int parser_action_row1076[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1001[] = {
+static int parser_action_row1077[] = {
2,
- -1, 1, 542,
- 51, 0, 242
+ -1, 1, 583,
+ 52, 0, 266
};
-static int parser_action_row1002[] = {
+static int parser_action_row1078[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1003[] = {
+static int parser_action_row1079[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1004[] = {
+static int parser_action_row1080[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1005[] = {
+static int parser_action_row1081[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1006[] = {
+static int parser_action_row1082[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1007[] = {
+static int parser_action_row1083[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1008[] = {
+static int parser_action_row1084[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1009[] = {
+static int parser_action_row1085[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1010[] = {
+static int parser_action_row1086[] = {
16,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1146,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 51, 0, 45,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1230,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 52, 0, 46,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1011[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1087[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1012[] = {
+static int parser_action_row1088[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
+};
+static int parser_action_row1089[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
+};
+static int parser_action_row1090[] = {
3,
- -1, 1, 524,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 565,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row1013[] = {
+static int parser_action_row1091[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1014[] = {
+static int parser_action_row1092[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1015[] = {
+static int parser_action_row1093[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1016[] = {
+static int parser_action_row1094[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1017[] = {
+static int parser_action_row1095[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1018[] = {
+static int parser_action_row1096[] = {
1,
- -1, 1, 565
+ -1, 1, 606
};
-static int parser_action_row1019[] = {
+static int parser_action_row1097[] = {
1,
- -1, 1, 564
+ -1, 1, 605
};
-static int parser_action_row1020[] = {
+static int parser_action_row1098[] = {
3,
- -1, 3, 1019,
- 41, 0, 1156,
- 83, 0, 1157
+ -1, 3, 1097,
+ 41, 0, 1242,
+ 97, 0, 1243
};
-static int parser_action_row1021[] = {
+static int parser_action_row1099[] = {
2,
- -1, 1, 424,
- 82, 0, 1158
+ -1, 1, 452,
+ 96, 0, 1244
};
-static int parser_action_row1022[] = {
+static int parser_action_row1100[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1023[] = {
+static int parser_action_row1101[] = {
4,
- -1, 1, 481,
- 29, 0, 1160,
- 30, 0, 1161,
- 32, 0, 1162
+ -1, 1, 513,
+ 29, 0, 1246,
+ 30, 0, 1247,
+ 32, 0, 1248
};
-static int parser_action_row1024[] = {
+static int parser_action_row1102[] = {
1,
- -1, 1, 483
+ -1, 1, 515
};
-static int parser_action_row1025[] = {
+static int parser_action_row1103[] = {
+ 1,
+ -1, 1, 520
+};
+static int parser_action_row1104[] = {
+ 10,
+ -1, 1, 522,
+ 39, 0, 1249,
+ 80, 0, 1250,
+ 84, 0, 1251,
+ 85, 0, 1252,
+ 86, 0, 1253,
+ 87, 0, 1254,
+ 89, 0, 1255,
+ 90, 0, 1256,
+ 92, 0, 1257
+};
+static int parser_action_row1105[] = {
+ 2,
+ -1, 1, 531,
+ 81, 0, 1258
+};
+static int parser_action_row1106[] = {
+ 2,
+ -1, 1, 533,
+ 82, 0, 1259
+};
+static int parser_action_row1107[] = {
3,
- -1, 1, 488,
- 74, 0, 1163,
- 77, 0, 1164
+ -1, 1, 535,
+ 88, 0, 1260,
+ 91, 0, 1261
};
-static int parser_action_row1026[] = {
- 11,
- -1, 1, 490,
- 39, 0, 1165,
- 64, 0, 1166,
- 65, 0, 1167,
- 70, 0, 1168,
- 71, 0, 1169,
- 72, 0, 1170,
- 73, 0, 1171,
- 75, 0, 1172,
- 76, 0, 1173,
- 78, 0, 1174
+static int parser_action_row1108[] = {
+ 3,
+ -1, 1, 537,
+ 74, 0, 1262,
+ 75, 0, 1263
};
-static int parser_action_row1027[] = {
+static int parser_action_row1109[] = {
4,
- -1, 1, 501,
- 66, 0, 1175,
- 68, 0, 1176,
- 69, 0, 1177
+ -1, 1, 540,
+ 76, 0, 1264,
+ 78, 0, 1265,
+ 79, 0, 1266
};
-static int parser_action_row1028[] = {
+static int parser_action_row1110[] = {
1,
- -1, 1, 504
+ -1, 1, 543
};
-static int parser_action_row1029[] = {
+static int parser_action_row1111[] = {
2,
- -1, 1, 508,
- 67, 0, 1178
+ -1, 1, 547,
+ 77, 0, 1267
};
-static int parser_action_row1030[] = {
+static int parser_action_row1112[] = {
1,
- -1, 1, 510
+ -1, 1, 549
};
-static int parser_action_row1031[] = {
+static int parser_action_row1113[] = {
3,
- -1, 1, 513,
- 61, 0, 1179,
- 63, 0, 1180
+ -1, 1, 554,
+ 71, 0, 1268,
+ 73, 0, 1269
};
-static int parser_action_row1032[] = {
+static int parser_action_row1114[] = {
1,
- -1, 1, 518
+ -1, 1, 559
};
-static int parser_action_row1033[] = {
+static int parser_action_row1115[] = {
3,
- -1, 1, 426,
- 81, 0, 47,
- 82, 0, 1181
+ -1, 1, 454,
+ 95, 0, 48,
+ 96, 0, 1270
};
-static int parser_action_row1034[] = {
+static int parser_action_row1116[] = {
1,
- -1, 1, 356
+ -1, 1, 384
};
-static int parser_action_row1035[] = {
+static int parser_action_row1117[] = {
2,
- -1, 1, 422,
- 57, 0, 191
+ -1, 1, 450,
+ 58, 0, 206
};
-static int parser_action_row1036[] = {
+static int parser_action_row1118[] = {
2,
- -1, 3, 1035,
- 82, 0, 1183
+ -1, 3, 1117,
+ 96, 0, 1272
};
-static int parser_action_row1037[] = {
+static int parser_action_row1119[] = {
1,
-1, 1, 74
};
-static int parser_action_row1038[] = {
+static int parser_action_row1120[] = {
1,
- -1, 1, 374
+ -1, 1, 402
};
-static int parser_action_row1039[] = {
+static int parser_action_row1121[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1040[] = {
+static int parser_action_row1122[] = {
1,
-1, 1, 16
};
-static int parser_action_row1041[] = {
+static int parser_action_row1123[] = {
1,
-1, 1, 17
};
-static int parser_action_row1042[] = {
+static int parser_action_row1124[] = {
3,
- -1, 1, 371,
- 56, 0, 747,
- 80, 0, 181
+ -1, 1, 399,
+ 57, 0, 813,
+ 94, 0, 195
};
-static int parser_action_row1043[] = {
+static int parser_action_row1125[] = {
2,
- -1, 3, 1042,
- 52, 0, 1191
+ -1, 3, 1124,
+ 53, 0, 1280
};
-static int parser_action_row1044[] = {
+static int parser_action_row1126[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 55, 0, 1192
+ 56, 0, 1281
};
-static int parser_action_row1045[] = {
+static int parser_action_row1127[] = {
1,
- -1, 1, 147
+ -1, 1, 151
};
-static int parser_action_row1046[] = {
- 21,
- -1, 3, 1045,
- 41, 0, 1196,
- 47, 0, 349,
- 53, 0, 574,
- 64, 0, 575,
- 65, 0, 576,
- 66, 0, 577,
- 67, 0, 578,
- 68, 0, 579,
- 69, 0, 580,
- 70, 0, 581,
- 71, 0, 582,
- 72, 0, 583,
- 73, 0, 584,
- 74, 0, 585,
- 75, 0, 586,
- 76, 0, 587,
- 77, 0, 588,
- 78, 0, 589,
- 81, 0, 373,
- 82, 0, 590
+static int parser_action_row1128[] = {
+ 25,
+ -1, 3, 1127,
+ 41, 0, 1285,
+ 47, 0, 386,
+ 54, 0, 627,
+ 74, 0, 628,
+ 75, 0, 629,
+ 76, 0, 630,
+ 77, 0, 631,
+ 78, 0, 632,
+ 79, 0, 633,
+ 80, 0, 634,
+ 81, 0, 635,
+ 82, 0, 636,
+ 83, 0, 637,
+ 84, 0, 638,
+ 85, 0, 639,
+ 86, 0, 640,
+ 87, 0, 641,
+ 88, 0, 642,
+ 89, 0, 643,
+ 90, 0, 644,
+ 91, 0, 645,
+ 92, 0, 646,
+ 95, 0, 414,
+ 96, 0, 647
};
-static int parser_action_row1047[] = {
+static int parser_action_row1129[] = {
3,
-1, 1, 77,
- 0, 1, 455,
- 1, 1, 455
+ 0, 1, 483,
+ 1, 1, 483
};
-static int parser_action_row1048[] = {
+static int parser_action_row1130[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1049[] = {
+static int parser_action_row1131[] = {
2,
- -1, 1, 438,
- 9, 0, 1203
+ -1, 1, 466,
+ 9, 0, 1292
};
-static int parser_action_row1050[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1132[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1051[] = {
+static int parser_action_row1133[] = {
3,
- -1, 3, 1050,
+ -1, 3, 1132,
28, 0, 33,
- 94, 0, 55
+ 108, 0, 56
};
-static int parser_action_row1052[] = {
+static int parser_action_row1134[] = {
1,
- -1, 1, 453
+ -1, 1, 481
};
-static int parser_action_row1053[] = {
+static int parser_action_row1135[] = {
2,
- -1, 3, 1052,
- 81, 0, 1207
+ -1, 3, 1134,
+ 95, 0, 1296
};
-static int parser_action_row1054[] = {
+static int parser_action_row1136[] = {
2,
-1, 1, 73,
9, 1, 43
};
-static int parser_action_row1055[] = {
+static int parser_action_row1137[] = {
2,
- -1, 3, 1054,
- 9, 0, 1209
+ -1, 3, 1136,
+ 9, 0, 1298
};
-static int parser_action_row1056[] = {
+static int parser_action_row1138[] = {
1,
- -1, 1, 972
+ -1, 1, 1040
};
-static int parser_action_row1057[] = {
+static int parser_action_row1139[] = {
3,
- -1, 3, 1056,
- 0, 0, 81,
- 1, 0, 82
+ -1, 3, 1138,
+ 0, 0, 83,
+ 1, 0, 84
};
-static int parser_action_row1058[] = {
+static int parser_action_row1140[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1059[] = {
+static int parser_action_row1141[] = {
1,
-1, 1, 72
};
-static int parser_action_row1060[] = {
+static int parser_action_row1142[] = {
5,
-1, 1, 28,
- 6, 0, 1212,
+ 6, 0, 1301,
9, 1, 44,
13, 0, 26,
- 82, 0, 1213
+ 96, 0, 1302
};
-static int parser_action_row1061[] = {
+static int parser_action_row1143[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1062[] = {
+static int parser_action_row1144[] = {
1,
- -1, 1, 430
+ -1, 1, 458
};
-static int parser_action_row1063[] = {
+static int parser_action_row1145[] = {
2,
- -1, 3, 1062,
- 45, 0, 1219
+ -1, 3, 1144,
+ 45, 0, 1308
};
-static int parser_action_row1064[] = {
+static int parser_action_row1146[] = {
4,
- -1, 3, 1063,
- 31, 0, 1220,
- 47, 0, 349,
- 81, 0, 350
+ -1, 3, 1145,
+ 31, 0, 1309,
+ 47, 0, 386,
+ 95, 0, 387
};
-static int parser_action_row1065[] = {
+static int parser_action_row1147[] = {
1,
- -1, 1, 202
+ -1, 1, 207
};
-static int parser_action_row1066[] = {
+static int parser_action_row1148[] = {
1,
- -1, 1, 221
+ -1, 1, 226
};
-static int parser_action_row1067[] = {
+static int parser_action_row1149[] = {
1,
- -1, 1, 200
+ -1, 1, 205
};
-static int parser_action_row1068[] = {
+static int parser_action_row1150[] = {
1,
- -1, 1, 219
+ -1, 1, 224
};
-static int parser_action_row1069[] = {
+static int parser_action_row1151[] = {
1,
- -1, 1, 205
+ -1, 1, 210
};
-static int parser_action_row1070[] = {
+static int parser_action_row1152[] = {
1,
- -1, 1, 224
+ -1, 1, 229
};
-static int parser_action_row1071[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1153[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1072[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1154[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1073[] = {
+static int parser_action_row1155[] = {
1,
- -1, 1, 209
+ -1, 1, 214
};
-static int parser_action_row1074[] = {
+static int parser_action_row1156[] = {
1,
- -1, 1, 228
+ -1, 1, 233
};
-static int parser_action_row1075[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1157[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1076[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1158[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1077[] = {
+static int parser_action_row1159[] = {
1,
- -1, 1, 188
+ -1, 1, 193
};
-static int parser_action_row1078[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1160[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1079[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1161[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1080[] = {
- 4,
- -1, 1, 304,
- 58, 0, 1228,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1162[] = {
+ 13,
+ -1, 1, 332,
+ 59, 0, 1317,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1081[] = {
+static int parser_action_row1163[] = {
1,
- -1, 1, 178
+ -1, 1, 183
};
-static int parser_action_row1082[] = {
+static int parser_action_row1164[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1083[] = {
+static int parser_action_row1165[] = {
1,
- -1, 1, 704
+ -1, 1, 755
};
-static int parser_action_row1084[] = {
+static int parser_action_row1166[] = {
2,
- -1, 1, 707,
- 51, 0, 242
+ -1, 1, 758,
+ 52, 0, 266
};
-static int parser_action_row1085[] = {
+static int parser_action_row1167[] = {
3,
- -1, 1, 711,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 762,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row1086[] = {
+static int parser_action_row1168[] = {
2,
- -1, 3, 1085,
- 82, 0, 1233
+ -1, 3, 1167,
+ 96, 0, 1322
};
-static int parser_action_row1087[] = {
+static int parser_action_row1169[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1088[] = {
+static int parser_action_row1170[] = {
2,
- -1, 3, 1087,
- 45, 0, 1235
+ -1, 3, 1169,
+ 45, 0, 1324
};
-static int parser_action_row1089[] = {
+static int parser_action_row1171[] = {
4,
- -1, 3, 1088,
- 31, 0, 1236,
- 47, 0, 349,
- 81, 0, 350
+ -1, 3, 1170,
+ 31, 0, 1325,
+ 47, 0, 386,
+ 95, 0, 387
};
-static int parser_action_row1090[] = {
+static int parser_action_row1172[] = {
1,
- -1, 1, 685
+ -1, 1, 736
};
-static int parser_action_row1091[] = {
+static int parser_action_row1173[] = {
3,
- -1, 1, 151,
- 24, 1, 816,
- 49, 1, 897
+ -1, 1, 155,
+ 24, 1, 876,
+ 49, 1, 961
};
-static int parser_action_row1092[] = {
+static int parser_action_row1174[] = {
3,
- -1, 1, 150,
- 24, 1, 815,
- 49, 1, 896
+ -1, 1, 154,
+ 24, 1, 875,
+ 49, 1, 960
};
-static int parser_action_row1093[] = {
+static int parser_action_row1175[] = {
2,
- -1, 1, 240,
- 24, 1, 852
+ -1, 1, 254,
+ 24, 1, 913
};
-static int parser_action_row1094[] = {
+static int parser_action_row1176[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1095[] = {
+static int parser_action_row1177[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1096[] = {
+static int parser_action_row1178[] = {
2,
- -1, 1, 249,
- 24, 1, 855
+ -1, 1, 263,
+ 24, 1, 916
};
-static int parser_action_row1097[] = {
+static int parser_action_row1179[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1098[] = {
+static int parser_action_row1180[] = {
2,
- -1, 1, 258,
- 24, 0, 1241
+ -1, 1, 277,
+ 24, 0, 1330
};
-static int parser_action_row1099[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1181[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 1242,
- 12, 0, 804,
- 15, 0, 805,
+ 9, 0, 1331,
+ 12, 0, 870,
+ 15, 0, 871,
16, 0, 28,
- 22, 0, 806,
- 25, 0, 808,
- 26, 0, 809,
- 27, 0, 810,
- 33, 0, 811,
- 34, 0, 812,
- 35, 0, 813,
- 36, 0, 814,
- 37, 0, 815,
+ 22, 0, 872,
+ 25, 0, 874,
+ 26, 0, 875,
+ 27, 0, 876,
+ 33, 0, 877,
+ 34, 0, 878,
+ 35, 0, 879,
+ 36, 0, 880,
+ 37, 0, 881,
38, 0, 39,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 50, 0, 816,
- 51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 817,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 50, 0, 882,
+ 51, 0, 883,
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 884,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1100[] = {
+static int parser_action_row1182[] = {
+ 3,
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1183[] = {
2,
- -1, 3, 1099,
- 56, 0, 1245
+ -1, 3, 1182,
+ 57, 0, 1335
};
-static int parser_action_row1101[] = {
+static int parser_action_row1184[] = {
5,
- -1, 1, 427,
- 12, 0, 1246,
- 46, 0, 599,
- 81, 0, 47,
- 82, 0, 1247
+ -1, 1, 455,
+ 12, 0, 1336,
+ 46, 0, 656,
+ 95, 0, 48,
+ 96, 0, 1337
};
-static int parser_action_row1102[] = {
+static int parser_action_row1185[] = {
2,
- -1, 1, 184,
- 24, 1, 842
+ -1, 1, 189,
+ 24, 1, 903
};
-static int parser_action_row1103[] = {
+static int parser_action_row1186[] = {
2,
- -1, 1, 190,
- 24, 1, 848
+ -1, 1, 195,
+ 24, 1, 909
};
-static int parser_action_row1104[] = {
+static int parser_action_row1187[] = {
2,
- -1, 1, 181,
- 24, 1, 839
+ -1, 1, 186,
+ 24, 1, 900
};
-static int parser_action_row1105[] = {
+static int parser_action_row1188[] = {
1,
- -1, 1, 244
+ -1, 1, 258
};
-static int parser_action_row1106[] = {
+static int parser_action_row1189[] = {
3,
- -1, 3, 1105,
+ -1, 3, 1188,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1107[] = {
+static int parser_action_row1190[] = {
1,
- -1, 1, 242
+ -1, 1, 256
};
-static int parser_action_row1108[] = {
+static int parser_action_row1191[] = {
2,
- -1, 1, 192,
- 24, 1, 850
+ -1, 1, 197,
+ 24, 1, 911
};
-static int parser_action_row1109[] = {
+static int parser_action_row1192[] = {
2,
- -1, 1, 183,
- 24, 1, 841
+ -1, 1, 188,
+ 24, 1, 902
};
-static int parser_action_row1110[] = {
- 23,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 434,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1193[] = {
+ 25,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 476,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row1111[] = {
- 29,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 313,
- 58, 0, 621,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 313,
- 63, 1, 313,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1194[] = {
+ 40,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 341,
+ 59, 0, 678,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 341,
+ 73, 1, 341,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row1112[] = {
+static int parser_action_row1195[] = {
2,
- -1, 3, 1111,
- 15, 0, 1252
+ -1, 3, 1194,
+ 15, 0, 1342
};
-static int parser_action_row1113[] = {
+static int parser_action_row1196[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1114[] = {
+static int parser_action_row1197[] = {
1,
- -1, 1, 304
+ -1, 1, 332
};
-static int parser_action_row1115[] = {
+static int parser_action_row1198[] = {
2,
- -1, 3, 1114,
- 54, 0, 1254
+ -1, 3, 1197,
+ 55, 0, 1344
};
-static int parser_action_row1116[] = {
+static int parser_action_row1199[] = {
3,
- -1, 3, 1115,
- 47, 0, 349,
- 81, 0, 350
+ -1, 3, 1198,
+ 47, 0, 386,
+ 95, 0, 387
};
-static int parser_action_row1117[] = {
+static int parser_action_row1200[] = {
1,
- -1, 1, 979
+ -1, 1, 1047
};
-static int parser_action_row1118[] = {
+static int parser_action_row1201[] = {
2,
- -1, 1, 729,
- 80, 0, 533
+ -1, 1, 780,
+ 94, 0, 581
};
-static int parser_action_row1119[] = {
+static int parser_action_row1202[] = {
2,
- -1, 3, 1118,
- 52, 0, 1257
+ -1, 3, 1201,
+ 53, 0, 1347
};
-static int parser_action_row1120[] = {
+static int parser_action_row1203[] = {
1,
- -1, 1, 730
+ -1, 1, 781
};
-static int parser_action_row1121[] = {
+static int parser_action_row1204[] = {
1,
- -1, 1, 325
+ -1, 1, 353
};
-static int parser_action_row1122[] = {
+static int parser_action_row1205[] = {
1,
- -1, 1, 329
+ -1, 1, 357
};
-static int parser_action_row1123[] = {
+static int parser_action_row1206[] = {
2,
- -1, 1, 328,
- 51, 0, 242
+ -1, 1, 356,
+ 52, 0, 266
};
-static int parser_action_row1124[] = {
+static int parser_action_row1207[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1125[] = {
+static int parser_action_row1208[] = {
1,
- -1, 1, 377
+ -1, 1, 405
};
-static int parser_action_row1126[] = {
+static int parser_action_row1209[] = {
1,
- -1, 1, 379
+ -1, 1, 407
};
-static int parser_action_row1127[] = {
+static int parser_action_row1210[] = {
1,
- -1, 1, 380
+ -1, 1, 408
};
-static int parser_action_row1128[] = {
+static int parser_action_row1211[] = {
1,
- -1, 1, 381
+ -1, 1, 409
};
-static int parser_action_row1129[] = {
+static int parser_action_row1212[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1130[] = {
+static int parser_action_row1213[] = {
2,
- -1, 1, 393,
- 55, 0, 1261
+ -1, 1, 421,
+ 56, 0, 1351
};
-static int parser_action_row1131[] = {
+static int parser_action_row1214[] = {
+ 1,
+ -1, 1, 272
+};
+static int parser_action_row1215[] = {
2,
- -1, 3, 1130,
- 54, 0, 1264
+ -1, 3, 1214,
+ 55, 0, 1354
};
-static int parser_action_row1132[] = {
+static int parser_action_row1216[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1133[] = {
- 24,
- -1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row1217[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1134[] = {
- 24,
- -1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row1218[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1135[] = {
- 5,
- -1, 1, 305,
- 51, 0, 242,
- 58, 0, 1266,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1219[] = {
+ 14,
+ -1, 1, 333,
+ 52, 0, 266,
+ 59, 0, 1356,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1136[] = {
- 23,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 394,
- 27, 0, 395,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1220[] = {
+ 25,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 436,
+ 27, 0, 437,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1137[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1221[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1138[] = {
+static int parser_action_row1222[] = {
1,
- -1, 1, 540
+ -1, 1, 581
};
-static int parser_action_row1139[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1223[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1140[] = {
- 20,
- -1, 1, 427,
- 12, 0, 1000,
- 31, 0, 1002,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1224[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 31, 0, 1078,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1141[] = {
+static int parser_action_row1225[] = {
3,
- -1, 3, 1140,
- 47, 0, 1272,
- 81, 0, 1273
+ -1, 3, 1224,
+ 47, 0, 1362,
+ 95, 0, 1363
};
-static int parser_action_row1142[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1226[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1143[] = {
+static int parser_action_row1227[] = {
1,
- -1, 1, 555
+ -1, 1, 596
};
-static int parser_action_row1144[] = {
+static int parser_action_row1228[] = {
1,
- -1, 1, 556
+ -1, 1, 597
};
-static int parser_action_row1145[] = {
+static int parser_action_row1229[] = {
1,
- -1, 1, 557
+ -1, 1, 598
};
-static int parser_action_row1146[] = {
+static int parser_action_row1230[] = {
1,
- -1, 1, 558
+ -1, 1, 599
};
-static int parser_action_row1147[] = {
+static int parser_action_row1231[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1148[] = {
+static int parser_action_row1232[] = {
3,
- -1, 3, 1147,
- 41, 0, 1156,
- 83, 0, 1277
+ -1, 3, 1231,
+ 41, 0, 1242,
+ 97, 0, 1367
};
-static int parser_action_row1149[] = {
+static int parser_action_row1233[] = {
3,
- -1, 3, 1148,
- 61, 0, 1179,
- 63, 0, 1278
+ -1, 3, 1232,
+ 71, 0, 1268,
+ 73, 0, 1368
};
-static int parser_action_row1150[] = {
+static int parser_action_row1234[] = {
1,
- -1, 1, 511
+ -1, 1, 551
};
-static int parser_action_row1151[] = {
+static int parser_action_row1235[] = {
1,
- -1, 1, 522
+ -1, 1, 550
};
-static int parser_action_row1152[] = {
+static int parser_action_row1236[] = {
1,
- -1, 1, 559
+ -1, 1, 552
};
-static int parser_action_row1153[] = {
+static int parser_action_row1237[] = {
1,
- -1, 1, 560
+ -1, 1, 563
};
-static int parser_action_row1154[] = {
+static int parser_action_row1238[] = {
1,
- -1, 1, 561
+ -1, 1, 600
};
-static int parser_action_row1155[] = {
+static int parser_action_row1239[] = {
1,
- -1, 1, 563
+ -1, 1, 601
};
-static int parser_action_row1156[] = {
+static int parser_action_row1240[] = {
1,
- -1, 1, 562
+ -1, 1, 602
};
-static int parser_action_row1157[] = {
+static int parser_action_row1241[] = {
+ 1,
+ -1, 1, 604
+};
+static int parser_action_row1242[] = {
+ 1,
+ -1, 1, 603
+};
+static int parser_action_row1243[] = {
2,
- -1, 1, 538,
- 51, 0, 242
+ -1, 1, 579,
+ 52, 0, 266
};
-static int parser_action_row1158[] = {
+static int parser_action_row1244[] = {
1,
- -1, 1, 520
+ -1, 1, 561
};
-static int parser_action_row1159[] = {
+static int parser_action_row1245[] = {
2,
- -1, 1, 528,
- 51, 0, 242
+ -1, 1, 569,
+ 52, 0, 266
};
-static int parser_action_row1160[] = {
+static int parser_action_row1246[] = {
3,
- -1, 3, 1159,
- 53, 0, 1281,
- 54, 0, 1282
+ -1, 3, 1245,
+ 54, 0, 1371,
+ 55, 0, 1372
};
-static int parser_action_row1161[] = {
+static int parser_action_row1247[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1162[] = {
+static int parser_action_row1248[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 24, 0, 1284
+ 24, 0, 1374
};
-static int parser_action_row1163[] = {
+static int parser_action_row1249[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1164[] = {
+static int parser_action_row1250[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1165[] = {
+static int parser_action_row1251[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1166[] = {
+static int parser_action_row1252[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1167[] = {
+static int parser_action_row1253[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1168[] = {
+static int parser_action_row1254[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1169[] = {
+static int parser_action_row1255[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1170[] = {
+static int parser_action_row1256[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1171[] = {
+static int parser_action_row1257[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1172[] = {
+static int parser_action_row1258[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1173[] = {
+static int parser_action_row1259[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1174[] = {
+static int parser_action_row1260[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1175[] = {
+static int parser_action_row1261[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1176[] = {
+static int parser_action_row1262[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1177[] = {
+static int parser_action_row1263[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1178[] = {
+static int parser_action_row1264[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1179[] = {
+static int parser_action_row1265[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1180[] = {
+static int parser_action_row1266[] = {
+ 3,
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1267[] = {
+ 3,
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1268[] = {
+ 3,
+ -1, 1, 473,
+ 0, 0, 1,
+ 1, 0, 2
+};
+static int parser_action_row1269[] = {
1,
- -1, 1, 554
+ -1, 1, 595
};
-static int parser_action_row1181[] = {
+static int parser_action_row1270[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1182[] = {
+static int parser_action_row1271[] = {
3,
- -1, 1, 536,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 577,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row1183[] = {
+static int parser_action_row1272[] = {
2,
- -1, 1, 425,
- 82, 0, 1305
+ -1, 1, 453,
+ 96, 0, 1398
};
-static int parser_action_row1184[] = {
+static int parser_action_row1273[] = {
2,
- -1, 1, 423,
- 57, 0, 191
+ -1, 1, 451,
+ 58, 0, 206
};
-static int parser_action_row1185[] = {
+static int parser_action_row1274[] = {
2,
- -1, 3, 1184,
- 9, 0, 1306
+ -1, 3, 1273,
+ 9, 0, 1399
};
-static int parser_action_row1186[] = {
+static int parser_action_row1275[] = {
1,
- -1, 1, 990
+ -1, 1, 1058
};
-static int parser_action_row1187[] = {
+static int parser_action_row1276[] = {
2,
-1, 1, 28,
13, 0, 26
};
-static int parser_action_row1188[] = {
+static int parser_action_row1277[] = {
8,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 4, 1, 382,
- 9, 1, 382,
- 15, 1, 382,
- 28, 1, 382,
- 94, 1, 382
+ 4, 1, 410,
+ 9, 1, 410,
+ 15, 1, 410,
+ 28, 1, 410,
+ 108, 1, 410
};
-static int parser_action_row1189[] = {
+static int parser_action_row1278[] = {
2,
- -1, 1, 112,
- 61, 0, 1309
+ -1, 1, 116,
+ 71, 0, 1402
};
-static int parser_action_row1190[] = {
+static int parser_action_row1279[] = {
2,
- -1, 1, 370,
- 56, 0, 747
+ -1, 1, 398,
+ 57, 0, 813
};
-static int parser_action_row1191[] = {
+static int parser_action_row1280[] = {
1,
- -1, 1, 111
+ -1, 1, 115
};
-static int parser_action_row1192[] = {
+static int parser_action_row1281[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 56, 0, 747
+ 57, 0, 813
};
-static int parser_action_row1193[] = {
+static int parser_action_row1282[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1194[] = {
+static int parser_action_row1283[] = {
1,
- -1, 1, 974
+ -1, 1, 1042
};
-static int parser_action_row1195[] = {
+static int parser_action_row1284[] = {
1,
- -1, 1, 107
+ -1, 1, 111
};
-static int parser_action_row1196[] = {
+static int parser_action_row1285[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 55, 0, 1192
+ 56, 0, 1281
};
-static int parser_action_row1197[] = {
+static int parser_action_row1286[] = {
1,
- -1, 1, 122
+ -1, 1, 126
};
-static int parser_action_row1198[] = {
+static int parser_action_row1287[] = {
2,
- -1, 1, 116,
- 55, 0, 1316
+ -1, 1, 120,
+ 56, 0, 1409
};
-static int parser_action_row1199[] = {
+static int parser_action_row1288[] = {
1,
- -1, 1, 120
+ -1, 1, 124
};
-static int parser_action_row1200[] = {
+static int parser_action_row1289[] = {
1,
- -1, 1, 121
+ -1, 1, 125
};
-static int parser_action_row1201[] = {
+static int parser_action_row1290[] = {
2,
- -1, 1, 125,
- 63, 0, 1319
+ -1, 1, 129,
+ 73, 0, 1412
};
-static int parser_action_row1202[] = {
+static int parser_action_row1291[] = {
1,
- -1, 1, 123
+ -1, 1, 127
};
-static int parser_action_row1203[] = {
+static int parser_action_row1292[] = {
2,
-1, 1, 78,
- 9, 0, 1320
+ 9, 0, 1413
};
-static int parser_action_row1204[] = {
+static int parser_action_row1293[] = {
1,
- -1, 1, 439
+ -1, 1, 467
};
-static int parser_action_row1205[] = {
+static int parser_action_row1294[] = {
1,
- -1, 1, 450
+ -1, 1, 478
};
-static int parser_action_row1206[] = {
+static int parser_action_row1295[] = {
2,
- -1, 1, 438,
- 9, 0, 1203
+ -1, 1, 466,
+ 9, 0, 1292
};
-static int parser_action_row1207[] = {
+static int parser_action_row1296[] = {
1,
- -1, 1, 454
+ -1, 1, 482
};
-static int parser_action_row1208[] = {
+static int parser_action_row1297[] = {
3,
- -1, 1, 149,
- 56, 0, 294,
- 80, 0, 181
+ -1, 1, 153,
+ 57, 0, 323,
+ 94, 0, 195
};
-static int parser_action_row1209[] = {
+static int parser_action_row1298[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 55, 0, 1324
+ 56, 0, 1417
};
-static int parser_action_row1210[] = {
+static int parser_action_row1299[] = {
1,
-1, 1, 26
};
-static int parser_action_row1211[] = {
+static int parser_action_row1300[] = {
1,
-1, 1, 45
};
-static int parser_action_row1212[] = {
+static int parser_action_row1301[] = {
2,
- -1, 3, 1211,
- 9, 0, 1328
+ -1, 3, 1300,
+ 9, 0, 1421
};
-static int parser_action_row1213[] = {
+static int parser_action_row1302[] = {
1,
- -1, 1, 963
+ -1, 1, 1031
};
-static int parser_action_row1214[] = {
+static int parser_action_row1303[] = {
1,
- -1, 1, 962
+ -1, 1, 1030
};
-static int parser_action_row1215[] = {
+static int parser_action_row1304[] = {
5,
-1, 1, 79,
- 18, 0, 203,
- 19, 0, 204,
- 20, 0, 205,
- 21, 0, 206
+ 18, 0, 227,
+ 19, 0, 228,
+ 20, 0, 229,
+ 21, 0, 230
};
-static int parser_action_row1216[] = {
- 51,
- -1, 1, 388,
- 12, 0, 105,
+static int parser_action_row1305[] = {
+ 56,
+ -1, 1, 416,
+ 12, 0, 107,
15, 0, 27,
16, 0, 28,
- 22, 0, 106,
+ 22, 0, 108,
25, 0, 30,
26, 0, 31,
27, 0, 32,
- 31, 0, 107,
- 33, 0, 1330,
- 34, 0, 1331,
- 35, 0, 1332,
- 36, 0, 1333,
+ 31, 0, 109,
+ 33, 0, 1423,
+ 34, 0, 1424,
+ 35, 0, 1425,
+ 36, 0, 1426,
37, 0, 38,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 47, 0, 349,
- 48, 0, 114,
- 50, 0, 1334,
- 51, 0, 1335,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 1336,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 80, 0, 181,
- 81, 0, 373,
- 82, 0, 1337,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 47, 0, 386,
+ 48, 0, 116,
+ 50, 0, 44,
+ 51, 0, 1427,
+ 52, 0, 1428,
+ 54, 0, 606,
+ 74, 0, 1429,
+ 75, 0, 1430,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 1431,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 94, 0, 195,
+ 95, 0, 414,
+ 96, 0, 1432,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row1217[] = {
+static int parser_action_row1306[] = {
1,
-1, 1, 73
};
-static int parser_action_row1218[] = {
+static int parser_action_row1307[] = {
1,
- -1, 1, 973
+ -1, 1, 1041
};
-static int parser_action_row1219[] = {
+static int parser_action_row1308[] = {
5,
-1, 1, 28,
- 6, 0, 1212,
+ 6, 0, 1301,
9, 1, 42,
13, 0, 26,
- 82, 0, 1213
+ 96, 0, 1302
};
-static int parser_action_row1220[] = {
+static int parser_action_row1309[] = {
1,
- -1, 1, 333
+ -1, 1, 361
};
-static int parser_action_row1221[] = {
+static int parser_action_row1310[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1222[] = {
+static int parser_action_row1311[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1223[] = {
+static int parser_action_row1312[] = {
1,
- -1, 1, 204
+ -1, 1, 209
};
-static int parser_action_row1224[] = {
+static int parser_action_row1313[] = {
1,
- -1, 1, 223
+ -1, 1, 228
};
-static int parser_action_row1225[] = {
+static int parser_action_row1314[] = {
1,
- -1, 1, 208
+ -1, 1, 213
};
-static int parser_action_row1226[] = {
+static int parser_action_row1315[] = {
1,
- -1, 1, 227
+ -1, 1, 232
};
-static int parser_action_row1227[] = {
+static int parser_action_row1316[] = {
1,
- -1, 1, 207
+ -1, 1, 212
};
-static int parser_action_row1228[] = {
+static int parser_action_row1317[] = {
1,
- -1, 1, 226
+ -1, 1, 231
};
-static int parser_action_row1229[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1318[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1230[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1319[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1231[] = {
+static int parser_action_row1320[] = {
2,
- -1, 3, 1230,
- 24, 0, 1360
+ -1, 3, 1319,
+ 24, 0, 1456
};
-static int parser_action_row1232[] = {
+static int parser_action_row1321[] = {
1,
- -1, 1, 706
+ -1, 1, 757
};
-static int parser_action_row1233[] = {
+static int parser_action_row1322[] = {
1,
- -1, 1, 710
+ -1, 1, 761
};
-static int parser_action_row1234[] = {
+static int parser_action_row1323[] = {
2,
- -1, 1, 709,
- 51, 0, 242
+ -1, 1, 760,
+ 52, 0, 266
};
-static int parser_action_row1235[] = {
+static int parser_action_row1324[] = {
1,
- -1, 1, 415
+ -1, 1, 443
};
-static int parser_action_row1236[] = {
+static int parser_action_row1325[] = {
1,
- -1, 1, 714
+ -1, 1, 765
};
-static int parser_action_row1237[] = {
+static int parser_action_row1326[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1238[] = {
+static int parser_action_row1327[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1239[] = {
+static int parser_action_row1328[] = {
2,
- -1, 3, 1238,
- 23, 0, 1364
+ -1, 3, 1327,
+ 23, 0, 1460
};
-static int parser_action_row1240[] = {
+static int parser_action_row1329[] = {
2,
- -1, 3, 1239,
- 15, 0, 1365
+ -1, 3, 1328,
+ 15, 0, 1461
};
-static int parser_action_row1241[] = {
+static int parser_action_row1330[] = {
2,
- -1, 3, 1240,
- 28, 0, 1366
+ -1, 3, 1329,
+ 28, 0, 1462
};
-static int parser_action_row1242[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1331[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 1242,
- 12, 0, 804,
- 15, 0, 805,
+ 9, 0, 1331,
+ 12, 0, 870,
+ 15, 0, 871,
16, 0, 28,
- 22, 0, 806,
- 25, 0, 808,
- 26, 0, 809,
- 27, 0, 810,
- 33, 0, 811,
- 34, 0, 812,
- 35, 0, 813,
- 36, 0, 814,
- 37, 0, 815,
+ 22, 0, 872,
+ 25, 0, 874,
+ 26, 0, 875,
+ 27, 0, 876,
+ 33, 0, 877,
+ 34, 0, 878,
+ 35, 0, 879,
+ 36, 0, 880,
+ 37, 0, 881,
38, 0, 39,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 50, 0, 816,
- 51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 817,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 50, 0, 882,
+ 51, 0, 883,
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 884,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1243[] = {
+static int parser_action_row1332[] = {
2,
- -1, 1, 152,
- 24, 1, 817
+ -1, 1, 156,
+ 24, 1, 877
};
-static int parser_action_row1244[] = {
- 30,
- -1, 1, 427,
- 9, 0, 1368,
+static int parser_action_row1333[] = {
+ 31,
+ -1, 1, 455,
+ 9, 0, 1464,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1245[] = {
+static int parser_action_row1334[] = {
1,
- -1, 1, 861
+ -1, 1, 924
};
-static int parser_action_row1246[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1335[] = {
+ 2,
+ -1, 3, 1334,
+ 15, 0, 1466
+};
+static int parser_action_row1336[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1247[] = {
- 26,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 319,
- 61, 1, 319,
- 63, 1, 319,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1337[] = {
+ 28,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 347,
+ 71, 1, 347,
+ 73, 1, 347,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row1248[] = {
- 30,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 301,
- 57, 0, 191,
- 58, 0, 764,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 301,
- 63, 1, 301,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1338[] = {
+ 41,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 329,
+ 58, 0, 206,
+ 59, 0, 830,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 329,
+ 73, 1, 329,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row1249[] = {
+static int parser_action_row1339[] = {
3,
- -1, 1, 424,
- 12, 0, 1373,
- 82, 0, 1374
+ -1, 1, 452,
+ 12, 0, 1470,
+ 96, 0, 1471
};
-static int parser_action_row1250[] = {
+static int parser_action_row1340[] = {
4,
- -1, 1, 426,
- 12, 0, 1375,
- 81, 0, 47,
- 82, 0, 1376
+ -1, 1, 454,
+ 12, 0, 1472,
+ 95, 0, 48,
+ 96, 0, 1473
};
-static int parser_action_row1251[] = {
+static int parser_action_row1341[] = {
2,
- -1, 1, 191,
- 24, 1, 849
+ -1, 1, 196,
+ 24, 1, 910
};
-static int parser_action_row1252[] = {
+static int parser_action_row1342[] = {
2,
- -1, 1, 182,
- 24, 1, 840
+ -1, 1, 187,
+ 24, 1, 901
};
-static int parser_action_row1253[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1343[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 140,
+ 9, 0, 148,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1254[] = {
+static int parser_action_row1344[] = {
2,
- -1, 3, 1253,
- 24, 0, 1380
+ -1, 3, 1343,
+ 24, 0, 1477
};
-static int parser_action_row1255[] = {
+static int parser_action_row1345[] = {
2,
- -1, 1, 729,
- 80, 0, 533
+ -1, 1, 780,
+ 94, 0, 581
};
-static int parser_action_row1256[] = {
+static int parser_action_row1346[] = {
1,
- -1, 1, 146
+ -1, 1, 150
};
-static int parser_action_row1257[] = {
+static int parser_action_row1347[] = {
1,
- -1, 1, 568
+ -1, 1, 609
};
-static int parser_action_row1258[] = {
+static int parser_action_row1348[] = {
1,
- -1, 1, 727
+ -1, 1, 778
};
-static int parser_action_row1259[] = {
+static int parser_action_row1349[] = {
1,
- -1, 1, 327
+ -1, 1, 355
};
-static int parser_action_row1260[] = {
- 49,
- -1, 1, 427,
- 12, 0, 153,
+static int parser_action_row1350[] = {
+ 54,
+ -1, 1, 455,
+ 12, 0, 161,
15, 0, 27,
16, 0, 28,
- 22, 0, 154,
+ 22, 0, 162,
25, 0, 30,
26, 0, 31,
27, 0, 32,
- 31, 0, 155,
- 33, 0, 352,
- 34, 0, 353,
- 35, 0, 354,
- 36, 0, 355,
+ 31, 0, 163,
+ 33, 0, 389,
+ 34, 0, 390,
+ 35, 0, 391,
+ 36, 0, 392,
37, 0, 38,
- 38, 0, 156,
- 40, 0, 157,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 47, 0, 349,
- 48, 0, 158,
- 50, 0, 356,
- 51, 0, 45,
- 53, 0, 357,
- 64, 0, 358,
- 65, 0, 359,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 80, 0, 181,
- 81, 0, 373,
- 82, 0, 374,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 47, 0, 386,
+ 48, 0, 166,
+ 50, 0, 44,
+ 51, 0, 393,
+ 52, 0, 46,
+ 54, 0, 394,
+ 74, 0, 395,
+ 75, 0, 396,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 404,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 94, 0, 195,
+ 95, 0, 414,
+ 96, 0, 415,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1261[] = {
+static int parser_action_row1351[] = {
2,
- -1, 3, 1260,
- 52, 0, 1383
+ -1, 3, 1350,
+ 53, 0, 1480
};
-static int parser_action_row1262[] = {
+static int parser_action_row1352[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1263[] = {
+static int parser_action_row1353[] = {
1,
- -1, 1, 992
+ -1, 1, 1060
};
-static int parser_action_row1264[] = {
+static int parser_action_row1354[] = {
2,
- -1, 1, 394,
- 55, 0, 1261
+ -1, 1, 422,
+ 56, 0, 1351
};
-static int parser_action_row1265[] = {
+static int parser_action_row1355[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1266[] = {
+static int parser_action_row1356[] = {
1,
- -1, 1, 142
+ -1, 1, 146
};
-static int parser_action_row1267[] = {
- 24,
- -1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row1357[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1268[] = {
+static int parser_action_row1358[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1269[] = {
+static int parser_action_row1359[] = {
1,
- -1, 1, 358
+ -1, 1, 386
};
-static int parser_action_row1270[] = {
+static int parser_action_row1360[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1271[] = {
+static int parser_action_row1361[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1272[] = {
+static int parser_action_row1362[] = {
1,
- -1, 1, 489
+ -1, 1, 521
};
-static int parser_action_row1273[] = {
+static int parser_action_row1363[] = {
2,
- -1, 3, 1272,
- 81, 0, 1390
+ -1, 3, 1362,
+ 95, 0, 1487
};
-static int parser_action_row1274[] = {
+static int parser_action_row1364[] = {
2,
- -1, 1, 729,
- 80, 0, 533
+ -1, 1, 780,
+ 94, 0, 581
};
-static int parser_action_row1275[] = {
+static int parser_action_row1365[] = {
3,
- -1, 1, 515,
- 51, 0, 242,
- 63, 0, 1392
+ -1, 1, 556,
+ 52, 0, 266,
+ 73, 0, 1489
};
-static int parser_action_row1276[] = {
+static int parser_action_row1366[] = {
1,
- -1, 1, 512
+ -1, 1, 553
};
-static int parser_action_row1277[] = {
+static int parser_action_row1367[] = {
3,
- -1, 3, 1276,
- 47, 0, 1272,
- 81, 0, 1273
+ -1, 3, 1366,
+ 47, 0, 1362,
+ 95, 0, 1363
};
-static int parser_action_row1278[] = {
+static int parser_action_row1368[] = {
3,
- -1, 1, 517,
- 61, 1, 520,
- 63, 1, 520
+ -1, 1, 558,
+ 71, 1, 561,
+ 73, 1, 561
};
-static int parser_action_row1279[] = {
+static int parser_action_row1369[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1280[] = {
+static int parser_action_row1370[] = {
1,
- -1, 1, 537
+ -1, 1, 578
};
-static int parser_action_row1281[] = {
+static int parser_action_row1371[] = {
1,
- -1, 1, 526
+ -1, 1, 567
};
-static int parser_action_row1282[] = {
+static int parser_action_row1372[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1283[] = {
+static int parser_action_row1373[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1284[] = {
- 20,
- -1, 1, 427,
- 12, 0, 1000,
- 31, 0, 1002,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1374[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 31, 0, 1078,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1285[] = {
+static int parser_action_row1375[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1286[] = {
- 20,
- -1, 1, 427,
- 12, 0, 1000,
- 31, 0, 1002,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1376[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 31, 0, 1078,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1287[] = {
- 20,
- -1, 1, 427,
- 12, 0, 1000,
- 31, 0, 1002,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1377[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 31, 0, 1078,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1288[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1378[] = {
+ 3,
+ -1, 3, 1377,
+ 47, 0, 1499,
+ 95, 0, 1500
};
-static int parser_action_row1289[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1379[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1290[] = {
- 3,
- -1, 3, 1289,
- 47, 0, 1404,
- 81, 0, 1405
+static int parser_action_row1380[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1291[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1381[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1292[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1382[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1293[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1383[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1294[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1384[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1295[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1385[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1296[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1386[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1297[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1387[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1298[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1388[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1299[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1389[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1300[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1390[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1301[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1391[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1302[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1392[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1303[] = {
- 19,
- -1, 1, 427,
- 12, 0, 1000,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1393[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
};
-static int parser_action_row1304[] = {
+static int parser_action_row1394[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
+};
+static int parser_action_row1395[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
+};
+static int parser_action_row1396[] = {
+ 21,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
+};
+static int parser_action_row1397[] = {
5,
- -1, 1, 427,
- 12, 0, 1420,
- 46, 0, 1421,
- 81, 0, 47,
- 82, 0, 1422
+ -1, 1, 455,
+ 12, 0, 1520,
+ 46, 0, 1521,
+ 95, 0, 48,
+ 96, 0, 1522
};
-static int parser_action_row1305[] = {
+static int parser_action_row1398[] = {
1,
- -1, 1, 534
+ -1, 1, 575
};
-static int parser_action_row1306[] = {
+static int parser_action_row1399[] = {
2,
- -1, 1, 532,
- 51, 0, 242
+ -1, 1, 573,
+ 52, 0, 266
};
-static int parser_action_row1307[] = {
+static int parser_action_row1400[] = {
1,
-1, 1, 75
};
-static int parser_action_row1308[] = {
+static int parser_action_row1401[] = {
5,
-1, 1, 79,
- 18, 0, 203,
- 19, 0, 204,
- 20, 0, 205,
- 21, 0, 206
+ 18, 0, 227,
+ 19, 0, 228,
+ 20, 0, 229,
+ 21, 0, 230
};
-static int parser_action_row1309[] = {
+static int parser_action_row1402[] = {
1,
- -1, 1, 991
+ -1, 1, 1059
};
-static int parser_action_row1310[] = {
+static int parser_action_row1403[] = {
1,
- -1, 1, 114
+ -1, 1, 118
};
-static int parser_action_row1311[] = {
+static int parser_action_row1404[] = {
2,
- -1, 1, 113,
- 61, 0, 1428
+ -1, 1, 117,
+ 71, 0, 1528
};
-static int parser_action_row1312[] = {
+static int parser_action_row1405[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1313[] = {
+static int parser_action_row1406[] = {
1,
- -1, 1, 104
+ -1, 1, 108
};
-static int parser_action_row1314[] = {
+static int parser_action_row1407[] = {
2,
- -1, 3, 1313,
- 82, 0, 1041
+ -1, 3, 1406,
+ 96, 0, 1123
};
-static int parser_action_row1315[] = {
+static int parser_action_row1408[] = {
1,
- -1, 1, 975
+ -1, 1, 1043
};
-static int parser_action_row1316[] = {
+static int parser_action_row1409[] = {
1,
- -1, 1, 108
+ -1, 1, 112
};
-static int parser_action_row1317[] = {
+static int parser_action_row1410[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1318[] = {
+static int parser_action_row1411[] = {
1,
- -1, 1, 976
+ -1, 1, 1044
};
-static int parser_action_row1319[] = {
+static int parser_action_row1412[] = {
2,
- -1, 1, 117,
- 55, 0, 1316
+ -1, 1, 121,
+ 56, 0, 1409
};
-static int parser_action_row1320[] = {
- 20,
- -1, 3, 1319,
- 46, 0, 1433,
- 53, 0, 574,
- 64, 0, 575,
- 65, 0, 576,
- 66, 0, 577,
- 67, 0, 578,
- 68, 0, 579,
- 69, 0, 580,
- 70, 0, 581,
- 71, 0, 582,
- 72, 0, 583,
- 73, 0, 584,
- 74, 0, 585,
- 75, 0, 586,
- 76, 0, 587,
- 77, 0, 588,
- 78, 0, 589,
- 81, 0, 47,
- 82, 0, 590
+static int parser_action_row1413[] = {
+ 24,
+ -1, 3, 1412,
+ 46, 0, 1533,
+ 54, 0, 627,
+ 74, 0, 628,
+ 75, 0, 629,
+ 76, 0, 630,
+ 77, 0, 631,
+ 78, 0, 632,
+ 79, 0, 633,
+ 80, 0, 634,
+ 81, 0, 635,
+ 82, 0, 636,
+ 83, 0, 637,
+ 84, 0, 638,
+ 85, 0, 639,
+ 86, 0, 640,
+ 87, 0, 641,
+ 88, 0, 642,
+ 89, 0, 643,
+ 90, 0, 644,
+ 91, 0, 645,
+ 92, 0, 646,
+ 95, 0, 48,
+ 96, 0, 647
};
-static int parser_action_row1321[] = {
+static int parser_action_row1414[] = {
1,
- -1, 1, 456
+ -1, 1, 484
};
-static int parser_action_row1322[] = {
+static int parser_action_row1415[] = {
1,
- -1, 1, 451
+ -1, 1, 479
};
-static int parser_action_row1323[] = {
+static int parser_action_row1416[] = {
1,
-1, 1, 39
};
-static int parser_action_row1324[] = {
+static int parser_action_row1417[] = {
2,
- -1, 1, 149,
- 56, 0, 294
+ -1, 1, 153,
+ 57, 0, 323
};
-static int parser_action_row1325[] = {
+static int parser_action_row1418[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1326[] = {
+static int parser_action_row1419[] = {
1,
- -1, 1, 970
+ -1, 1, 1038
};
-static int parser_action_row1327[] = {
+static int parser_action_row1420[] = {
2,
- -1, 3, 1326,
- 54, 0, 1437
+ -1, 3, 1419,
+ 55, 0, 1537
};
-static int parser_action_row1328[] = {
+static int parser_action_row1421[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 55, 0, 1324
+ 56, 0, 1417
};
-static int parser_action_row1329[] = {
+static int parser_action_row1422[] = {
1,
-1, 1, 27
};
-static int parser_action_row1330[] = {
+static int parser_action_row1423[] = {
7,
- -1, 3, 1329,
- 10, 0, 1440,
- 11, 0, 1441,
- 12, 0, 1442,
- 16, 0, 1443,
- 38, 0, 1444,
- 41, 0, 1445
+ -1, 3, 1422,
+ 10, 0, 1540,
+ 11, 0, 1541,
+ 12, 0, 1542,
+ 16, 0, 1543,
+ 38, 0, 1544,
+ 41, 0, 1545
};
-static int parser_action_row1331[] = {
- 24,
- -1, 1, 919,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row1424[] = {
+ 26,
+ -1, 1, 984,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1332[] = {
+static int parser_action_row1425[] = {
2,
- -1, 1, 924,
- 49, 0, 174
+ -1, 1, 989,
+ 49, 0, 188
};
-static int parser_action_row1333[] = {
+static int parser_action_row1426[] = {
2,
- -1, 1, 921,
- 49, 0, 174
+ -1, 1, 986,
+ 49, 0, 188
};
-static int parser_action_row1334[] = {
+static int parser_action_row1427[] = {
1,
- -1, 1, 923
+ -1, 1, 988
};
-static int parser_action_row1335[] = {
+static int parser_action_row1428[] = {
2,
- -1, 3, 1334,
- 11, 0, 1449
+ -1, 3, 1427,
+ 11, 0, 1549
};
-static int parser_action_row1336[] = {
+static int parser_action_row1429[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1337[] = {
- 22,
- -1, 1, 458,
- 12, 0, 153,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row1430[] = {
+ 24,
+ -1, 1, 485,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1338[] = {
- 6,
- -1, 1, 690,
- 51, 0, 242,
- 57, 0, 191,
- 58, 0, 1451,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1431[] = {
+ 24,
+ -1, 1, 486,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1339[] = {
+static int parser_action_row1432[] = {
+ 24,
+ -1, 1, 494,
+ 12, 0, 161,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1433[] = {
+ 15,
+ -1, 1, 741,
+ 52, 0, 266,
+ 58, 0, 206,
+ 59, 0, 1551,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
+};
+static int parser_action_row1434[] = {
1,
- -1, 1, 734
+ -1, 1, 785
};
-static int parser_action_row1340[] = {
+static int parser_action_row1435[] = {
1,
- -1, 1, 917
+ -1, 1, 982
};
-static int parser_action_row1341[] = {
+static int parser_action_row1436[] = {
1,
- -1, 1, 926
+ -1, 1, 991
};
-static int parser_action_row1342[] = {
+static int parser_action_row1437[] = {
1,
- -1, 1, 928
+ -1, 1, 993
};
-static int parser_action_row1343[] = {
+static int parser_action_row1438[] = {
1,
- -1, 1, 927
+ -1, 1, 992
};
-static int parser_action_row1344[] = {
+static int parser_action_row1439[] = {
1,
- -1, 1, 929
+ -1, 1, 994
};
-static int parser_action_row1345[] = {
+static int parser_action_row1440[] = {
1,
- -1, 1, 930
+ -1, 1, 995
};
-static int parser_action_row1346[] = {
+static int parser_action_row1441[] = {
1,
- -1, 1, 389
+ -1, 1, 996
};
-static int parser_action_row1347[] = {
+static int parser_action_row1442[] = {
+ 1,
+ -1, 1, 417
+};
+static int parser_action_row1443[] = {
3,
- -1, 3, 1346,
- 41, 0, 263,
- 83, 0, 1454
+ -1, 3, 1442,
+ 41, 0, 289,
+ 97, 0, 1554
};
-static int parser_action_row1348[] = {
- 18,
- -1, 1, 424,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 556,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 82, 0, 1455
+static int parser_action_row1444[] = {
+ 22,
+ -1, 1, 452,
+ 54, 0, 606,
+ 74, 0, 607,
+ 75, 0, 608,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 609,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 96, 0, 1555
};
-static int parser_action_row1349[] = {
+static int parser_action_row1445[] = {
1,
- -1, 1, 738
+ -1, 1, 789
};
-static int parser_action_row1350[] = {
+static int parser_action_row1446[] = {
1,
- -1, 1, 918
+ -1, 1, 983
};
-static int parser_action_row1351[] = {
+static int parser_action_row1447[] = {
1,
- -1, 1, 735
+ -1, 1, 786
};
-static int parser_action_row1352[] = {
+static int parser_action_row1448[] = {
4,
- -1, 1, 673,
- 53, 0, 212,
- 61, 0, 285,
- 63, 0, 1456
+ -1, 1, 724,
+ 54, 0, 236,
+ 71, 0, 314,
+ 73, 0, 1556
};
-static int parser_action_row1353[] = {
+static int parser_action_row1449[] = {
1,
- -1, 1, 392
+ -1, 1, 420
};
-static int parser_action_row1354[] = {
+static int parser_action_row1450[] = {
2,
- -1, 1, 732,
- 55, 0, 1261
+ -1, 1, 783,
+ 56, 0, 1351
};
-static int parser_action_row1355[] = {
+static int parser_action_row1451[] = {
1,
- -1, 1, 736
+ -1, 1, 787
};
-static int parser_action_row1356[] = {
- 19,
- -1, 1, 426,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 556,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 81, 0, 47,
- 82, 0, 1459
+static int parser_action_row1452[] = {
+ 23,
+ -1, 1, 454,
+ 54, 0, 606,
+ 74, 0, 607,
+ 75, 0, 608,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 609,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 95, 0, 48,
+ 96, 0, 1559
};
-static int parser_action_row1357[] = {
+static int parser_action_row1453[] = {
2,
- -1, 3, 1356,
- 45, 0, 1461
+ -1, 3, 1452,
+ 45, 0, 1561
};
-static int parser_action_row1358[] = {
+static int parser_action_row1454[] = {
2,
- -1, 3, 1357,
- 52, 0, 1462
+ -1, 3, 1453,
+ 53, 0, 1562
};
-static int parser_action_row1359[] = {
+static int parser_action_row1455[] = {
1,
- -1, 1, 206
+ -1, 1, 211
};
-static int parser_action_row1360[] = {
+static int parser_action_row1456[] = {
1,
- -1, 1, 225
+ -1, 1, 230
};
-static int parser_action_row1361[] = {
+static int parser_action_row1457[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1362[] = {
+static int parser_action_row1458[] = {
1,
- -1, 1, 708
+ -1, 1, 759
};
-static int parser_action_row1363[] = {
+static int parser_action_row1459[] = {
2,
- -1, 3, 1362,
- 45, 0, 1464
+ -1, 3, 1458,
+ 45, 0, 1564
};
-static int parser_action_row1364[] = {
+static int parser_action_row1460[] = {
2,
- -1, 3, 1363,
- 52, 0, 1465
+ -1, 3, 1459,
+ 53, 0, 1565
};
-static int parser_action_row1365[] = {
- 33,
- -1, 1, 427,
+static int parser_action_row1461[] = {
+ 34,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 803,
- 12, 0, 804,
- 15, 0, 805,
+ 9, 0, 869,
+ 12, 0, 870,
+ 15, 0, 871,
16, 0, 28,
- 22, 0, 806,
- 24, 0, 807,
- 25, 0, 808,
- 26, 0, 809,
- 27, 0, 810,
- 33, 0, 811,
- 34, 0, 812,
- 35, 0, 813,
- 36, 0, 814,
- 37, 0, 815,
+ 22, 0, 872,
+ 24, 0, 873,
+ 25, 0, 874,
+ 26, 0, 875,
+ 27, 0, 876,
+ 33, 0, 877,
+ 34, 0, 878,
+ 35, 0, 879,
+ 36, 0, 880,
+ 37, 0, 881,
38, 0, 39,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 50, 0, 816,
- 51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 817,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 50, 0, 882,
+ 51, 0, 883,
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 884,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1366[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1462[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 938,
- 12, 0, 804,
- 15, 0, 805,
+ 9, 0, 1010,
+ 12, 0, 870,
+ 15, 0, 871,
16, 0, 28,
- 22, 0, 806,
- 25, 0, 808,
- 26, 0, 809,
- 27, 0, 810,
- 33, 0, 811,
- 34, 0, 812,
- 35, 0, 813,
- 36, 0, 814,
- 37, 0, 815,
+ 22, 0, 872,
+ 25, 0, 874,
+ 26, 0, 875,
+ 27, 0, 876,
+ 33, 0, 877,
+ 34, 0, 878,
+ 35, 0, 879,
+ 36, 0, 880,
+ 37, 0, 881,
38, 0, 39,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 50, 0, 816,
- 51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 817,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 50, 0, 882,
+ 51, 0, 883,
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 884,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1367[] = {
+static int parser_action_row1463[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1368[] = {
+static int parser_action_row1464[] = {
1,
- -1, 1, 862
+ -1, 1, 925
};
-static int parser_action_row1369[] = {
+static int parser_action_row1465[] = {
2,
- -1, 1, 151,
- 24, 1, 816
+ -1, 1, 155,
+ 24, 1, 876
};
-static int parser_action_row1370[] = {
+static int parser_action_row1466[] = {
2,
- -1, 1, 150,
- 24, 1, 815
+ -1, 1, 154,
+ 24, 1, 875
};
-static int parser_action_row1371[] = {
+static int parser_action_row1467[] = {
+ 33,
+ -1, 1, 455,
+ 0, 0, 1,
+ 1, 0, 2,
+ 9, 0, 1010,
+ 12, 0, 870,
+ 15, 0, 871,
+ 16, 0, 28,
+ 22, 0, 872,
+ 25, 0, 874,
+ 26, 0, 875,
+ 27, 0, 876,
+ 33, 0, 877,
+ 34, 0, 878,
+ 35, 0, 879,
+ 36, 0, 880,
+ 37, 0, 881,
+ 38, 0, 39,
+ 42, 0, 40,
+ 43, 0, 41,
+ 44, 0, 42,
+ 45, 0, 43,
+ 50, 0, 882,
+ 51, 0, 883,
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 884,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1468[] = {
2,
- -1, 1, 193,
- 24, 1, 851
+ -1, 1, 198,
+ 24, 1, 912
};
-static int parser_action_row1372[] = {
+static int parser_action_row1469[] = {
2,
- -1, 1, 185,
- 24, 1, 843
+ -1, 1, 190,
+ 24, 1, 904
};
-static int parser_action_row1373[] = {
+static int parser_action_row1470[] = {
2,
- -1, 1, 176,
- 24, 1, 834
+ -1, 1, 181,
+ 24, 1, 895
};
-static int parser_action_row1374[] = {
- 23,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 434,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1471[] = {
+ 25,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 476,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row1375[] = {
- 29,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 303,
- 58, 0, 910,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 303,
- 63, 1, 303,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1472[] = {
+ 40,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 331,
+ 59, 0, 982,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 331,
+ 73, 1, 331,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row1376[] = {
- 23,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 434,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1473[] = {
+ 25,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 476,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row1377[] = {
- 30,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 307,
- 57, 0, 191,
- 58, 0, 915,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 307,
- 63, 1, 307,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1474[] = {
+ 41,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 335,
+ 58, 0, 206,
+ 59, 0, 987,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 335,
+ 73, 1, 335,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row1378[] = {
+static int parser_action_row1475[] = {
3,
- -1, 1, 425,
- 12, 0, 1474,
- 82, 0, 1475
+ -1, 1, 453,
+ 12, 0, 1576,
+ 96, 0, 1577
};
-static int parser_action_row1379[] = {
+static int parser_action_row1476[] = {
1,
- -1, 1, 254
+ -1, 1, 268
};
-static int parser_action_row1380[] = {
+static int parser_action_row1477[] = {
2,
- -1, 3, 1379,
- 49, 0, 174
+ -1, 3, 1476,
+ 49, 0, 188
};
-static int parser_action_row1381[] = {
+static int parser_action_row1478[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1382[] = {
+static int parser_action_row1479[] = {
1,
- -1, 1, 569
+ -1, 1, 610
};
-static int parser_action_row1383[] = {
+static int parser_action_row1480[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1384[] = {
+static int parser_action_row1481[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1385[] = {
- 49,
- -1, 1, 427,
- 12, 0, 153,
+static int parser_action_row1482[] = {
+ 54,
+ -1, 1, 455,
+ 12, 0, 161,
15, 0, 27,
16, 0, 28,
- 22, 0, 154,
+ 22, 0, 162,
25, 0, 30,
26, 0, 31,
27, 0, 32,
- 31, 0, 155,
- 33, 0, 352,
- 34, 0, 353,
- 35, 0, 354,
- 36, 0, 355,
+ 31, 0, 163,
+ 33, 0, 389,
+ 34, 0, 390,
+ 35, 0, 391,
+ 36, 0, 392,
37, 0, 38,
- 38, 0, 156,
- 40, 0, 157,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 47, 0, 349,
- 48, 0, 158,
- 50, 0, 356,
- 51, 0, 45,
- 53, 0, 357,
- 64, 0, 358,
- 65, 0, 359,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 80, 0, 181,
- 81, 0, 373,
- 82, 0, 374,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 47, 0, 386,
+ 48, 0, 166,
+ 50, 0, 44,
+ 51, 0, 393,
+ 52, 0, 46,
+ 54, 0, 394,
+ 74, 0, 395,
+ 75, 0, 396,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 404,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 94, 0, 195,
+ 95, 0, 414,
+ 96, 0, 415,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1386[] = {
+static int parser_action_row1483[] = {
1,
- -1, 1, 993
+ -1, 1, 1061
};
-static int parser_action_row1387[] = {
+static int parser_action_row1484[] = {
1,
- -1, 1, 143
+ -1, 1, 147
};
-static int parser_action_row1388[] = {
+static int parser_action_row1485[] = {
2,
- -1, 1, 356,
- 24, 0, 1380
+ -1, 1, 384,
+ 24, 0, 1477
};
-static int parser_action_row1389[] = {
+static int parser_action_row1486[] = {
2,
- -1, 3, 1388,
- 15, 0, 1481
+ -1, 3, 1485,
+ 15, 0, 1583
};
-static int parser_action_row1390[] = {
+static int parser_action_row1487[] = {
2,
- -1, 3, 1389,
- 23, 0, 1482
+ -1, 3, 1486,
+ 23, 0, 1584
};
-static int parser_action_row1391[] = {
+static int parser_action_row1488[] = {
2,
- -1, 1, 729,
- 80, 0, 533
+ -1, 1, 780,
+ 94, 0, 581
};
-static int parser_action_row1392[] = {
+static int parser_action_row1489[] = {
1,
- -1, 1, 739
+ -1, 1, 790
};
-static int parser_action_row1393[] = {
+static int parser_action_row1490[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1394[] = {
+static int parser_action_row1491[] = {
1,
- -1, 1, 514
+ -1, 1, 555
};
-static int parser_action_row1395[] = {
+static int parser_action_row1492[] = {
2,
- -1, 3, 1394,
- 63, 0, 1392
+ -1, 3, 1491,
+ 73, 0, 1489
};
-static int parser_action_row1396[] = {
+static int parser_action_row1493[] = {
5,
- -1, 1, 427,
- 12, 0, 1420,
- 46, 0, 1421,
- 81, 0, 47,
- 82, 0, 1422
+ -1, 1, 455,
+ 12, 0, 1520,
+ 46, 0, 1521,
+ 95, 0, 48,
+ 96, 0, 1522
};
-static int parser_action_row1397[] = {
+static int parser_action_row1494[] = {
1,
- -1, 1, 347
+ -1, 1, 375
};
-static int parser_action_row1398[] = {
+static int parser_action_row1495[] = {
1,
- -1, 1, 346
+ -1, 1, 374
+};
+static int parser_action_row1496[] = {
+ 1,
+ -1, 1, 517
+};
+static int parser_action_row1497[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 31, 0, 1078,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
+};
+static int parser_action_row1498[] = {
+ 1,
+ -1, 1, 516
};
-static int parser_action_row1399[] = {
+static int parser_action_row1499[] = {
1,
- -1, 1, 485
+ -1, 1, 519
};
-static int parser_action_row1400[] = {
- 20,
- -1, 1, 427,
- 12, 0, 1000,
- 31, 0, 1002,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+static int parser_action_row1500[] = {
+ 2,
+ -1, 3, 1499,
+ 95, 0, 1589
};
-static int parser_action_row1401[] = {
- 1,
- -1, 1, 484
+static int parser_action_row1501[] = {
+ 2,
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1402[] = {
+static int parser_action_row1502[] = {
1,
- -1, 1, 487
+ -1, 1, 530
};
-static int parser_action_row1403[] = {
- 3,
- -1, 1, 495,
- 64, 0, 1166,
- 65, 0, 1167
+static int parser_action_row1503[] = {
+ 2,
+ -1, 1, 532,
+ 81, 0, 1258
};
-static int parser_action_row1404[] = {
- 3,
- -1, 1, 498,
- 64, 0, 1166,
- 65, 0, 1167
+static int parser_action_row1504[] = {
+ 2,
+ -1, 1, 523,
+ 80, 0, 1250
};
-static int parser_action_row1405[] = {
+static int parser_action_row1505[] = {
2,
- -1, 3, 1404,
- 81, 0, 1487
+ -1, 1, 524,
+ 80, 0, 1250
};
-static int parser_action_row1406[] = {
+static int parser_action_row1506[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 525,
+ 80, 0, 1250
};
-static int parser_action_row1407[] = {
- 1,
- -1, 1, 500
+static int parser_action_row1507[] = {
+ 2,
+ -1, 1, 526,
+ 80, 0, 1250
};
-static int parser_action_row1408[] = {
- 4,
- -1, 1, 502,
- 66, 0, 1175,
- 68, 0, 1176,
- 69, 0, 1177
+static int parser_action_row1508[] = {
+ 2,
+ -1, 1, 527,
+ 80, 0, 1250
};
-static int parser_action_row1409[] = {
- 4,
- -1, 1, 503,
- 66, 0, 1175,
- 68, 0, 1176,
- 69, 0, 1177
+static int parser_action_row1509[] = {
+ 2,
+ -1, 1, 528,
+ 80, 0, 1250
};
-static int parser_action_row1410[] = {
- 3,
- -1, 1, 491,
- 64, 0, 1166,
- 65, 0, 1167
+static int parser_action_row1510[] = {
+ 2,
+ -1, 1, 529,
+ 80, 0, 1250
};
-static int parser_action_row1411[] = {
- 3,
- -1, 1, 492,
- 64, 0, 1166,
- 65, 0, 1167
+static int parser_action_row1511[] = {
+ 2,
+ -1, 1, 534,
+ 82, 0, 1259
};
-static int parser_action_row1412[] = {
+static int parser_action_row1512[] = {
3,
- -1, 1, 493,
- 64, 0, 1166,
- 65, 0, 1167
+ -1, 1, 536,
+ 88, 0, 1260,
+ 91, 0, 1261
};
-static int parser_action_row1413[] = {
+static int parser_action_row1513[] = {
3,
- -1, 1, 494,
- 64, 0, 1166,
- 65, 0, 1167
+ -1, 1, 538,
+ 74, 0, 1262,
+ 75, 0, 1263
};
-static int parser_action_row1414[] = {
+static int parser_action_row1514[] = {
3,
- -1, 1, 496,
- 64, 0, 1166,
- 65, 0, 1167
+ -1, 1, 539,
+ 74, 0, 1262,
+ 75, 0, 1263
};
-static int parser_action_row1415[] = {
- 3,
- -1, 1, 497,
- 64, 0, 1166,
- 65, 0, 1167
+static int parser_action_row1515[] = {
+ 4,
+ -1, 1, 541,
+ 76, 0, 1264,
+ 78, 0, 1265,
+ 79, 0, 1266
};
-static int parser_action_row1416[] = {
- 3,
- -1, 1, 499,
- 64, 0, 1166,
- 65, 0, 1167
+static int parser_action_row1516[] = {
+ 4,
+ -1, 1, 542,
+ 76, 0, 1264,
+ 78, 0, 1265,
+ 79, 0, 1266
};
-static int parser_action_row1417[] = {
+static int parser_action_row1517[] = {
1,
- -1, 1, 505
+ -1, 1, 544
};
-static int parser_action_row1418[] = {
+static int parser_action_row1518[] = {
1,
- -1, 1, 506
+ -1, 1, 545
};
-static int parser_action_row1419[] = {
+static int parser_action_row1519[] = {
1,
- -1, 1, 507
+ -1, 1, 546
};
-static int parser_action_row1420[] = {
+static int parser_action_row1520[] = {
1,
- -1, 1, 509
+ -1, 1, 548
};
-static int parser_action_row1421[] = {
+static int parser_action_row1521[] = {
2,
- -1, 1, 541,
- 51, 0, 242
+ -1, 1, 582,
+ 52, 0, 266
};
-static int parser_action_row1422[] = {
+static int parser_action_row1522[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1423[] = {
+static int parser_action_row1523[] = {
3,
- -1, 1, 523,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 564,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row1424[] = {
+static int parser_action_row1524[] = {
2,
- -1, 3, 1423,
- 83, 0, 1492
+ -1, 3, 1523,
+ 97, 0, 1594
};
-static int parser_action_row1425[] = {
+static int parser_action_row1525[] = {
2,
- -1, 1, 424,
- 82, 0, 1493
+ -1, 1, 452,
+ 96, 0, 1595
};
-static int parser_action_row1426[] = {
+static int parser_action_row1526[] = {
3,
- -1, 1, 426,
- 81, 0, 47,
- 82, 0, 1494
+ -1, 1, 454,
+ 95, 0, 48,
+ 96, 0, 1596
};
-static int parser_action_row1427[] = {
+static int parser_action_row1527[] = {
1,
- -1, 1, 530
+ -1, 1, 571
};
-static int parser_action_row1428[] = {
+static int parser_action_row1528[] = {
4,
- -1, 3, 1427,
- 6, 0, 713,
- 17, 0, 714,
- 82, 0, 715
+ -1, 3, 1527,
+ 6, 0, 776,
+ 17, 0, 777,
+ 96, 0, 778
};
-static int parser_action_row1429[] = {
+static int parser_action_row1529[] = {
1,
- -1, 1, 115
+ -1, 1, 119
};
-static int parser_action_row1430[] = {
+static int parser_action_row1530[] = {
1,
- -1, 1, 103
+ -1, 1, 107
};
-static int parser_action_row1431[] = {
+static int parser_action_row1531[] = {
1,
- -1, 1, 110
+ -1, 1, 114
};
-static int parser_action_row1432[] = {
- 21,
- -1, 3, 1431,
- 41, 0, 1196,
- 47, 0, 349,
- 53, 0, 574,
- 64, 0, 575,
- 65, 0, 576,
- 66, 0, 577,
- 67, 0, 578,
- 68, 0, 579,
- 69, 0, 580,
- 70, 0, 581,
- 71, 0, 582,
- 72, 0, 583,
- 73, 0, 584,
- 74, 0, 585,
- 75, 0, 586,
- 76, 0, 587,
- 77, 0, 588,
- 78, 0, 589,
- 81, 0, 373,
- 82, 0, 590
+static int parser_action_row1532[] = {
+ 25,
+ -1, 3, 1531,
+ 41, 0, 1285,
+ 47, 0, 386,
+ 54, 0, 627,
+ 74, 0, 628,
+ 75, 0, 629,
+ 76, 0, 630,
+ 77, 0, 631,
+ 78, 0, 632,
+ 79, 0, 633,
+ 80, 0, 634,
+ 81, 0, 635,
+ 82, 0, 636,
+ 83, 0, 637,
+ 84, 0, 638,
+ 85, 0, 639,
+ 86, 0, 640,
+ 87, 0, 641,
+ 88, 0, 642,
+ 89, 0, 643,
+ 90, 0, 644,
+ 91, 0, 645,
+ 92, 0, 646,
+ 95, 0, 414,
+ 96, 0, 647
};
-static int parser_action_row1433[] = {
+static int parser_action_row1533[] = {
1,
- -1, 1, 977
+ -1, 1, 1045
};
-static int parser_action_row1434[] = {
+static int parser_action_row1534[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1435[] = {
+static int parser_action_row1535[] = {
1,
- -1, 1, 124
+ -1, 1, 128
};
-static int parser_action_row1436[] = {
+static int parser_action_row1536[] = {
1,
-1, 1, 40
};
-static int parser_action_row1437[] = {
+static int parser_action_row1537[] = {
2,
- -1, 3, 1436,
- 81, 0, 1207
+ -1, 3, 1536,
+ 95, 0, 1296
};
-static int parser_action_row1438[] = {
+static int parser_action_row1538[] = {
1,
-1, 1, 35
};
-static int parser_action_row1439[] = {
+static int parser_action_row1539[] = {
1,
- -1, 1, 971
+ -1, 1, 1039
};
-static int parser_action_row1440[] = {
+static int parser_action_row1540[] = {
2,
- -1, 3, 1439,
- 54, 0, 1500
+ -1, 3, 1539,
+ 55, 0, 1602
};
-static int parser_action_row1441[] = {
- 19,
- -1, 3, 1440,
- 53, 0, 574,
- 64, 0, 575,
- 65, 0, 576,
- 66, 0, 577,
- 67, 0, 578,
- 68, 0, 579,
- 69, 0, 580,
- 70, 0, 581,
- 71, 0, 582,
- 72, 0, 583,
- 73, 0, 584,
- 74, 0, 585,
- 75, 0, 586,
- 76, 0, 587,
- 77, 0, 588,
- 78, 0, 589,
- 81, 0, 47,
- 82, 0, 590
+static int parser_action_row1541[] = {
+ 23,
+ -1, 3, 1540,
+ 54, 0, 627,
+ 74, 0, 628,
+ 75, 0, 629,
+ 76, 0, 630,
+ 77, 0, 631,
+ 78, 0, 632,
+ 79, 0, 633,
+ 80, 0, 634,
+ 81, 0, 635,
+ 82, 0, 636,
+ 83, 0, 637,
+ 84, 0, 638,
+ 85, 0, 639,
+ 86, 0, 640,
+ 87, 0, 641,
+ 88, 0, 642,
+ 89, 0, 643,
+ 90, 0, 644,
+ 91, 0, 645,
+ 92, 0, 646,
+ 95, 0, 48,
+ 96, 0, 647
};
-static int parser_action_row1442[] = {
+static int parser_action_row1542[] = {
2,
- -1, 3, 1441,
- 81, 0, 1502
+ -1, 3, 1541,
+ 95, 0, 1604
};
-static int parser_action_row1443[] = {
- 23,
- -1, 1, 445,
+static int parser_action_row1543[] = {
+ 27,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 51, 0, 746,
- 53, 0, 574,
- 56, 0, 747,
- 64, 0, 575,
- 65, 0, 576,
- 66, 0, 577,
- 67, 0, 578,
- 68, 0, 579,
- 69, 0, 580,
- 70, 0, 581,
- 71, 0, 582,
- 72, 0, 583,
- 73, 0, 584,
- 74, 0, 585,
- 75, 0, 586,
- 76, 0, 587,
- 77, 0, 588,
- 78, 0, 589,
- 81, 0, 47,
- 82, 0, 590
+ 52, 0, 812,
+ 54, 0, 627,
+ 57, 0, 813,
+ 74, 0, 628,
+ 75, 0, 629,
+ 76, 0, 630,
+ 77, 0, 631,
+ 78, 0, 632,
+ 79, 0, 633,
+ 80, 0, 634,
+ 81, 0, 635,
+ 82, 0, 636,
+ 83, 0, 637,
+ 84, 0, 638,
+ 85, 0, 639,
+ 86, 0, 640,
+ 87, 0, 641,
+ 88, 0, 642,
+ 89, 0, 643,
+ 90, 0, 644,
+ 91, 0, 645,
+ 92, 0, 646,
+ 95, 0, 48,
+ 96, 0, 647
};
-static int parser_action_row1444[] = {
+static int parser_action_row1544[] = {
2,
- -1, 3, 1443,
- 82, 0, 1505
+ -1, 3, 1543,
+ 96, 0, 1607
};
-static int parser_action_row1445[] = {
- 23,
- -1, 1, 445,
+static int parser_action_row1545[] = {
+ 27,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 51, 0, 746,
- 53, 0, 574,
- 56, 0, 747,
- 64, 0, 575,
- 65, 0, 576,
- 66, 0, 577,
- 67, 0, 578,
- 68, 0, 579,
- 69, 0, 580,
- 70, 0, 581,
- 71, 0, 582,
- 72, 0, 583,
- 73, 0, 584,
- 74, 0, 585,
- 75, 0, 586,
- 76, 0, 587,
- 77, 0, 588,
- 78, 0, 589,
- 81, 0, 47,
- 82, 0, 590
+ 52, 0, 812,
+ 54, 0, 627,
+ 57, 0, 813,
+ 74, 0, 628,
+ 75, 0, 629,
+ 76, 0, 630,
+ 77, 0, 631,
+ 78, 0, 632,
+ 79, 0, 633,
+ 80, 0, 634,
+ 81, 0, 635,
+ 82, 0, 636,
+ 83, 0, 637,
+ 84, 0, 638,
+ 85, 0, 639,
+ 86, 0, 640,
+ 87, 0, 641,
+ 88, 0, 642,
+ 89, 0, 643,
+ 90, 0, 644,
+ 91, 0, 645,
+ 92, 0, 646,
+ 95, 0, 48,
+ 96, 0, 647
};
-static int parser_action_row1446[] = {
+static int parser_action_row1546[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1447[] = {
+static int parser_action_row1547[] = {
1,
- -1, 1, 920
+ -1, 1, 985
};
-static int parser_action_row1448[] = {
+static int parser_action_row1548[] = {
1,
- -1, 1, 925
+ -1, 1, 990
};
-static int parser_action_row1449[] = {
+static int parser_action_row1549[] = {
1,
- -1, 1, 922
+ -1, 1, 987
};
-static int parser_action_row1450[] = {
+static int parser_action_row1550[] = {
3,
- -1, 3, 1449,
- 47, 0, 349,
- 81, 0, 350
+ -1, 3, 1549,
+ 47, 0, 386,
+ 95, 0, 387
};
-static int parser_action_row1451[] = {
- 49,
- -1, 1, 427,
- 12, 0, 153,
+static int parser_action_row1551[] = {
+ 54,
+ -1, 1, 455,
+ 12, 0, 161,
15, 0, 27,
16, 0, 28,
- 22, 0, 154,
+ 22, 0, 162,
25, 0, 30,
26, 0, 31,
27, 0, 32,
- 31, 0, 155,
- 33, 0, 352,
- 34, 0, 353,
- 35, 0, 354,
- 36, 0, 355,
+ 31, 0, 163,
+ 33, 0, 389,
+ 34, 0, 390,
+ 35, 0, 391,
+ 36, 0, 392,
37, 0, 38,
- 38, 0, 156,
- 40, 0, 157,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 47, 0, 349,
- 48, 0, 158,
- 50, 0, 356,
- 51, 0, 45,
- 53, 0, 357,
- 64, 0, 358,
- 65, 0, 359,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 80, 0, 181,
- 81, 0, 373,
- 82, 0, 374,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 47, 0, 386,
+ 48, 0, 166,
+ 50, 0, 44,
+ 51, 0, 393,
+ 52, 0, 46,
+ 54, 0, 394,
+ 74, 0, 395,
+ 75, 0, 396,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 404,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 94, 0, 195,
+ 95, 0, 414,
+ 96, 0, 415,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1452[] = {
- 24,
- -1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row1552[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1453[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1553[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1454[] = {
- 4,
- -1, 1, 689,
- 58, 0, 1513,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1554[] = {
+ 13,
+ -1, 1, 740,
+ 59, 0, 1615,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1455[] = {
- 4,
- -1, 1, 680,
- 58, 0, 1515,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1555[] = {
+ 13,
+ -1, 1, 731,
+ 59, 0, 1617,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1456[] = {
- 5,
- -1, 1, 692,
- 51, 0, 242,
- 58, 0, 1517,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1556[] = {
+ 14,
+ -1, 1, 743,
+ 52, 0, 266,
+ 59, 0, 1619,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1457[] = {
+static int parser_action_row1557[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1458[] = {
- 4,
- -1, 1, 703,
- 58, 0, 1521,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1558[] = {
+ 13,
+ -1, 1, 754,
+ 59, 0, 1623,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1459[] = {
+static int parser_action_row1559[] = {
2,
- -1, 1, 733,
- 55, 0, 1261
+ -1, 1, 784,
+ 56, 0, 1351
};
-static int parser_action_row1460[] = {
- 6,
- -1, 1, 696,
- 51, 0, 242,
- 57, 0, 191,
- 58, 0, 1523,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1560[] = {
+ 15,
+ -1, 1, 747,
+ 52, 0, 266,
+ 58, 0, 206,
+ 59, 0, 1625,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1461[] = {
- 18,
- -1, 1, 425,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 556,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 82, 0, 1526
+static int parser_action_row1561[] = {
+ 22,
+ -1, 1, 453,
+ 54, 0, 606,
+ 74, 0, 607,
+ 75, 0, 608,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 609,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 96, 0, 1628
};
-static int parser_action_row1462[] = {
+static int parser_action_row1562[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1463[] = {
+static int parser_action_row1563[] = {
1,
- -1, 1, 331
+ -1, 1, 359
};
-static int parser_action_row1464[] = {
- 20,
- -1, 1, 427,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1564[] = {
+ 22,
+ -1, 1, 455,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row1465[] = {
+static int parser_action_row1565[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1466[] = {
+static int parser_action_row1566[] = {
1,
- -1, 1, 712
+ -1, 1, 763
};
-static int parser_action_row1467[] = {
+static int parser_action_row1567[] = {
2,
- -1, 3, 1466,
- 24, 0, 1530
+ -1, 3, 1566,
+ 24, 0, 1632
};
-static int parser_action_row1468[] = {
+static int parser_action_row1568[] = {
1,
- -1, 1, 858
+ -1, 1, 919
};
-static int parser_action_row1469[] = {
+static int parser_action_row1569[] = {
2,
- -1, 3, 1468,
- 49, 0, 174
+ -1, 3, 1568,
+ 49, 0, 188
};
-static int parser_action_row1470[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1570[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1471[] = {
+static int parser_action_row1571[] = {
+ 1,
+ -1, 1, 923
+};
+static int parser_action_row1572[] = {
2,
- -1, 1, 187,
- 24, 1, 845
+ -1, 3, 1571,
+ 49, 0, 188
};
-static int parser_action_row1472[] = {
+static int parser_action_row1573[] = {
2,
- -1, 1, 177,
- 24, 1, 835
+ -1, 1, 192,
+ 24, 1, 906
};
-static int parser_action_row1473[] = {
+static int parser_action_row1574[] = {
2,
- -1, 1, 189,
- 24, 1, 847
+ -1, 1, 182,
+ 24, 1, 896
};
-static int parser_action_row1474[] = {
+static int parser_action_row1575[] = {
2,
- -1, 1, 179,
- 24, 1, 837
+ -1, 1, 194,
+ 24, 1, 908
};
-static int parser_action_row1475[] = {
- 23,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 434,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1576[] = {
+ 2,
+ -1, 1, 184,
+ 24, 1, 898
};
-static int parser_action_row1476[] = {
- 29,
- -1, 1, 410,
- 12, 0, 105,
- 22, 0, 106,
- 31, 0, 107,
- 38, 0, 108,
- 40, 0, 109,
- 41, 1, 427,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 48, 0, 114,
- 51, 0, 115,
- 53, 1, 305,
- 58, 0, 1077,
- 59, 0, 193,
- 60, 0, 194,
- 61, 1, 305,
- 63, 1, 305,
- 65, 0, 116,
- 81, 0, 47,
- 82, 0, 117,
- 83, 1, 427,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+static int parser_action_row1577[] = {
+ 25,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 476,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row1477[] = {
+static int parser_action_row1578[] = {
+ 40,
+ -1, 1, 438,
+ 12, 0, 107,
+ 22, 0, 108,
+ 31, 0, 109,
+ 38, 0, 110,
+ 40, 0, 111,
+ 41, 1, 455,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 48, 0, 116,
+ 52, 0, 117,
+ 54, 1, 333,
+ 59, 0, 1159,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218,
+ 71, 1, 333,
+ 73, 1, 333,
+ 74, 0, 118,
+ 75, 0, 119,
+ 83, 0, 120,
+ 95, 0, 48,
+ 96, 0, 121,
+ 97, 1, 455,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
+};
+static int parser_action_row1579[] = {
1,
- -1, 1, 253
+ -1, 1, 267
};
-static int parser_action_row1478[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1580[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1479[] = {
+static int parser_action_row1581[] = {
2,
- -1, 3, 1478,
- 52, 0, 1536
+ -1, 3, 1580,
+ 53, 0, 1639
};
-static int parser_action_row1480[] = {
+static int parser_action_row1582[] = {
1,
- -1, 1, 373
+ -1, 1, 401
};
-static int parser_action_row1481[] = {
+static int parser_action_row1583[] = {
1,
- -1, 1, 395
+ -1, 1, 423
};
-static int parser_action_row1482[] = {
- 23,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 394,
- 27, 0, 395,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1584[] = {
+ 25,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 436,
+ 27, 0, 437,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1483[] = {
+static int parser_action_row1585[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1484[] = {
+static int parser_action_row1586[] = {
1,
- -1, 1, 740
+ -1, 1, 791
};
-static int parser_action_row1485[] = {
+static int parser_action_row1587[] = {
3,
- -1, 3, 1484,
- 81, 0, 47,
- 82, 0, 1539
+ -1, 3, 1586,
+ 95, 0, 48,
+ 96, 0, 1642
};
-static int parser_action_row1486[] = {
+static int parser_action_row1588[] = {
2,
- -1, 3, 1485,
- 83, 0, 1542
+ -1, 3, 1587,
+ 97, 0, 1645
};
-static int parser_action_row1487[] = {
+static int parser_action_row1589[] = {
1,
- -1, 1, 486
+ -1, 1, 518
};
-static int parser_action_row1488[] = {
+static int parser_action_row1590[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1489[] = {
+static int parser_action_row1591[] = {
1,
- -1, 1, 479
+ -1, 1, 511
};
-static int parser_action_row1490[] = {
+static int parser_action_row1592[] = {
1,
- -1, 1, 539
+ -1, 1, 580
};
-static int parser_action_row1491[] = {
+static int parser_action_row1593[] = {
3,
- -1, 3, 1490,
- 31, 0, 1544,
- 51, 0, 1545
+ -1, 3, 1592,
+ 31, 0, 1647,
+ 52, 0, 1648
};
-static int parser_action_row1492[] = {
+static int parser_action_row1594[] = {
1,
- -1, 1, 521
+ -1, 1, 562
};
-static int parser_action_row1493[] = {
+static int parser_action_row1595[] = {
1,
- -1, 1, 519
+ -1, 1, 560
};
-static int parser_action_row1494[] = {
+static int parser_action_row1596[] = {
2,
- -1, 1, 527,
- 51, 0, 242
+ -1, 1, 568,
+ 52, 0, 266
};
-static int parser_action_row1495[] = {
+static int parser_action_row1597[] = {
3,
- -1, 1, 535,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 576,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row1496[] = {
+static int parser_action_row1598[] = {
2,
- -1, 1, 425,
- 82, 0, 1548
+ -1, 1, 453,
+ 96, 0, 1651
};
-static int parser_action_row1497[] = {
- 51,
- -1, 1, 427,
- 0, 0, 81,
- 1, 0, 82,
- 12, 0, 105,
+static int parser_action_row1599[] = {
+ 56,
+ -1, 1, 455,
+ 0, 0, 83,
+ 1, 0, 84,
+ 12, 0, 107,
15, 0, 27,
16, 0, 28,
- 22, 0, 106,
+ 22, 0, 108,
25, 0, 30,
26, 0, 31,
27, 0, 32,
- 31, 0, 107,
- 33, 0, 1330,
- 34, 0, 1331,
- 35, 0, 1332,
- 36, 0, 1333,
+ 31, 0, 109,
+ 33, 0, 1423,
+ 34, 0, 1424,
+ 35, 0, 1425,
+ 36, 0, 1426,
37, 0, 38,
- 38, 0, 108,
- 40, 0, 109,
- 42, 0, 110,
- 43, 0, 111,
- 44, 0, 112,
- 45, 0, 113,
- 47, 0, 349,
- 48, 0, 114,
- 50, 0, 1334,
- 51, 0, 1549,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 1336,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 80, 0, 181,
- 81, 0, 373,
- 82, 0, 1337,
- 84, 0, 118,
- 85, 0, 119,
- 86, 0, 120,
- 87, 0, 121,
- 88, 0, 53,
- 91, 0, 122
+ 38, 0, 110,
+ 40, 0, 111,
+ 42, 0, 112,
+ 43, 0, 113,
+ 44, 0, 114,
+ 45, 0, 115,
+ 47, 0, 386,
+ 48, 0, 116,
+ 50, 0, 44,
+ 51, 0, 1427,
+ 52, 0, 1652,
+ 54, 0, 606,
+ 74, 0, 1429,
+ 75, 0, 1430,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 1431,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 94, 0, 195,
+ 95, 0, 414,
+ 96, 0, 1432,
+ 98, 0, 122,
+ 99, 0, 123,
+ 100, 0, 124,
+ 101, 0, 125,
+ 102, 0, 54,
+ 105, 0, 126
};
-static int parser_action_row1498[] = {
+static int parser_action_row1600[] = {
1,
- -1, 1, 119
+ -1, 1, 123
};
-static int parser_action_row1499[] = {
+static int parser_action_row1601[] = {
5,
- -1, 3, 1498,
- 31, 0, 1553,
- 47, 0, 1554,
- 51, 0, 1555,
- 81, 0, 350
+ -1, 3, 1600,
+ 31, 0, 1656,
+ 47, 0, 1657,
+ 52, 0, 1658,
+ 95, 0, 387
};
-static int parser_action_row1500[] = {
+static int parser_action_row1602[] = {
1,
-1, 1, 38
};
-static int parser_action_row1501[] = {
+static int parser_action_row1603[] = {
1,
-1, 1, 36
};
-static int parser_action_row1502[] = {
+static int parser_action_row1604[] = {
5,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 51, 0, 746,
- 56, 0, 747
+ 52, 0, 812,
+ 57, 0, 813
};
-static int parser_action_row1503[] = {
+static int parser_action_row1605[] = {
2,
- -1, 3, 1502,
- 56, 0, 747
+ -1, 3, 1604,
+ 57, 0, 813
};
-static int parser_action_row1504[] = {
+static int parser_action_row1606[] = {
3,
- -1, 3, 1503,
- 14, 0, 1559,
- 15, 0, 1560
+ -1, 3, 1605,
+ 14, 0, 1662,
+ 15, 0, 1663
};
-static int parser_action_row1505[] = {
+static int parser_action_row1607[] = {
5,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 51, 0, 746,
- 56, 0, 747
+ 52, 0, 812,
+ 57, 0, 813
};
-static int parser_action_row1506[] = {
+static int parser_action_row1608[] = {
2,
- -1, 1, 149,
- 56, 0, 294
+ -1, 1, 153,
+ 57, 0, 323
};
-static int parser_action_row1507[] = {
+static int parser_action_row1609[] = {
4,
- -1, 1, 118,
- 4, 0, 888,
- 14, 0, 889,
- 15, 0, 1564
+ -1, 1, 122,
+ 4, 0, 960,
+ 14, 0, 961,
+ 15, 0, 1667
};
-static int parser_action_row1508[] = {
+static int parser_action_row1610[] = {
5,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 51, 0, 746,
- 56, 0, 747
+ 52, 0, 812,
+ 57, 0, 813
};
-static int parser_action_row1509[] = {
+static int parser_action_row1611[] = {
3,
- -1, 3, 1508,
- 47, 0, 349,
- 81, 0, 350
+ -1, 3, 1610,
+ 47, 0, 386,
+ 95, 0, 387
};
-static int parser_action_row1510[] = {
+static int parser_action_row1612[] = {
2,
- -1, 3, 1509,
- 56, 0, 1570
+ -1, 3, 1611,
+ 57, 0, 1673
};
-static int parser_action_row1511[] = {
+static int parser_action_row1613[] = {
2,
- -1, 3, 1510,
- 52, 0, 1571
+ -1, 3, 1612,
+ 53, 0, 1674
};
-static int parser_action_row1512[] = {
+static int parser_action_row1614[] = {
1,
- -1, 1, 614
+ -1, 1, 656
};
-static int parser_action_row1513[] = {
+static int parser_action_row1615[] = {
1,
- -1, 1, 633
+ -1, 1, 675
};
-static int parser_action_row1514[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1616[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1515[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1617[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1516[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1618[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1517[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1619[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1518[] = {
- 24,
- -1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row1620[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1519[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1621[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1520[] = {
- 4,
- -1, 1, 691,
- 58, 0, 1578,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1622[] = {
+ 13,
+ -1, 1, 742,
+ 59, 0, 1681,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1521[] = {
- 21,
- -1, 1, 427,
- 12, 0, 654,
- 46, 0, 655,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 556,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 81, 0, 47,
- 82, 0, 1580
+static int parser_action_row1623[] = {
+ 25,
+ -1, 1, 455,
+ 12, 0, 714,
+ 46, 0, 715,
+ 54, 0, 606,
+ 74, 0, 607,
+ 75, 0, 608,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 609,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 95, 0, 48,
+ 96, 0, 1683
};
-static int parser_action_row1522[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1624[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1523[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1625[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1524[] = {
- 24,
- -1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row1626[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1525[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1627[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1526[] = {
- 4,
- -1, 1, 695,
- 58, 0, 1589,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1628[] = {
+ 13,
+ -1, 1, 746,
+ 59, 0, 1692,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1527[] = {
- 5,
- -1, 1, 694,
- 51, 0, 242,
- 58, 0, 1591,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1629[] = {
+ 14,
+ -1, 1, 745,
+ 52, 0, 266,
+ 59, 0, 1694,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1528[] = {
+static int parser_action_row1630[] = {
2,
- -1, 3, 1527,
- 52, 0, 1594
+ -1, 3, 1629,
+ 53, 0, 1697
};
-static int parser_action_row1529[] = {
+static int parser_action_row1631[] = {
1,
- -1, 1, 642
+ -1, 1, 684
};
-static int parser_action_row1530[] = {
+static int parser_action_row1632[] = {
2,
- -1, 3, 1529,
- 52, 0, 1595
+ -1, 3, 1631,
+ 53, 0, 1698
};
-static int parser_action_row1531[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1633[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 1242,
- 12, 0, 804,
- 15, 0, 805,
+ 9, 0, 1331,
+ 12, 0, 870,
+ 15, 0, 871,
16, 0, 28,
- 22, 0, 806,
- 25, 0, 808,
- 26, 0, 809,
- 27, 0, 810,
- 33, 0, 811,
- 34, 0, 812,
- 35, 0, 813,
- 36, 0, 814,
- 37, 0, 815,
+ 22, 0, 872,
+ 25, 0, 874,
+ 26, 0, 875,
+ 27, 0, 876,
+ 33, 0, 877,
+ 34, 0, 878,
+ 35, 0, 879,
+ 36, 0, 880,
+ 37, 0, 881,
38, 0, 39,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 50, 0, 816,
- 51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 817,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 50, 0, 882,
+ 51, 0, 883,
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 884,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1532[] = {
+static int parser_action_row1634[] = {
2,
- -1, 1, 251,
- 24, 1, 857
+ -1, 1, 265,
+ 24, 1, 918
};
-static int parser_action_row1533[] = {
+static int parser_action_row1635[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1534[] = {
+static int parser_action_row1636[] = {
2,
- -1, 1, 188,
- 24, 1, 846
+ -1, 1, 269,
+ 24, 1, 922
};
-static int parser_action_row1535[] = {
+static int parser_action_row1637[] = {
2,
- -1, 1, 178,
- 24, 1, 836
+ -1, 1, 193,
+ 24, 1, 907
};
-static int parser_action_row1536[] = {
+static int parser_action_row1638[] = {
+ 2,
+ -1, 1, 183,
+ 24, 1, 897
+};
+static int parser_action_row1639[] = {
1,
- -1, 1, 261
+ -1, 1, 280
};
-static int parser_action_row1537[] = {
+static int parser_action_row1640[] = {
2,
- -1, 1, 371,
- 80, 0, 181
+ -1, 1, 399,
+ 94, 0, 195
};
-static int parser_action_row1538[] = {
+static int parser_action_row1641[] = {
1,
- -1, 1, 357
+ -1, 1, 385
};
-static int parser_action_row1539[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1642[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1540[] = {
+static int parser_action_row1643[] = {
3,
- -1, 1, 544,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 585,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row1541[] = {
+static int parser_action_row1644[] = {
2,
- -1, 3, 1540,
- 82, 0, 1601
+ -1, 3, 1643,
+ 96, 0, 1704
};
-static int parser_action_row1542[] = {
+static int parser_action_row1645[] = {
3,
- -1, 3, 1541,
- 81, 0, 47,
- 82, 0, 1602
+ -1, 3, 1644,
+ 95, 0, 48,
+ 96, 0, 1705
};
-static int parser_action_row1543[] = {
+static int parser_action_row1646[] = {
3,
- -1, 1, 516,
- 61, 1, 519,
- 63, 1, 519
+ -1, 1, 557,
+ 71, 1, 560,
+ 73, 1, 560
};
-static int parser_action_row1544[] = {
+static int parser_action_row1647[] = {
1,
- -1, 1, 480
+ -1, 1, 512
};
-static int parser_action_row1545[] = {
+static int parser_action_row1648[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1546[] = {
+static int parser_action_row1649[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1547[] = {
+static int parser_action_row1650[] = {
1,
- -1, 1, 525
+ -1, 1, 566
};
-static int parser_action_row1548[] = {
+static int parser_action_row1651[] = {
1,
- -1, 1, 533
+ -1, 1, 574
};
-static int parser_action_row1549[] = {
+static int parser_action_row1652[] = {
2,
- -1, 1, 531,
- 51, 0, 242
+ -1, 1, 572,
+ 52, 0, 266
};
-static int parser_action_row1550[] = {
+static int parser_action_row1653[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1551[] = {
+static int parser_action_row1654[] = {
3,
- -1, 3, 1550,
- 0, 0, 81,
- 1, 0, 82
+ -1, 3, 1653,
+ 0, 0, 83,
+ 1, 0, 84
};
-static int parser_action_row1552[] = {
+static int parser_action_row1655[] = {
1,
- -1, 1, 383
+ -1, 1, 411
};
-static int parser_action_row1553[] = {
+static int parser_action_row1656[] = {
3,
- -1, 3, 1552,
- 0, 0, 81,
- 1, 0, 82
+ -1, 3, 1655,
+ 0, 0, 83,
+ 1, 0, 84
};
-static int parser_action_row1554[] = {
+static int parser_action_row1657[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1555[] = {
+static int parser_action_row1658[] = {
2,
- -1, 1, 129,
- 81, 0, 539
+ -1, 1, 133,
+ 95, 0, 590
};
-static int parser_action_row1556[] = {
+static int parser_action_row1659[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1557[] = {
+static int parser_action_row1660[] = {
1,
- -1, 1, 127
+ -1, 1, 131
};
-static int parser_action_row1558[] = {
+static int parser_action_row1661[] = {
4,
- -1, 1, 118,
- 4, 0, 888,
- 14, 0, 889,
- 15, 0, 1612
+ -1, 1, 122,
+ 4, 0, 960,
+ 14, 0, 961,
+ 15, 0, 1715
};
-static int parser_action_row1559[] = {
+static int parser_action_row1662[] = {
2,
-1, 1, 76,
- 14, 0, 880
+ 14, 0, 952
};
-static int parser_action_row1560[] = {
+static int parser_action_row1663[] = {
4,
-1, 1, 28,
- 0, 0, 81,
- 1, 0, 82,
+ 0, 0, 83,
+ 1, 0, 84,
13, 0, 26
};
-static int parser_action_row1561[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1664[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1562[] = {
+static int parser_action_row1665[] = {
2,
- -1, 3, 1561,
- 15, 0, 1620
+ -1, 3, 1664,
+ 15, 0, 1723
};
-static int parser_action_row1563[] = {
+static int parser_action_row1666[] = {
3,
- -1, 3, 1562,
- 14, 0, 1559,
- 15, 0, 1621
+ -1, 3, 1665,
+ 14, 0, 1662,
+ 15, 0, 1724
};
-static int parser_action_row1564[] = {
+static int parser_action_row1667[] = {
4,
-1, 1, 76,
- 14, 0, 1623,
- 15, 0, 1624,
- 58, 0, 1625
+ 14, 0, 1726,
+ 15, 0, 1727,
+ 59, 0, 1728
};
-static int parser_action_row1565[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1668[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1566[] = {
+static int parser_action_row1669[] = {
3,
- -1, 1, 118,
- 4, 0, 888,
- 15, 0, 1629
+ -1, 1, 122,
+ 4, 0, 960,
+ 15, 0, 1732
};
-static int parser_action_row1567[] = {
+static int parser_action_row1670[] = {
3,
- -1, 3, 1566,
+ -1, 3, 1669,
28, 0, 33,
- 94, 0, 55
+ 108, 0, 56
};
-static int parser_action_row1568[] = {
+static int parser_action_row1671[] = {
1,
-1, 1, 49
};
-static int parser_action_row1569[] = {
+static int parser_action_row1672[] = {
4,
- -1, 1, 118,
- 4, 0, 888,
- 14, 0, 889,
- 15, 0, 1632
+ -1, 1, 122,
+ 4, 0, 960,
+ 14, 0, 961,
+ 15, 0, 1735
};
-static int parser_action_row1570[] = {
+static int parser_action_row1673[] = {
2,
-1, 1, 76,
- 14, 0, 880
+ 14, 0, 952
};
-static int parser_action_row1571[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1674[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1572[] = {
+static int parser_action_row1675[] = {
2,
- -1, 1, 390,
- 80, 0, 181
+ -1, 1, 418,
+ 94, 0, 195
};
-static int parser_action_row1573[] = {
+static int parser_action_row1676[] = {
1,
- -1, 1, 613
+ -1, 1, 655
};
-static int parser_action_row1574[] = {
+static int parser_action_row1677[] = {
1,
- -1, 1, 632
+ -1, 1, 674
};
-static int parser_action_row1575[] = {
+static int parser_action_row1678[] = {
1,
- -1, 1, 604
+ -1, 1, 646
};
-static int parser_action_row1576[] = {
+static int parser_action_row1679[] = {
1,
- -1, 1, 623
+ -1, 1, 665
};
-static int parser_action_row1577[] = {
+static int parser_action_row1680[] = {
1,
- -1, 1, 616
+ -1, 1, 658
};
-static int parser_action_row1578[] = {
+static int parser_action_row1681[] = {
1,
- -1, 1, 635
+ -1, 1, 677
};
-static int parser_action_row1579[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1682[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1580[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1683[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1581[] = {
- 6,
- -1, 1, 682,
- 51, 0, 242,
- 57, 0, 191,
- 58, 0, 1641,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1684[] = {
+ 15,
+ -1, 1, 733,
+ 52, 0, 266,
+ 58, 0, 206,
+ 59, 0, 1744,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1582[] = {
+static int parser_action_row1685[] = {
2,
- -1, 3, 1581,
- 83, 0, 1644
+ -1, 3, 1684,
+ 97, 0, 1747
};
-static int parser_action_row1583[] = {
- 18,
- -1, 1, 424,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 556,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 82, 0, 1645
+static int parser_action_row1686[] = {
+ 22,
+ -1, 1, 452,
+ 54, 0, 606,
+ 74, 0, 607,
+ 75, 0, 608,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 609,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 96, 0, 1748
};
-static int parser_action_row1584[] = {
+static int parser_action_row1687[] = {
1,
- -1, 1, 737
+ -1, 1, 788
};
-static int parser_action_row1585[] = {
- 19,
- -1, 1, 426,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 556,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 81, 0, 47,
- 82, 0, 1646
+static int parser_action_row1688[] = {
+ 23,
+ -1, 1, 454,
+ 54, 0, 606,
+ 74, 0, 607,
+ 75, 0, 608,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 609,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 95, 0, 48,
+ 96, 0, 1749
};
-static int parser_action_row1586[] = {
+static int parser_action_row1689[] = {
1,
- -1, 1, 621
+ -1, 1, 663
};
-static int parser_action_row1587[] = {
+static int parser_action_row1690[] = {
1,
- -1, 1, 640
+ -1, 1, 682
};
-static int parser_action_row1588[] = {
+static int parser_action_row1691[] = {
1,
- -1, 1, 620
+ -1, 1, 662
};
-static int parser_action_row1589[] = {
+static int parser_action_row1692[] = {
1,
- -1, 1, 639
+ -1, 1, 681
};
-static int parser_action_row1590[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1693[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1591[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1694[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1592[] = {
- 24,
- -1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row1695[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1593[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1696[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1594[] = {
- 4,
- -1, 1, 693,
- 58, 0, 1652,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1697[] = {
+ 13,
+ -1, 1, 744,
+ 59, 0, 1755,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1595[] = {
+static int parser_action_row1698[] = {
1,
- -1, 1, 332
+ -1, 1, 360
};
-static int parser_action_row1596[] = {
+static int parser_action_row1699[] = {
1,
- -1, 1, 713
+ -1, 1, 764
};
-static int parser_action_row1597[] = {
+static int parser_action_row1700[] = {
1,
- -1, 1, 854
+ -1, 1, 915
};
-static int parser_action_row1598[] = {
+static int parser_action_row1701[] = {
2,
- -1, 3, 1597,
- 15, 0, 1654
+ -1, 3, 1700,
+ 15, 0, 1757
};
-static int parser_action_row1599[] = {
+static int parser_action_row1702[] = {
1,
- -1, 1, 378
+ -1, 1, 406
};
-static int parser_action_row1600[] = {
+static int parser_action_row1703[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1601[] = {
+static int parser_action_row1704[] = {
1,
- -1, 1, 543
+ -1, 1, 584
};
-static int parser_action_row1602[] = {
+static int parser_action_row1705[] = {
2,
- -1, 1, 546,
- 51, 0, 242
+ -1, 1, 587,
+ 52, 0, 266
};
-static int parser_action_row1603[] = {
+static int parser_action_row1706[] = {
3,
- -1, 1, 550,
- 51, 0, 242,
- 57, 0, 191
+ -1, 1, 591,
+ 52, 0, 266,
+ 58, 0, 206
};
-static int parser_action_row1604[] = {
+static int parser_action_row1707[] = {
2,
- -1, 3, 1603,
- 82, 0, 1658
+ -1, 3, 1706,
+ 96, 0, 1761
};
-static int parser_action_row1605[] = {
+static int parser_action_row1708[] = {
2,
- -1, 3, 1604,
- 45, 0, 1659
+ -1, 3, 1707,
+ 45, 0, 1762
};
-static int parser_action_row1606[] = {
+static int parser_action_row1709[] = {
4,
- -1, 3, 1605,
- 31, 0, 1660,
- 47, 0, 349,
- 81, 0, 350
+ -1, 3, 1708,
+ 31, 0, 1763,
+ 47, 0, 386,
+ 95, 0, 387
};
-static int parser_action_row1607[] = {
+static int parser_action_row1710[] = {
1,
- -1, 1, 529
+ -1, 1, 570
};
-static int parser_action_row1608[] = {
- 49,
- -1, 1, 427,
- 12, 0, 153,
+static int parser_action_row1711[] = {
+ 54,
+ -1, 1, 455,
+ 12, 0, 161,
15, 0, 27,
16, 0, 28,
- 22, 0, 154,
+ 22, 0, 162,
25, 0, 30,
26, 0, 31,
27, 0, 32,
- 31, 0, 155,
- 33, 0, 352,
- 34, 0, 353,
- 35, 0, 354,
- 36, 0, 355,
+ 31, 0, 163,
+ 33, 0, 389,
+ 34, 0, 390,
+ 35, 0, 391,
+ 36, 0, 392,
37, 0, 38,
- 38, 0, 156,
- 40, 0, 157,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 47, 0, 349,
- 48, 0, 158,
- 50, 0, 356,
- 51, 0, 45,
- 53, 0, 357,
- 64, 0, 358,
- 65, 0, 359,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 80, 0, 181,
- 81, 0, 373,
- 82, 0, 374,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 47, 0, 386,
+ 48, 0, 166,
+ 50, 0, 44,
+ 51, 0, 393,
+ 52, 0, 46,
+ 54, 0, 394,
+ 74, 0, 395,
+ 75, 0, 396,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 404,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 94, 0, 195,
+ 95, 0, 414,
+ 96, 0, 415,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1609[] = {
+static int parser_action_row1712[] = {
1,
- -1, 1, 384
+ -1, 1, 412
};
-static int parser_action_row1610[] = {
+static int parser_action_row1713[] = {
1,
- -1, 1, 387
+ -1, 1, 415
};
-static int parser_action_row1611[] = {
+static int parser_action_row1714[] = {
2,
- -1, 3, 1610,
- 47, 0, 1663
+ -1, 3, 1713,
+ 47, 0, 1766
};
-static int parser_action_row1612[] = {
+static int parser_action_row1715[] = {
4,
- -1, 3, 1611,
- 31, 0, 1664,
- 47, 0, 1665,
- 81, 0, 350
+ -1, 3, 1714,
+ 31, 0, 1767,
+ 47, 0, 1768,
+ 95, 0, 387
};
-static int parser_action_row1613[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1716[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1614[] = {
+static int parser_action_row1717[] = {
3,
- -1, 1, 118,
- 4, 0, 888,
- 15, 0, 1668
+ -1, 1, 122,
+ 4, 0, 960,
+ 15, 0, 1771
};
-static int parser_action_row1615[] = {
+static int parser_action_row1718[] = {
3,
- -1, 3, 1614,
+ -1, 3, 1717,
28, 0, 33,
- 94, 0, 55
+ 108, 0, 56
};
-static int parser_action_row1616[] = {
+static int parser_action_row1719[] = {
1,
-1, 1, 48
};
-static int parser_action_row1617[] = {
+static int parser_action_row1720[] = {
1,
-1, 1, 67
};
-static int parser_action_row1618[] = {
+static int parser_action_row1721[] = {
1,
-1, 1, 77
};
-static int parser_action_row1619[] = {
+static int parser_action_row1722[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1620[] = {
+static int parser_action_row1723[] = {
2,
- -1, 1, 438,
- 9, 0, 1203
+ -1, 1, 466,
+ 9, 0, 1292
};
-static int parser_action_row1621[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1724[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1622[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1725[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1623[] = {
+static int parser_action_row1726[] = {
2,
- -1, 3, 1622,
- 15, 0, 1675
+ -1, 3, 1725,
+ 15, 0, 1778
};
-static int parser_action_row1624[] = {
+static int parser_action_row1727[] = {
4,
-1, 1, 28,
- 0, 0, 81,
- 1, 0, 82,
+ 0, 0, 83,
+ 1, 0, 84,
13, 0, 26
};
-static int parser_action_row1625[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1728[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1626[] = {
+static int parser_action_row1729[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1627[] = {
+static int parser_action_row1730[] = {
1,
-1, 1, 57
};
-static int parser_action_row1628[] = {
+static int parser_action_row1731[] = {
2,
- -1, 3, 1627,
- 15, 0, 1680
+ -1, 3, 1730,
+ 15, 0, 1783
};
-static int parser_action_row1629[] = {
+static int parser_action_row1732[] = {
2,
- -1, 1, 438,
- 9, 0, 1203
+ -1, 1, 466,
+ 9, 0, 1292
};
-static int parser_action_row1630[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1733[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1631[] = {
+static int parser_action_row1734[] = {
3,
- -1, 3, 1630,
+ -1, 3, 1733,
28, 0, 33,
- 94, 0, 55
+ 108, 0, 56
};
-static int parser_action_row1632[] = {
+static int parser_action_row1735[] = {
1,
-1, 1, 68
};
-static int parser_action_row1633[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1736[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1634[] = {
+static int parser_action_row1737[] = {
3,
- -1, 1, 118,
- 4, 0, 888,
- 15, 0, 1685
+ -1, 1, 122,
+ 4, 0, 960,
+ 15, 0, 1788
};
-static int parser_action_row1635[] = {
+static int parser_action_row1738[] = {
3,
- -1, 3, 1634,
+ -1, 3, 1737,
28, 0, 33,
- 94, 0, 55
+ 108, 0, 56
};
-static int parser_action_row1636[] = {
+static int parser_action_row1739[] = {
1,
-1, 1, 50
};
-static int parser_action_row1637[] = {
+static int parser_action_row1740[] = {
1,
-1, 1, 41
};
-static int parser_action_row1638[] = {
+static int parser_action_row1741[] = {
1,
- -1, 1, 931
+ -1, 1, 997
};
-static int parser_action_row1639[] = {
+static int parser_action_row1742[] = {
1,
- -1, 1, 391
+ -1, 1, 419
};
-static int parser_action_row1640[] = {
+static int parser_action_row1743[] = {
1,
- -1, 1, 615
+ -1, 1, 657
};
-static int parser_action_row1641[] = {
+static int parser_action_row1744[] = {
1,
- -1, 1, 634
+ -1, 1, 676
};
-static int parser_action_row1642[] = {
- 24,
- -1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+static int parser_action_row1745[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1643[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1746[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1644[] = {
- 4,
- -1, 1, 681,
- 58, 0, 1690,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1747[] = {
+ 13,
+ -1, 1, 732,
+ 59, 0, 1793,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1645[] = {
- 4,
- -1, 1, 679,
- 58, 0, 1692,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1748[] = {
+ 13,
+ -1, 1, 730,
+ 59, 0, 1795,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1646[] = {
- 5,
- -1, 1, 684,
- 51, 0, 242,
- 58, 0, 1694,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1749[] = {
+ 14,
+ -1, 1, 735,
+ 52, 0, 266,
+ 59, 0, 1797,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1647[] = {
- 6,
- -1, 1, 688,
- 51, 0, 242,
- 57, 0, 191,
- 58, 0, 1697,
- 59, 0, 193,
- 60, 0, 194
+static int parser_action_row1750[] = {
+ 15,
+ -1, 1, 739,
+ 52, 0, 266,
+ 58, 0, 206,
+ 59, 0, 1800,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
};
-static int parser_action_row1648[] = {
- 18,
- -1, 1, 425,
- 53, 0, 555,
- 64, 0, 358,
- 65, 0, 556,
- 66, 0, 360,
- 67, 0, 361,
- 68, 0, 362,
- 69, 0, 363,
- 70, 0, 364,
- 71, 0, 365,
- 72, 0, 366,
- 73, 0, 367,
- 74, 0, 368,
- 75, 0, 369,
- 76, 0, 370,
- 77, 0, 371,
- 78, 0, 372,
- 82, 0, 1700
+static int parser_action_row1751[] = {
+ 22,
+ -1, 1, 453,
+ 54, 0, 606,
+ 74, 0, 607,
+ 75, 0, 608,
+ 76, 0, 397,
+ 77, 0, 398,
+ 78, 0, 399,
+ 79, 0, 400,
+ 80, 0, 401,
+ 81, 0, 402,
+ 82, 0, 403,
+ 83, 0, 609,
+ 84, 0, 405,
+ 85, 0, 406,
+ 86, 0, 407,
+ 87, 0, 408,
+ 88, 0, 409,
+ 89, 0, 410,
+ 90, 0, 411,
+ 91, 0, 412,
+ 92, 0, 413,
+ 96, 0, 1803
};
-static int parser_action_row1649[] = {
+static int parser_action_row1752[] = {
1,
- -1, 1, 619
+ -1, 1, 661
};
-static int parser_action_row1650[] = {
+static int parser_action_row1753[] = {
1,
- -1, 1, 638
+ -1, 1, 680
};
-static int parser_action_row1651[] = {
+static int parser_action_row1754[] = {
1,
- -1, 1, 618
+ -1, 1, 660
};
-static int parser_action_row1652[] = {
+static int parser_action_row1755[] = {
1,
- -1, 1, 637
+ -1, 1, 679
};
-static int parser_action_row1653[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1756[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1654[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1757[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1655[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1758[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 938,
- 12, 0, 804,
- 15, 0, 805,
+ 9, 0, 1010,
+ 12, 0, 870,
+ 15, 0, 871,
16, 0, 28,
- 22, 0, 806,
- 25, 0, 808,
- 26, 0, 809,
- 27, 0, 810,
- 33, 0, 811,
- 34, 0, 812,
- 35, 0, 813,
- 36, 0, 814,
- 37, 0, 815,
+ 22, 0, 872,
+ 25, 0, 874,
+ 26, 0, 875,
+ 27, 0, 876,
+ 33, 0, 877,
+ 34, 0, 878,
+ 35, 0, 879,
+ 36, 0, 880,
+ 37, 0, 881,
38, 0, 39,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 50, 0, 816,
- 51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 817,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
+ 50, 0, 882,
+ 51, 0, 883,
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 884,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
};
-static int parser_action_row1656[] = {
+static int parser_action_row1759[] = {
2,
- -1, 3, 1655,
- 24, 0, 1705
+ -1, 3, 1758,
+ 24, 0, 1808
};
-static int parser_action_row1657[] = {
+static int parser_action_row1760[] = {
1,
- -1, 1, 545
+ -1, 1, 586
};
-static int parser_action_row1658[] = {
+static int parser_action_row1761[] = {
1,
- -1, 1, 549
+ -1, 1, 590
};
-static int parser_action_row1659[] = {
+static int parser_action_row1762[] = {
2,
- -1, 1, 548,
- 51, 0, 242
+ -1, 1, 589,
+ 52, 0, 266
};
-static int parser_action_row1660[] = {
+static int parser_action_row1763[] = {
1,
- -1, 1, 553
+ -1, 1, 594
};
-static int parser_action_row1661[] = {
+static int parser_action_row1764[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1662[] = {
+static int parser_action_row1765[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1663[] = {
+static int parser_action_row1766[] = {
2,
- -1, 3, 1662,
- 52, 0, 1709
+ -1, 3, 1765,
+ 53, 0, 1812
};
-static int parser_action_row1664[] = {
+static int parser_action_row1767[] = {
1,
- -1, 1, 131
+ -1, 1, 135
};
-static int parser_action_row1665[] = {
+static int parser_action_row1768[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1666[] = {
+static int parser_action_row1769[] = {
4,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2,
- 81, 0, 539
+ 95, 0, 590
};
-static int parser_action_row1667[] = {
+static int parser_action_row1770[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1668[] = {
+static int parser_action_row1771[] = {
2,
- -1, 1, 438,
- 9, 0, 1203
+ -1, 1, 466,
+ 9, 0, 1292
};
-static int parser_action_row1669[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1772[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1670[] = {
- 3,
- -1, 3, 1669,
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1773[] = {
+ 3,
+ -1, 3, 1772,
28, 0, 33,
- 94, 0, 55
+ 108, 0, 56
};
-static int parser_action_row1671[] = {
+static int parser_action_row1774[] = {
1,
-1, 1, 55
};
-static int parser_action_row1672[] = {
+static int parser_action_row1775[] = {
1,
-1, 1, 78
};
-static int parser_action_row1673[] = {
+static int parser_action_row1776[] = {
1,
-1, 1, 63
};
-static int parser_action_row1674[] = {
+static int parser_action_row1777[] = {
2,
- -1, 1, 438,
- 9, 0, 1203
+ -1, 1, 466,
+ 9, 0, 1292
};
-static int parser_action_row1675[] = {
+static int parser_action_row1778[] = {
2,
- -1, 1, 438,
- 9, 0, 1203
+ -1, 1, 466,
+ 9, 0, 1292
};
-static int parser_action_row1676[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1779[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1677[] = {
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1780[] = {
2,
-1, 1, 74,
15, 1, 77
};
-static int parser_action_row1678[] = {
+static int parser_action_row1781[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1679[] = {
+static int parser_action_row1782[] = {
2,
-1, 1, 59,
- 9, 0, 1720
+ 9, 0, 1823
};
-static int parser_action_row1680[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1783[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1681[] = {
- 32,
- -1, 1, 427,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1784[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1682[] = {
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1785[] = {
1,
-1, 1, 51
};
-static int parser_action_row1683[] = {
+static int parser_action_row1786[] = {
2,
- -1, 1, 438,
- 9, 0, 1203
+ -1, 1, 466,
+ 9, 0, 1292
};
-static int parser_action_row1684[] = {
+static int parser_action_row1787[] = {
1,
-1, 1, 70
};
-static int parser_action_row1685[] = {
+static int parser_action_row1788[] = {
2,
- -1, 1, 438,
- 9, 0, 1203
+ -1, 1, 466,
+ 9, 0, 1292
};
-static int parser_action_row1686[] = {
- 32,
- -1, 1, 427,
+static int parser_action_row1789[] = {
+ 33,
+ -1, 1, 455,
0, 0, 1,
1, 0, 2,
- 9, 0, 528,
+ 9, 0, 576,
12, 0, 25,
15, 0, 27,
16, 0, 28,
45, 0, 43,
50, 0, 44,
51, 0, 45,
- 53, 0, 46,
- 81, 0, 47,
- 82, 0, 48,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1687[] = {
- 3,
- -1, 3, 1686,
+ 52, 0, 46,
+ 54, 0, 47,
+ 95, 0, 48,
+ 96, 0, 49,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1790[] = {
+ 3,
+ -1, 3, 1789,
28, 0, 33,
- 94, 0, 55
+ 108, 0, 56
};
-static int parser_action_row1688[] = {
+static int parser_action_row1791[] = {
1,
-1, 1, 69
};
-static int parser_action_row1689[] = {
+static int parser_action_row1792[] = {
1,
- -1, 1, 606
+ -1, 1, 648
};
-static int parser_action_row1690[] = {
+static int parser_action_row1793[] = {
1,
- -1, 1, 625
+ -1, 1, 667
};
-static int parser_action_row1691[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1794[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1692[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1795[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1693[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1796[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1694[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1797[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1695[] = {
- 24,
- -1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1798[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1696[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1799[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1697[] = {
- 4,
- -1, 1, 683,
- 58, 0, 1733,
- 59, 0, 193,
- 60, 0, 194
-};
-static int parser_action_row1698[] = {
- 24,
- -1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1800[] = {
+ 13,
+ -1, 1, 734,
+ 59, 0, 1836,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
+};
+static int parser_action_row1801[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
- 45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1699[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+ 45, 0, 43,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1802[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1700[] = {
- 4,
- -1, 1, 687,
- 58, 0, 1737,
- 59, 0, 193,
- 60, 0, 194
-};
-static int parser_action_row1701[] = {
- 5,
- -1, 1, 686,
- 51, 0, 242,
- 58, 0, 1739,
- 59, 0, 193,
- 60, 0, 194
-};
-static int parser_action_row1702[] = {
- 1,
- -1, 1, 617
-};
-static int parser_action_row1703[] = {
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1803[] = {
+ 13,
+ -1, 1, 738,
+ 59, 0, 1840,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
+};
+static int parser_action_row1804[] = {
+ 14,
+ -1, 1, 737,
+ 52, 0, 266,
+ 59, 0, 1842,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
+};
+static int parser_action_row1805[] = {
+ 1,
+ -1, 1, 659
+};
+static int parser_action_row1806[] = {
1,
- -1, 1, 636
+ -1, 1, 678
};
-static int parser_action_row1704[] = {
+static int parser_action_row1807[] = {
1,
- -1, 1, 860
+ -1, 1, 921
};
-static int parser_action_row1705[] = {
+static int parser_action_row1808[] = {
2,
- -1, 3, 1704,
- 49, 0, 174
+ -1, 3, 1807,
+ 49, 0, 188
};
-static int parser_action_row1706[] = {
+static int parser_action_row1809[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1707[] = {
+static int parser_action_row1810[] = {
1,
- -1, 1, 547
+ -1, 1, 588
};
-static int parser_action_row1708[] = {
+static int parser_action_row1811[] = {
2,
- -1, 3, 1707,
- 45, 0, 1744
+ -1, 3, 1810,
+ 45, 0, 1847
};
-static int parser_action_row1709[] = {
+static int parser_action_row1812[] = {
2,
- -1, 3, 1708,
- 52, 0, 1745
+ -1, 3, 1811,
+ 53, 0, 1848
};
-static int parser_action_row1710[] = {
+static int parser_action_row1813[] = {
4,
- -1, 3, 1709,
- 0, 0, 81,
- 1, 0, 82,
- 80, 0, 181
+ -1, 3, 1812,
+ 0, 0, 83,
+ 1, 0, 84,
+ 94, 0, 195
};
-static int parser_action_row1711[] = {
+static int parser_action_row1814[] = {
2,
- -1, 3, 1710,
- 47, 0, 1748
+ -1, 3, 1813,
+ 47, 0, 1851
};
-static int parser_action_row1712[] = {
+static int parser_action_row1815[] = {
2,
- -1, 3, 1711,
- 52, 0, 1749
+ -1, 3, 1814,
+ 53, 0, 1852
};
-static int parser_action_row1713[] = {
+static int parser_action_row1816[] = {
2,
- -1, 3, 1712,
- 52, 0, 1750
+ -1, 3, 1815,
+ 53, 0, 1853
};
-static int parser_action_row1714[] = {
+static int parser_action_row1817[] = {
1,
-1, 1, 46
};
-static int parser_action_row1715[] = {
+static int parser_action_row1818[] = {
2,
- -1, 1, 438,
- 9, 0, 1203
+ -1, 1, 466,
+ 9, 0, 1292
};
-static int parser_action_row1716[] = {
+static int parser_action_row1819[] = {
1,
-1, 1, 56
};
-static int parser_action_row1717[] = {
+static int parser_action_row1820[] = {
1,
-1, 1, 65
};
-static int parser_action_row1718[] = {
+static int parser_action_row1821[] = {
1,
-1, 1, 64
};
-static int parser_action_row1719[] = {
+static int parser_action_row1822[] = {
2,
- -1, 1, 438,
- 9, 0, 1203
+ -1, 1, 466,
+ 9, 0, 1292
};
-static int parser_action_row1720[] = {
+static int parser_action_row1823[] = {
2,
-1, 1, 78,
- 9, 0, 1306
+ 9, 0, 1399
};
-static int parser_action_row1721[] = {
+static int parser_action_row1824[] = {
1,
-1, 1, 61
};
-static int parser_action_row1722[] = {
+static int parser_action_row1825[] = {
2,
-1, 1, 76,
- 14, 0, 880
+ 14, 0, 952
};
-static int parser_action_row1723[] = {
+static int parser_action_row1826[] = {
2,
-1, 1, 60,
- 9, 0, 1754
+ 9, 0, 1857
};
-static int parser_action_row1724[] = {
+static int parser_action_row1827[] = {
1,
-1, 1, 53
};
-static int parser_action_row1725[] = {
+static int parser_action_row1828[] = {
1,
-1, 1, 52
};
-static int parser_action_row1726[] = {
+static int parser_action_row1829[] = {
2,
- -1, 1, 438,
- 9, 0, 1203
+ -1, 1, 466,
+ 9, 0, 1292
};
-static int parser_action_row1727[] = {
+static int parser_action_row1830[] = {
1,
-1, 1, 71
};
-static int parser_action_row1728[] = {
+static int parser_action_row1831[] = {
1,
- -1, 1, 605
+ -1, 1, 647
};
-static int parser_action_row1729[] = {
+static int parser_action_row1832[] = {
1,
- -1, 1, 624
+ -1, 1, 666
};
-static int parser_action_row1730[] = {
+static int parser_action_row1833[] = {
1,
- -1, 1, 603
+ -1, 1, 645
};
-static int parser_action_row1731[] = {
+static int parser_action_row1834[] = {
1,
- -1, 1, 622
+ -1, 1, 664
};
-static int parser_action_row1732[] = {
+static int parser_action_row1835[] = {
1,
- -1, 1, 608
+ -1, 1, 650
};
-static int parser_action_row1733[] = {
+static int parser_action_row1836[] = {
1,
- -1, 1, 627
+ -1, 1, 669
};
-static int parser_action_row1734[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1837[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1735[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1838[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1736[] = {
- 1,
- -1, 1, 612
-};
-static int parser_action_row1737[] = {
- 1,
- -1, 1, 631
-};
-static int parser_action_row1738[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1839[] = {
+ 1,
+ -1, 1, 654
+};
+static int parser_action_row1840[] = {
+ 1,
+ -1, 1, 673
+};
+static int parser_action_row1841[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1739[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1842[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1740[] = {
- 24,
- -1, 1, 473,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
- 41, 1, 427,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1843[] = {
+ 26,
+ -1, 1, 505,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
+ 41, 1, 455,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 83, 1, 427,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1741[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 97, 1, 455,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1844[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1742[] = {
- 4,
- -1, 1, 685,
- 58, 0, 1762,
- 59, 0, 193,
- 60, 0, 194
-};
-static int parser_action_row1743[] = {
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1845[] = {
+ 13,
+ -1, 1, 736,
+ 59, 0, 1865,
+ 60, 0, 208,
+ 61, 0, 209,
+ 62, 0, 210,
+ 63, 0, 211,
+ 64, 0, 212,
+ 65, 0, 213,
+ 66, 0, 214,
+ 67, 0, 215,
+ 68, 0, 216,
+ 69, 0, 217,
+ 70, 0, 218
+};
+static int parser_action_row1846[] = {
2,
- -1, 1, 253,
- 24, 1, 859
-};
-static int parser_action_row1744[] = {
- 21,
- -1, 1, 427,
- 12, 0, 1000,
- 22, 0, 1001,
- 31, 0, 1002,
- 38, 0, 1003,
- 40, 0, 1004,
- 42, 0, 1005,
- 43, 0, 1006,
- 44, 0, 1007,
- 45, 0, 1008,
- 48, 0, 1009,
- 51, 0, 45,
- 65, 0, 1010,
- 81, 0, 47,
- 82, 0, 1011,
- 84, 0, 1012,
- 85, 0, 1013,
- 86, 0, 1014,
- 87, 0, 1015,
- 88, 0, 53,
- 91, 0, 1016
+ -1, 1, 267,
+ 24, 1, 920
};
-static int parser_action_row1745[] = {
+static int parser_action_row1847[] = {
+ 23,
+ -1, 1, 455,
+ 12, 0, 1076,
+ 22, 0, 1077,
+ 31, 0, 1078,
+ 38, 0, 1079,
+ 40, 0, 1080,
+ 42, 0, 1081,
+ 43, 0, 1082,
+ 44, 0, 1083,
+ 45, 0, 1084,
+ 48, 0, 1085,
+ 52, 0, 46,
+ 74, 0, 1086,
+ 75, 0, 1087,
+ 83, 0, 1088,
+ 95, 0, 48,
+ 96, 0, 1089,
+ 98, 0, 1090,
+ 99, 0, 1091,
+ 100, 0, 1092,
+ 101, 0, 1093,
+ 102, 0, 54,
+ 105, 0, 1094
+};
+static int parser_action_row1848[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1746[] = {
+static int parser_action_row1849[] = {
1,
- -1, 1, 551
+ -1, 1, 592
};
-static int parser_action_row1747[] = {
+static int parser_action_row1850[] = {
3,
- -1, 3, 1746,
- 0, 0, 81,
- 1, 0, 82
+ -1, 3, 1849,
+ 0, 0, 83,
+ 1, 0, 84
};
-static int parser_action_row1748[] = {
+static int parser_action_row1851[] = {
1,
- -1, 1, 385
+ -1, 1, 413
};
-static int parser_action_row1749[] = {
+static int parser_action_row1852[] = {
3,
- -1, 1, 445,
+ -1, 1, 473,
0, 0, 1,
1, 0, 2
};
-static int parser_action_row1750[] = {
+static int parser_action_row1853[] = {
1,
- -1, 1, 128
+ -1, 1, 132
};
-static int parser_action_row1751[] = {
+static int parser_action_row1854[] = {
1,
- -1, 1, 126
+ -1, 1, 130
};
-static int parser_action_row1752[] = {
+static int parser_action_row1855[] = {
1,
-1, 1, 47
};
-static int parser_action_row1753[] = {
+static int parser_action_row1856[] = {
1,
-1, 1, 66
};
-static int parser_action_row1754[] = {
+static int parser_action_row1857[] = {
1,
-1, 1, 58
};
-static int parser_action_row1755[] = {
+static int parser_action_row1858[] = {
1,
-1, 1, 62
};
-static int parser_action_row1756[] = {
+static int parser_action_row1859[] = {
1,
-1, 1, 54
};
-static int parser_action_row1757[] = {
+static int parser_action_row1860[] = {
1,
- -1, 1, 607
+ -1, 1, 649
};
-static int parser_action_row1758[] = {
+static int parser_action_row1861[] = {
1,
- -1, 1, 626
+ -1, 1, 668
};
-static int parser_action_row1759[] = {
+static int parser_action_row1862[] = {
1,
- -1, 1, 611
+ -1, 1, 653
};
-static int parser_action_row1760[] = {
+static int parser_action_row1863[] = {
1,
- -1, 1, 630
+ -1, 1, 672
};
-static int parser_action_row1761[] = {
+static int parser_action_row1864[] = {
1,
- -1, 1, 610
+ -1, 1, 652
};
-static int parser_action_row1762[] = {
+static int parser_action_row1865[] = {
1,
- -1, 1, 629
+ -1, 1, 671
};
-static int parser_action_row1763[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+static int parser_action_row1866[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1764[] = {
- 22,
- -1, 1, 427,
- 12, 0, 153,
- 22, 0, 154,
- 31, 0, 155,
- 38, 0, 156,
- 40, 0, 157,
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1867[] = {
+ 24,
+ -1, 1, 455,
+ 12, 0, 161,
+ 22, 0, 162,
+ 31, 0, 163,
+ 38, 0, 164,
+ 40, 0, 165,
42, 0, 40,
43, 0, 41,
44, 0, 42,
45, 0, 43,
- 48, 0, 158,
- 51, 0, 45,
- 53, 0, 46,
- 65, 0, 159,
- 81, 0, 47,
- 82, 0, 160,
- 84, 0, 49,
- 85, 0, 50,
- 86, 0, 51,
- 87, 0, 52,
- 88, 0, 53,
- 91, 0, 54
-};
-static int parser_action_row1765[] = {
+ 48, 0, 166,
+ 52, 0, 46,
+ 54, 0, 47,
+ 74, 0, 167,
+ 75, 0, 168,
+ 83, 0, 169,
+ 95, 0, 48,
+ 96, 0, 170,
+ 98, 0, 50,
+ 99, 0, 51,
+ 100, 0, 52,
+ 101, 0, 53,
+ 102, 0, 54,
+ 105, 0, 55
+};
+static int parser_action_row1868[] = {
1,
- -1, 1, 482
+ -1, 1, 514
};
-static int parser_action_row1766[] = {
+static int parser_action_row1869[] = {
2,
- -1, 3, 1765,
- 52, 0, 1770
+ -1, 3, 1868,
+ 53, 0, 1873
};
-static int parser_action_row1767[] = {
+static int parser_action_row1870[] = {
1,
- -1, 1, 386
+ -1, 1, 414
};
-static int parser_action_row1768[] = {
+static int parser_action_row1871[] = {
2,
- -1, 3, 1767,
- 52, 0, 1771
+ -1, 3, 1870,
+ 53, 0, 1874
};
-static int parser_action_row1769[] = {
+static int parser_action_row1872[] = {
1,
- -1, 1, 609
+ -1, 1, 651
};
-static int parser_action_row1770[] = {
+static int parser_action_row1873[] = {
1,
- -1, 1, 628
+ -1, 1, 670
};
-static int parser_action_row1771[] = {
+static int parser_action_row1874[] = {
1,
- -1, 1, 552
+ -1, 1, 593
};
-static int parser_action_row1772[] = {
+static int parser_action_row1875[] = {
1,
- -1, 1, 130
+ -1, 1, 134
};
const int* const parser_action_table[] = {
parser_action_row1769,
parser_action_row1770,
parser_action_row1771,
- parser_action_row1772
+ parser_action_row1772,
+ parser_action_row1773,
+ parser_action_row1774,
+ parser_action_row1775,
+ parser_action_row1776,
+ parser_action_row1777,
+ parser_action_row1778,
+ parser_action_row1779,
+ parser_action_row1780,
+ parser_action_row1781,
+ parser_action_row1782,
+ parser_action_row1783,
+ parser_action_row1784,
+ parser_action_row1785,
+ parser_action_row1786,
+ parser_action_row1787,
+ parser_action_row1788,
+ parser_action_row1789,
+ parser_action_row1790,
+ parser_action_row1791,
+ parser_action_row1792,
+ parser_action_row1793,
+ parser_action_row1794,
+ parser_action_row1795,
+ parser_action_row1796,
+ parser_action_row1797,
+ parser_action_row1798,
+ parser_action_row1799,
+ parser_action_row1800,
+ parser_action_row1801,
+ parser_action_row1802,
+ parser_action_row1803,
+ parser_action_row1804,
+ parser_action_row1805,
+ parser_action_row1806,
+ parser_action_row1807,
+ parser_action_row1808,
+ parser_action_row1809,
+ parser_action_row1810,
+ parser_action_row1811,
+ parser_action_row1812,
+ parser_action_row1813,
+ parser_action_row1814,
+ parser_action_row1815,
+ parser_action_row1816,
+ parser_action_row1817,
+ parser_action_row1818,
+ parser_action_row1819,
+ parser_action_row1820,
+ parser_action_row1821,
+ parser_action_row1822,
+ parser_action_row1823,
+ parser_action_row1824,
+ parser_action_row1825,
+ parser_action_row1826,
+ parser_action_row1827,
+ parser_action_row1828,
+ parser_action_row1829,
+ parser_action_row1830,
+ parser_action_row1831,
+ parser_action_row1832,
+ parser_action_row1833,
+ parser_action_row1834,
+ parser_action_row1835,
+ parser_action_row1836,
+ parser_action_row1837,
+ parser_action_row1838,
+ parser_action_row1839,
+ parser_action_row1840,
+ parser_action_row1841,
+ parser_action_row1842,
+ parser_action_row1843,
+ parser_action_row1844,
+ parser_action_row1845,
+ parser_action_row1846,
+ parser_action_row1847,
+ parser_action_row1848,
+ parser_action_row1849,
+ parser_action_row1850,
+ parser_action_row1851,
+ parser_action_row1852,
+ parser_action_row1853,
+ parser_action_row1854,
+ parser_action_row1855,
+ parser_action_row1856,
+ parser_action_row1857,
+ parser_action_row1858,
+ parser_action_row1859,
+ parser_action_row1860,
+ parser_action_row1861,
+ parser_action_row1862,
+ parser_action_row1863,
+ parser_action_row1864,
+ parser_action_row1865,
+ parser_action_row1866,
+ parser_action_row1867,
+ parser_action_row1868,
+ parser_action_row1869,
+ parser_action_row1870,
+ parser_action_row1871,
+ parser_action_row1872,
+ parser_action_row1873,
+ parser_action_row1874,
+ parser_action_row1875
};
static int parser_goto_row1[] = {
static int parser_goto_row3[] = {
3,
-1, 5,
- 15, 84,
- 22, 84
+ 15, 86,
+ 22, 86
};
static int parser_goto_row4[] = {
9,
-1, 6,
- 17, 92,
- 24, 92,
- 87, 92,
- 91, 92,
- 101, 92,
- 103, 92,
- 233, 92,
- 239, 92
+ 17, 94,
+ 24, 94,
+ 89, 94,
+ 93, 94,
+ 103, 94,
+ 105, 94,
+ 257, 94,
+ 263, 94
};
static int parser_goto_row5[] = {
16,
-1, 7,
4, 20,
- 15, 85,
- 16, 88,
- 17, 93,
- 22, 99,
- 23, 102,
- 24, 104,
- 86, 232,
- 87, 234,
- 91, 236,
- 100, 238,
- 101, 240,
- 103, 241,
- 233, 447,
- 239, 449
+ 15, 87,
+ 16, 90,
+ 17, 95,
+ 22, 101,
+ 23, 104,
+ 24, 106,
+ 88, 256,
+ 89, 258,
+ 93, 260,
+ 102, 262,
+ 103, 264,
+ 105, 265,
+ 257, 489,
+ 263, 491
};
static int parser_goto_row6[] = {
1,
};
static int parser_goto_row8[] = {
10,
- -1, 710,
- 12, 56,
- 21, 98,
- 90, 235,
- 94, 235,
- 181, 347,
- 533, 707,
- 1059, 1214,
- 1186, 1307,
- 1218, 1214
+ -1, 773,
+ 12, 57,
+ 21, 100,
+ 92, 259,
+ 96, 259,
+ 195, 381,
+ 581, 770,
+ 1141, 1303,
+ 1275, 1400,
+ 1307, 1303
};
static int parser_goto_row9[] = {
1,
- -1, 417
+ -1, 459
};
static int parser_goto_row10[] = {
1,
- -1, 897
+ -1, 969
};
static int parser_goto_row11[] = {
2,
- -1, 1325,
- 1327, 1438
+ -1, 1418,
+ 1420, 1538
};
static int parser_goto_row12[] = {
2,
- -1, 1208,
- 1436, 1499
+ -1, 1297,
+ 1536, 1601
};
static int parser_goto_row13[] = {
2,
- -1, 1053,
- 1060, 1216
+ -1, 1135,
+ 1142, 1305
};
static int parser_goto_row14[] = {
2,
- -1, 1054,
- 1057, 1211
+ -1, 1136,
+ 1139, 1300
};
static int parser_goto_row15[] = {
2,
- -1, 1055,
- 1060, 1217
+ -1, 1137,
+ 1142, 1306
};
static int parser_goto_row16[] = {
1,
- -1, 1056
+ -1, 1138
};
static int parser_goto_row17[] = {
6,
- -1, 881,
- 743, 884,
- 1558, 1616,
- 1563, 1626,
- 1569, 1636,
- 1721, 1753
+ -1, 953,
+ 809, 956,
+ 1661, 1719,
+ 1666, 1729,
+ 1672, 1739,
+ 1824, 1856
};
static int parser_goto_row18[] = {
7,
- -1, 891,
- 1503, 1561,
- 1506, 1565,
- 1557, 1613,
- 1562, 1622,
- 1563, 1627,
- 1568, 1633
+ -1, 963,
+ 1605, 1664,
+ 1608, 1668,
+ 1660, 1716,
+ 1665, 1725,
+ 1666, 1730,
+ 1671, 1736
};
static int parser_goto_row19[] = {
8,
- -1, 207,
- 98, 237,
- 235, 448,
- 347, 538,
- 707, 851,
- 710, 855,
- 1214, 1329,
- 1307, 1427
+ -1, 231,
+ 100, 261,
+ 259, 490,
+ 381, 586,
+ 770, 919,
+ 773, 923,
+ 1303, 1422,
+ 1400, 1527
};
static int parser_goto_row20[] = {
4,
- -1, 591,
- 593, 752,
- 594, 753,
- 754, 895
+ -1, 648,
+ 650, 818,
+ 651, 819,
+ 820, 967
};
static int parser_goto_row21[] = {
6,
- -1, 748,
- 1442, 1503,
- 1444, 1506,
- 1501, 1557,
- 1504, 1562,
- 1507, 1568
+ -1, 814,
+ 1542, 1605,
+ 1544, 1608,
+ 1603, 1660,
+ 1606, 1665,
+ 1609, 1671
};
static int parser_goto_row22[] = {
1,
- -1, 1042
+ -1, 1124
};
static int parser_goto_row23[] = {
2,
- -1, 1193,
- 1195, 1314
+ -1, 1282,
+ 1284, 1407
};
static int parser_goto_row24[] = {
2,
- -1, 1043,
- 1313, 1430
+ -1, 1125,
+ 1406, 1530
};
static int parser_goto_row25[] = {
8,
- -1, 892,
- 891, 1050,
- 1506, 1566,
- 1557, 1614,
- 1565, 1630,
- 1568, 1634,
- 1613, 1669,
- 1633, 1686
+ -1, 964,
+ 963, 1132,
+ 1608, 1669,
+ 1660, 1717,
+ 1668, 1733,
+ 1671, 1737,
+ 1716, 1772,
+ 1736, 1789
};
static int parser_goto_row26[] = {
2,
- -1, 1317,
- 1318, 1432
+ -1, 1410,
+ 1411, 1532
};
static int parser_goto_row27[] = {
2,
- -1, 1197,
- 1431, 1497
+ -1, 1286,
+ 1531, 1599
};
static int parser_goto_row28[] = {
1,
- -1, 1198
+ -1, 1287
};
static int parser_goto_row29[] = {
1,
- -1, 1199
+ -1, 1288
};
static int parser_goto_row30[] = {
1,
};
static int parser_goto_row31[] = {
1,
- -1, 57
+ -1, 58
};
static int parser_goto_row32[] = {
10,
- -1, 58,
- 892, 1051,
- 897, 1057,
- 1050, 1206,
- 1566, 1631,
- 1614, 1670,
- 1630, 1683,
- 1634, 1687,
- 1669, 1715,
- 1686, 1726
+ -1, 59,
+ 964, 1133,
+ 969, 1139,
+ 1132, 1295,
+ 1669, 1734,
+ 1717, 1773,
+ 1733, 1786,
+ 1737, 1790,
+ 1772, 1818,
+ 1789, 1829
};
static int parser_goto_row33[] = {
1,
static int parser_goto_row34[] = {
5,
-1, 10,
- 16, 89,
- 23, 89,
- 86, 89,
- 100, 89
+ 16, 91,
+ 23, 91,
+ 88, 91,
+ 102, 91
};
static int parser_goto_row35[] = {
24,
- -1, 375,
- 187, 351,
- 469, 640,
- 488, 663,
- 509, 680,
- 546, 721,
- 705, 848,
- 719, 848,
- 847, 848,
- 862, 848,
- 887, 1044,
- 954, 1099,
- 1045, 1200,
- 1063, 1221,
- 1088, 1237,
- 1115, 1255,
- 1215, 1338,
- 1431, 1200,
- 1449, 1509,
- 1496, 1338,
- 1498, 1556,
- 1508, 1569,
- 1605, 1661,
- 1611, 1666
+ -1, 416,
+ 202, 388,
+ 509, 695,
+ 533, 723,
+ 552, 738,
+ 597, 787,
+ 768, 916,
+ 785, 916,
+ 915, 916,
+ 934, 916,
+ 959, 1126,
+ 1027, 1182,
+ 1127, 1289,
+ 1145, 1310,
+ 1170, 1326,
+ 1198, 1345,
+ 1304, 1433,
+ 1531, 1289,
+ 1549, 1611,
+ 1598, 1433,
+ 1600, 1659,
+ 1610, 1672,
+ 1708, 1764,
+ 1714, 1769
};
static int parser_goto_row36[] = {
4,
- -1, 849,
- 719, 863,
- 847, 975,
- 862, 991
+ -1, 917,
+ 785, 935,
+ 915, 1048,
+ 934, 1067
};
static int parser_goto_row37[] = {
2,
- -1, 977,
- 978, 1116
+ -1, 1050,
+ 1051, 1199
};
static int parser_goto_row38[] = {
5,
- -1, 749,
- 1041, 1188,
- 1189, 1310,
- 1191, 1311,
- 1502, 1558
+ -1, 815,
+ 1123, 1277,
+ 1278, 1403,
+ 1280, 1404,
+ 1604, 1661
};
static int parser_goto_row39[] = {
- 6,
- -1, 295,
- 296, 490,
- 397, 565,
- 1207, 1322,
- 1323, 1435,
- 1505, 1563
+ 8,
+ -1, 324,
+ 325, 535,
+ 383, 587,
+ 439, 618,
+ 588, 781,
+ 1296, 1415,
+ 1416, 1535,
+ 1607, 1666
};
static int parser_goto_row40[] = {
- 28,
- -1, 141,
- 31, 149,
- 342, 529,
- 527, 700,
- 667, 834,
- 807, 944,
- 809, 149,
- 890, 1048,
- 963, 1106,
- 1049, 1205,
- 1098, 529,
- 1241, 700,
- 1252, 1378,
- 1365, 834,
- 1530, 1106,
- 1560, 1619,
- 1564, 1628,
- 1612, 1667,
- 1620, 1673,
- 1621, 1674,
- 1624, 1678,
- 1629, 1682,
- 1632, 1684,
- 1654, 1378,
- 1668, 1714,
- 1675, 1718,
- 1680, 1722,
- 1685, 1725
+ 30,
+ -1, 149,
+ 31, 157,
+ 376, 577,
+ 575, 763,
+ 727, 902,
+ 782, 932,
+ 873, 1016,
+ 875, 157,
+ 962, 1130,
+ 1036, 1189,
+ 1131, 1294,
+ 1180, 577,
+ 1330, 763,
+ 1342, 1475,
+ 1461, 902,
+ 1466, 932,
+ 1632, 1189,
+ 1663, 1722,
+ 1667, 1731,
+ 1715, 1770,
+ 1723, 1776,
+ 1724, 1777,
+ 1727, 1781,
+ 1732, 1785,
+ 1735, 1787,
+ 1757, 1475,
+ 1771, 1817,
+ 1778, 1821,
+ 1783, 1825,
+ 1788, 1828
};
static int parser_goto_row41[] = {
1,
- -1, 59
+ -1, 60
};
static int parser_goto_row42[] = {
2,
- -1, 60,
- 825, 960
+ -1, 61,
+ 892, 1033
};
static int parser_goto_row43[] = {
4,
- -1, 291,
- 530, 702,
- 939, 1091,
- 1243, 1369
+ -1, 320,
+ 578, 765,
+ 1011, 1173,
+ 1332, 1465
};
static int parser_goto_row44[] = {
4,
- -1, 209,
- 211, 419,
- 487, 419,
- 1105, 419
+ -1, 233,
+ 235, 461,
+ 532, 461,
+ 1188, 461
};
static int parser_goto_row45[] = {
16,
- -1, 142,
- 12, 61,
- 21, 61,
- 90, 61,
- 94, 61,
- 143, 292,
- 210, 418,
- 420, 418,
- 486, 418,
- 530, 292,
- 662, 418,
- 666, 818,
- 825, 961,
- 939, 292,
- 1243, 292,
- 1364, 818
+ -1, 150,
+ 12, 62,
+ 21, 62,
+ 92, 62,
+ 96, 62,
+ 151, 321,
+ 234, 460,
+ 462, 460,
+ 531, 460,
+ 578, 321,
+ 722, 460,
+ 726, 885,
+ 892, 1034,
+ 1011, 321,
+ 1332, 321,
+ 1460, 885
};
static int parser_goto_row46[] = {
- 16,
- -1, 175,
- 36, 176,
- 144, 293,
- 150, 299,
- 353, 544,
- 354, 545,
- 812, 950,
- 813, 951,
- 835, 967,
- 942, 1092,
- 947, 1095,
- 1331, 1447,
- 1332, 1448,
- 1379, 1476,
- 1468, 1531,
- 1704, 1742
+ 18,
+ -1, 189,
+ 36, 190,
+ 152, 322,
+ 158, 328,
+ 390, 595,
+ 391, 596,
+ 878, 1022,
+ 879, 1023,
+ 903, 1040,
+ 933, 1066,
+ 1014, 1174,
+ 1019, 1177,
+ 1424, 1547,
+ 1425, 1548,
+ 1476, 1578,
+ 1568, 1633,
+ 1571, 1635,
+ 1807, 1845
};
static int parser_goto_row47[] = {
- 19,
- -1, 62,
- 188, 376,
- 666, 819,
- 725, 376,
- 805, 819,
- 809, 819,
- 990, 376,
- 1098, 819,
- 1215, 1339,
- 1241, 819,
- 1259, 376,
- 1364, 819,
- 1365, 819,
- 1384, 376,
- 1450, 376,
- 1496, 1339,
- 1530, 819,
- 1607, 376,
- 1654, 819
+ 20,
+ -1, 63,
+ 203, 417,
+ 726, 886,
+ 791, 417,
+ 871, 886,
+ 875, 886,
+ 1063, 417,
+ 1180, 886,
+ 1304, 1434,
+ 1330, 886,
+ 1349, 417,
+ 1460, 886,
+ 1461, 886,
+ 1466, 886,
+ 1481, 417,
+ 1550, 417,
+ 1598, 1434,
+ 1632, 886,
+ 1710, 417,
+ 1757, 886
};
static int parser_goto_row48[] = {
- 17,
- -1, 63,
- 188, 377,
- 666, 820,
- 725, 377,
- 805, 820,
- 809, 820,
- 990, 377,
- 1098, 820,
- 1241, 820,
- 1259, 377,
- 1364, 820,
- 1365, 820,
- 1384, 377,
- 1450, 377,
- 1530, 820,
- 1607, 377,
- 1654, 820
+ 18,
+ -1, 64,
+ 203, 418,
+ 726, 887,
+ 791, 418,
+ 871, 887,
+ 875, 887,
+ 1063, 418,
+ 1180, 887,
+ 1330, 887,
+ 1349, 418,
+ 1460, 887,
+ 1461, 887,
+ 1466, 887,
+ 1481, 418,
+ 1550, 418,
+ 1632, 887,
+ 1710, 418,
+ 1757, 887
};
static int parser_goto_row49[] = {
52,
- -1, 195,
- 196, 404,
- 215, 424,
- 224, 433,
- 226, 437,
- 228, 442,
- 438, 615,
- 443, 619,
- 446, 622,
- 557, 437,
- 559, 442,
- 600, 765,
- 623, 784,
- 730, 622,
- 766, 906,
- 768, 908,
- 770, 911,
- 772, 916,
- 865, 765,
- 912, 1071,
- 917, 1075,
- 920, 1078,
- 959, 437,
- 965, 442,
- 995, 911,
- 996, 916,
- 1079, 1229,
- 1110, 622,
- 1134, 1078,
- 1247, 765,
- 1337, 1452,
- 1374, 911,
- 1376, 916,
- 1453, 1514,
- 1454, 1516,
- 1455, 1518,
- 1457, 1522,
- 1459, 1524,
- 1475, 1078,
- 1519, 1579,
- 1525, 1590,
- 1526, 1592,
- 1580, 1642,
- 1593, 1653,
- 1643, 1691,
- 1644, 1693,
- 1645, 1695,
- 1646, 1698,
- 1696, 1734,
- 1699, 1738,
- 1700, 1740,
- 1741, 1763
+ -1, 219,
+ 220, 446,
+ 239, 466,
+ 248, 475,
+ 250, 479,
+ 252, 484,
+ 480, 672,
+ 485, 676,
+ 488, 679,
+ 610, 479,
+ 612, 484,
+ 657, 831,
+ 680, 850,
+ 796, 679,
+ 832, 978,
+ 834, 980,
+ 836, 983,
+ 838, 988,
+ 937, 831,
+ 984, 1153,
+ 989, 1157,
+ 992, 1160,
+ 1032, 479,
+ 1038, 484,
+ 1071, 983,
+ 1072, 988,
+ 1161, 1318,
+ 1193, 679,
+ 1218, 1160,
+ 1337, 831,
+ 1432, 1552,
+ 1471, 983,
+ 1473, 988,
+ 1553, 1616,
+ 1554, 1618,
+ 1555, 1620,
+ 1557, 1624,
+ 1559, 1626,
+ 1577, 1160,
+ 1621, 1682,
+ 1627, 1693,
+ 1628, 1695,
+ 1683, 1745,
+ 1696, 1756,
+ 1746, 1794,
+ 1747, 1796,
+ 1748, 1798,
+ 1749, 1801,
+ 1799, 1837,
+ 1802, 1841,
+ 1803, 1843,
+ 1844, 1866
};
static int parser_goto_row50[] = {
10,
- -1, 64,
- 188, 378,
- 725, 378,
- 990, 378,
- 1215, 1340,
- 1259, 378,
- 1384, 378,
- 1450, 378,
- 1496, 1340,
- 1607, 378
+ -1, 65,
+ 203, 419,
+ 791, 419,
+ 1063, 419,
+ 1304, 1435,
+ 1349, 419,
+ 1481, 419,
+ 1550, 419,
+ 1598, 1435,
+ 1710, 419
};
static int parser_goto_row51[] = {
1,
- -1, 65
+ -1, 66
};
static int parser_goto_row52[] = {
3,
- -1, 821,
- 825, 962,
- 960, 1104
+ -1, 888,
+ 892, 1035,
+ 1033, 1187
};
static int parser_goto_row53[] = {
10,
- -1, 66,
- 188, 379,
- 725, 379,
- 990, 379,
- 1215, 1341,
- 1259, 379,
- 1384, 379,
- 1450, 379,
- 1496, 1341,
- 1607, 379
+ -1, 67,
+ 203, 420,
+ 791, 420,
+ 1063, 420,
+ 1304, 1436,
+ 1349, 420,
+ 1481, 420,
+ 1550, 420,
+ 1598, 1436,
+ 1710, 420
};
static int parser_goto_row54[] = {
10,
- -1, 67,
- 188, 380,
- 725, 380,
- 990, 380,
- 1215, 1342,
- 1259, 380,
- 1384, 380,
- 1450, 380,
- 1496, 1342,
- 1607, 380
+ -1, 68,
+ 203, 421,
+ 791, 421,
+ 1063, 421,
+ 1304, 1437,
+ 1349, 421,
+ 1481, 421,
+ 1550, 421,
+ 1598, 1437,
+ 1710, 421
};
static int parser_goto_row55[] = {
10,
- -1, 68,
- 188, 381,
- 725, 381,
- 990, 381,
- 1215, 1343,
- 1259, 381,
- 1384, 381,
- 1450, 381,
- 1496, 1343,
- 1607, 381
+ -1, 69,
+ 203, 422,
+ 791, 422,
+ 1063, 422,
+ 1304, 1438,
+ 1349, 422,
+ 1481, 422,
+ 1550, 422,
+ 1598, 1438,
+ 1710, 422
};
static int parser_goto_row56[] = {
10,
- -1, 69,
- 188, 382,
- 725, 382,
- 990, 382,
- 1215, 1344,
- 1259, 382,
- 1384, 382,
- 1450, 382,
- 1496, 1344,
- 1607, 382
+ -1, 70,
+ 203, 423,
+ 791, 423,
+ 1063, 423,
+ 1304, 1439,
+ 1349, 423,
+ 1481, 423,
+ 1550, 423,
+ 1598, 1439,
+ 1710, 423
};
static int parser_goto_row57[] = {
2,
- -1, 178,
- 815, 952
+ -1, 384,
+ 1026, 1181
};
static int parser_goto_row58[] = {
- 126,
- -1, 383,
- 34, 161,
- 38, 179,
- 147, 297,
- 148, 298,
- 178, 341,
- 189, 396,
- 192, 401,
- 195, 402,
- 222, 429,
- 244, 451,
- 255, 459,
- 305, 497,
- 352, 543,
- 403, 569,
- 404, 570,
- 421, 459,
- 423, 604,
- 424, 605,
- 425, 606,
- 432, 609,
- 433, 610,
- 436, 612,
- 437, 613,
- 441, 616,
- 442, 617,
- 450, 459,
- 542, 720,
- 548, 401,
- 562, 732,
- 611, 459,
- 614, 777,
- 615, 778,
- 618, 779,
- 619, 780,
- 621, 781,
- 622, 782,
- 664, 801,
- 728, 612,
- 729, 616,
- 736, 877,
- 764, 903,
- 765, 904,
- 783, 922,
- 784, 923,
- 802, 936,
- 811, 949,
- 815, 953,
- 837, 969,
- 864, 993,
- 872, 781,
- 905, 1064,
- 906, 1065,
- 907, 1066,
- 908, 1067,
- 910, 1068,
- 911, 1069,
- 915, 1072,
- 916, 1073,
- 924, 1081,
- 929, 1086,
- 943, 1093,
- 945, 1094,
- 952, 1097,
- 970, 1112,
- 994, 903,
- 1070, 1222,
- 1071, 1223,
- 1074, 1224,
- 1075, 1225,
- 1077, 1226,
- 1078, 1227,
- 1132, 1068,
- 1133, 1072,
- 1135, 1267,
- 1136, 1269,
- 1138, 1270,
- 1228, 1358,
- 1229, 1359,
- 1245, 1370,
- 1266, 1226,
- 1330, 1446,
- 1451, 1511,
- 1452, 1512,
- 1469, 1532,
- 1477, 1535,
- 1481, 877,
- 1513, 1572,
- 1514, 1573,
- 1515, 1574,
- 1516, 1575,
- 1517, 1576,
- 1518, 1577,
- 1521, 1585,
- 1522, 1586,
- 1523, 1587,
- 1524, 1588,
- 1538, 1599,
- 1570, 1637,
- 1578, 1639,
- 1579, 1640,
- 1589, 1648,
- 1590, 1649,
- 1591, 1650,
- 1592, 1651,
- 1641, 1688,
- 1642, 1689,
- 1652, 1701,
- 1653, 1702,
- 1679, 1721,
- 1690, 1727,
- 1691, 1728,
- 1692, 1729,
- 1693, 1730,
- 1694, 1731,
- 1695, 1732,
- 1697, 1735,
- 1698, 1736,
- 1733, 1756,
- 1734, 1757,
- 1737, 1758,
- 1738, 1759,
- 1739, 1760,
- 1740, 1761,
- 1762, 1768,
- 1763, 1769
+ 10,
+ -1, 71,
+ 203, 424,
+ 791, 424,
+ 1063, 424,
+ 1304, 1440,
+ 1349, 424,
+ 1481, 424,
+ 1550, 424,
+ 1598, 1440,
+ 1710, 424
};
static int parser_goto_row59[] = {
- 1,
- -1, 162
+ 2,
+ -1, 192,
+ 881, 1024
};
static int parser_goto_row60[] = {
- 6,
- -1, 163,
- 306, 498,
- 503, 674,
- 505, 676,
- 506, 677,
- 675, 841
+ 130,
+ -1, 425,
+ 34, 171,
+ 38, 193,
+ 155, 326,
+ 156, 327,
+ 192, 375,
+ 201, 385,
+ 204, 438,
+ 207, 443,
+ 219, 444,
+ 246, 471,
+ 268, 493,
+ 279, 501,
+ 334, 542,
+ 389, 594,
+ 445, 622,
+ 446, 623,
+ 463, 501,
+ 465, 661,
+ 466, 662,
+ 467, 663,
+ 474, 666,
+ 475, 667,
+ 478, 669,
+ 479, 670,
+ 483, 673,
+ 484, 674,
+ 492, 501,
+ 593, 786,
+ 599, 443,
+ 615, 798,
+ 668, 501,
+ 671, 843,
+ 672, 844,
+ 675, 845,
+ 676, 846,
+ 678, 847,
+ 679, 848,
+ 724, 867,
+ 794, 669,
+ 795, 673,
+ 802, 949,
+ 830, 975,
+ 831, 976,
+ 849, 994,
+ 850, 995,
+ 868, 1008,
+ 877, 1021,
+ 881, 1025,
+ 905, 1042,
+ 930, 1064,
+ 936, 1069,
+ 944, 847,
+ 977, 1146,
+ 978, 1147,
+ 979, 1148,
+ 980, 1149,
+ 982, 1150,
+ 983, 1151,
+ 987, 1154,
+ 988, 1155,
+ 996, 1163,
+ 1001, 1168,
+ 1015, 1175,
+ 1017, 1176,
+ 1024, 1179,
+ 1026, 385,
+ 1043, 1195,
+ 1065, 1213,
+ 1070, 975,
+ 1152, 1311,
+ 1153, 1312,
+ 1156, 1313,
+ 1157, 1314,
+ 1159, 1315,
+ 1160, 1316,
+ 1216, 1150,
+ 1217, 1154,
+ 1219, 1357,
+ 1220, 1359,
+ 1222, 1360,
+ 1317, 1454,
+ 1318, 1455,
+ 1335, 1467,
+ 1356, 1315,
+ 1423, 1546,
+ 1551, 1613,
+ 1552, 1614,
+ 1569, 1634,
+ 1579, 1638,
+ 1583, 949,
+ 1615, 1675,
+ 1616, 1676,
+ 1617, 1677,
+ 1618, 1678,
+ 1619, 1679,
+ 1620, 1680,
+ 1623, 1688,
+ 1624, 1689,
+ 1625, 1690,
+ 1626, 1691,
+ 1641, 1702,
+ 1673, 1740,
+ 1681, 1742,
+ 1682, 1743,
+ 1692, 1751,
+ 1693, 1752,
+ 1694, 1753,
+ 1695, 1754,
+ 1744, 1791,
+ 1745, 1792,
+ 1755, 1804,
+ 1756, 1805,
+ 1782, 1824,
+ 1793, 1830,
+ 1794, 1831,
+ 1795, 1832,
+ 1796, 1833,
+ 1797, 1834,
+ 1798, 1835,
+ 1800, 1838,
+ 1801, 1839,
+ 1836, 1859,
+ 1837, 1860,
+ 1840, 1861,
+ 1841, 1862,
+ 1842, 1863,
+ 1843, 1864,
+ 1865, 1871,
+ 1866, 1872
};
static int parser_goto_row61[] = {
1,
- -1, 164
+ -1, 172
};
static int parser_goto_row62[] = {
- 10,
- -1, 165,
- 507, 678,
- 508, 679,
- 512, 683,
- 513, 684,
- 514, 685,
- 515, 686,
- 516, 687,
- 517, 688,
- 518, 689
+ 6,
+ -1, 173,
+ 335, 543,
+ 548, 734,
+ 550, 736,
+ 551, 737,
+ 735, 909
};
static int parser_goto_row63[] = {
- 3,
- -1, 166,
- 510, 681,
- 511, 682
+ 1,
+ -1, 174
};
static int parser_goto_row64[] = {
- 5,
- -1, 167,
- 519, 690,
- 520, 691,
- 521, 692,
- 522, 693
+ 8,
+ -1, 175,
+ 554, 740,
+ 555, 741,
+ 556, 742,
+ 557, 743,
+ 558, 744,
+ 559, 745,
+ 560, 746
};
static int parser_goto_row65[] = {
- 7,
- -1, 168,
- 116, 256,
- 159, 311,
- 247, 454,
- 308, 500,
- 359, 311,
- 1336, 256
+ 2,
+ -1, 176,
+ 553, 739
};
static int parser_goto_row66[] = {
- 1,
- -1, 169
+ 2,
+ -1, 177,
+ 561, 747
};
static int parser_goto_row67[] = {
- 53,
- -1, 170,
- 12, 70,
- 21, 70,
- 27, 70,
- 31, 70,
- 90, 70,
- 94, 70,
- 143, 70,
- 158, 309,
- 188, 384,
- 210, 70,
- 342, 70,
- 420, 70,
- 486, 70,
- 527, 70,
- 530, 70,
- 662, 70,
- 666, 822,
- 667, 70,
- 725, 384,
- 805, 822,
- 807, 70,
- 809, 822,
- 825, 70,
- 890, 70,
- 939, 70,
- 963, 70,
- 990, 384,
- 1049, 70,
- 1098, 822,
- 1241, 822,
- 1243, 70,
- 1252, 70,
- 1259, 384,
- 1364, 822,
- 1365, 822,
- 1384, 384,
- 1450, 384,
- 1530, 822,
- 1560, 70,
- 1564, 70,
- 1607, 384,
- 1612, 70,
- 1620, 70,
- 1621, 70,
- 1624, 70,
- 1629, 70,
- 1632, 70,
- 1654, 822,
- 1668, 70,
- 1675, 70,
- 1680, 70,
- 1685, 70
+ 2,
+ -1, 178,
+ 562, 748
};
static int parser_goto_row68[] = {
- 1,
- -1, 71
+ 3,
+ -1, 179,
+ 563, 749,
+ 564, 750
};
static int parser_goto_row69[] = {
- 26,
- -1, 72,
- 875, 1017,
- 1009, 1017,
- 1010, 1017,
- 1139, 1017,
- 1141, 1017,
- 1283, 1017,
- 1285, 1017,
- 1286, 1017,
- 1287, 1017,
- 1288, 1017,
- 1290, 1017,
- 1291, 1017,
- 1292, 1017,
- 1293, 1017,
- 1294, 1017,
- 1295, 1017,
- 1296, 1017,
- 1297, 1017,
- 1298, 1017,
- 1299, 1017,
- 1300, 1017,
- 1301, 1017,
- 1302, 1017,
- 1399, 1017,
- 1743, 1017
+ 3,
+ -1, 180,
+ 565, 751,
+ 566, 752
};
static int parser_goto_row70[] = {
- 1,
- -1, 385
+ 5,
+ -1, 181,
+ 567, 753,
+ 568, 754,
+ 569, 755,
+ 570, 756
};
static int parser_goto_row71[] = {
- 2,
- -1, 552,
- 554, 727
+ 15,
+ -1, 182,
+ 118, 280,
+ 119, 281,
+ 120, 282,
+ 167, 340,
+ 168, 341,
+ 169, 342,
+ 271, 496,
+ 337, 545,
+ 395, 340,
+ 396, 341,
+ 404, 342,
+ 1429, 280,
+ 1430, 281,
+ 1431, 282
};
static int parser_goto_row72[] = {
1,
- -1, 397
+ -1, 183
};
static int parser_goto_row73[] = {
- 2,
- -1, 567,
- 568, 737
+ 55,
+ -1, 184,
+ 12, 72,
+ 21, 72,
+ 27, 72,
+ 31, 72,
+ 92, 72,
+ 96, 72,
+ 151, 72,
+ 166, 338,
+ 203, 426,
+ 234, 72,
+ 376, 72,
+ 462, 72,
+ 531, 72,
+ 575, 72,
+ 578, 72,
+ 722, 72,
+ 726, 889,
+ 727, 72,
+ 782, 72,
+ 791, 426,
+ 871, 889,
+ 873, 72,
+ 875, 889,
+ 892, 72,
+ 962, 72,
+ 1011, 72,
+ 1036, 72,
+ 1063, 426,
+ 1131, 72,
+ 1180, 889,
+ 1330, 889,
+ 1332, 72,
+ 1342, 72,
+ 1349, 426,
+ 1460, 889,
+ 1461, 889,
+ 1466, 889,
+ 1481, 426,
+ 1550, 426,
+ 1632, 889,
+ 1663, 72,
+ 1667, 72,
+ 1710, 426,
+ 1715, 72,
+ 1723, 72,
+ 1724, 72,
+ 1727, 72,
+ 1732, 72,
+ 1735, 72,
+ 1757, 889,
+ 1771, 72,
+ 1778, 72,
+ 1783, 72,
+ 1788, 72
};
static int parser_goto_row74[] = {
- 4,
- -1, 398,
- 736, 878,
- 1135, 1268,
- 1481, 1537
+ 1,
+ -1, 73
};
static int parser_goto_row75[] = {
- 85,
- -1, 73,
- 25, 123,
- 48, 123,
- 114, 123,
- 223, 123,
- 225, 123,
- 226, 123,
- 227, 123,
- 228, 123,
- 245, 123,
- 445, 123,
- 446, 123,
- 463, 123,
- 465, 123,
- 466, 123,
- 467, 123,
- 468, 123,
- 470, 123,
- 471, 123,
- 472, 123,
- 473, 123,
- 474, 123,
- 475, 123,
- 476, 123,
- 477, 123,
- 478, 123,
- 479, 123,
- 480, 123,
- 481, 123,
- 482, 123,
- 598, 123,
- 600, 123,
- 635, 123,
- 769, 123,
- 770, 123,
- 771, 123,
- 772, 123,
- 804, 123,
- 817, 123,
- 875, 1018,
- 919, 123,
- 920, 123,
- 957, 123,
- 958, 123,
- 959, 123,
- 964, 123,
- 965, 123,
- 986, 123,
- 1009, 1018,
- 1010, 1018,
- 1109, 123,
- 1110, 123,
- 1139, 1018,
- 1141, 1018,
- 1215, 123,
- 1246, 123,
- 1247, 123,
- 1283, 1018,
- 1285, 1018,
- 1286, 1018,
- 1287, 1018,
- 1288, 1018,
- 1290, 1018,
- 1291, 1018,
- 1292, 1018,
- 1293, 1018,
- 1294, 1018,
- 1295, 1018,
- 1296, 1018,
- 1297, 1018,
- 1298, 1018,
- 1299, 1018,
- 1300, 1018,
- 1301, 1018,
- 1302, 1018,
- 1373, 123,
- 1374, 123,
- 1375, 123,
- 1376, 123,
- 1399, 1018,
- 1463, 123,
- 1474, 123,
- 1475, 123,
- 1496, 123,
- 1743, 1018
+ 31,
+ -1, 74,
+ 947, 1095,
+ 1085, 1095,
+ 1086, 1095,
+ 1087, 1095,
+ 1088, 1095,
+ 1223, 1095,
+ 1225, 1095,
+ 1373, 1095,
+ 1375, 1095,
+ 1376, 1095,
+ 1378, 1095,
+ 1379, 1095,
+ 1380, 1095,
+ 1381, 1095,
+ 1382, 1095,
+ 1383, 1095,
+ 1384, 1095,
+ 1385, 1095,
+ 1386, 1095,
+ 1387, 1095,
+ 1388, 1095,
+ 1389, 1095,
+ 1390, 1095,
+ 1391, 1095,
+ 1392, 1095,
+ 1393, 1095,
+ 1394, 1095,
+ 1395, 1095,
+ 1496, 1095,
+ 1846, 1095
};
static int parser_goto_row76[] = {
1,
- -1, 74
+ -1, 427
};
static int parser_goto_row77[] = {
- 1,
- -1, 75
+ 2,
+ -1, 603,
+ 605, 793
};
static int parser_goto_row78[] = {
- 2,
- -1, 218,
- 221, 427
+ 1,
+ -1, 439
};
static int parser_goto_row79[] = {
- 1,
- -1, 219
+ 2,
+ -1, 620,
+ 621, 803
};
static int parser_goto_row80[] = {
- 2,
- -1, 220,
- 221, 428
+ 4,
+ -1, 440,
+ 802, 950,
+ 1219, 1358,
+ 1583, 1640
};
static int parser_goto_row81[] = {
- 15,
- -1, 182,
- 145, 296,
- 188, 386,
- 725, 386,
- 990, 386,
- 1041, 1189,
- 1207, 1323,
- 1215, 1345,
- 1259, 386,
- 1384, 386,
- 1450, 386,
- 1496, 1550,
- 1571, 1638,
- 1607, 386,
- 1709, 1746
+ 93,
+ -1, 75,
+ 25, 127,
+ 49, 127,
+ 116, 127,
+ 247, 127,
+ 249, 127,
+ 250, 127,
+ 251, 127,
+ 252, 127,
+ 269, 127,
+ 487, 127,
+ 488, 127,
+ 505, 127,
+ 507, 127,
+ 508, 127,
+ 510, 127,
+ 511, 127,
+ 512, 127,
+ 513, 127,
+ 514, 127,
+ 515, 127,
+ 516, 127,
+ 517, 127,
+ 518, 127,
+ 519, 127,
+ 520, 127,
+ 521, 127,
+ 522, 127,
+ 523, 127,
+ 524, 127,
+ 525, 127,
+ 526, 127,
+ 527, 127,
+ 655, 127,
+ 657, 127,
+ 692, 127,
+ 835, 127,
+ 836, 127,
+ 837, 127,
+ 838, 127,
+ 870, 127,
+ 884, 127,
+ 947, 1096,
+ 991, 127,
+ 992, 127,
+ 1030, 127,
+ 1031, 127,
+ 1032, 127,
+ 1037, 127,
+ 1038, 127,
+ 1059, 127,
+ 1085, 1096,
+ 1086, 1096,
+ 1087, 1096,
+ 1088, 1096,
+ 1192, 127,
+ 1193, 127,
+ 1223, 1096,
+ 1225, 1096,
+ 1304, 127,
+ 1336, 127,
+ 1337, 127,
+ 1373, 1096,
+ 1375, 1096,
+ 1376, 1096,
+ 1378, 1096,
+ 1379, 1096,
+ 1380, 1096,
+ 1381, 1096,
+ 1382, 1096,
+ 1383, 1096,
+ 1384, 1096,
+ 1385, 1096,
+ 1386, 1096,
+ 1387, 1096,
+ 1388, 1096,
+ 1389, 1096,
+ 1390, 1096,
+ 1391, 1096,
+ 1392, 1096,
+ 1393, 1096,
+ 1394, 1096,
+ 1395, 1096,
+ 1470, 127,
+ 1471, 127,
+ 1472, 127,
+ 1473, 127,
+ 1496, 1096,
+ 1563, 127,
+ 1576, 127,
+ 1577, 127,
+ 1598, 127,
+ 1846, 1096
};
static int parser_goto_row82[] = {
- 45,
- -1, 541,
- 40, 183,
- 41, 184,
- 42, 185,
- 43, 186,
- 49, 198,
- 50, 199,
- 51, 200,
- 52, 201,
- 54, 202,
- 110, 248,
- 111, 249,
- 112, 250,
- 113, 251,
- 118, 258,
- 119, 259,
- 120, 260,
- 121, 261,
- 122, 262,
- 220, 426,
- 428, 607,
- 539, 718,
- 716, 861,
- 724, 869,
- 726, 871,
- 735, 876,
- 986, 1124,
- 1005, 1142,
- 1006, 1143,
- 1007, 1144,
- 1008, 1145,
- 1012, 1151,
- 1013, 1152,
- 1014, 1153,
- 1015, 1154,
- 1016, 1155,
- 1041, 1190,
- 1131, 1265,
- 1264, 1386,
- 1281, 1396,
- 1282, 1397,
- 1383, 1479,
- 1405, 1488,
- 1487, 1543,
- 1536, 1598
+ 1,
+ -1, 76
};
static int parser_goto_row83[] = {
1,
- -1, 348
+ -1, 77
};
static int parser_goto_row84[] = {
- 4,
- -1, 1036,
- 889, 1046,
- 1559, 1617,
- 1623, 1676
+ 2,
+ -1, 242,
+ 245, 469
};
static int parser_goto_row85[] = {
- 3,
- -1, 1037,
- 537, 711,
- 850, 980
+ 1,
+ -1, 243
};
static int parser_goto_row86[] = {
2,
- -1, 712,
- 988, 1127
+ -1, 244,
+ 245, 470
};
static int parser_goto_row87[] = {
- 1,
- -1, 1125
+ 16,
+ -1, 196,
+ 153, 325,
+ 203, 428,
+ 383, 588,
+ 791, 428,
+ 1063, 428,
+ 1123, 1278,
+ 1296, 1416,
+ 1304, 1441,
+ 1349, 428,
+ 1481, 428,
+ 1550, 428,
+ 1598, 1653,
+ 1674, 1741,
+ 1710, 428,
+ 1812, 1849
};
static int parser_goto_row88[] = {
- 2,
- -1, 858,
- 859, 989
+ 45,
+ -1, 592,
+ 40, 197,
+ 41, 198,
+ 42, 199,
+ 43, 200,
+ 50, 222,
+ 51, 223,
+ 52, 224,
+ 53, 225,
+ 55, 226,
+ 112, 272,
+ 113, 273,
+ 114, 274,
+ 115, 275,
+ 122, 284,
+ 123, 285,
+ 124, 286,
+ 125, 287,
+ 126, 288,
+ 244, 468,
+ 470, 664,
+ 590, 784,
+ 779, 929,
+ 790, 941,
+ 792, 943,
+ 801, 948,
+ 1059, 1207,
+ 1081, 1226,
+ 1082, 1227,
+ 1083, 1228,
+ 1084, 1229,
+ 1090, 1237,
+ 1091, 1238,
+ 1092, 1239,
+ 1093, 1240,
+ 1094, 1241,
+ 1123, 1279,
+ 1215, 1355,
+ 1354, 1483,
+ 1371, 1493,
+ 1372, 1494,
+ 1480, 1581,
+ 1500, 1590,
+ 1589, 1646,
+ 1639, 1701
};
static int parser_goto_row89[] = {
- 4,
- -1, 1184,
- 1047, 1202,
- 1618, 1671,
- 1677, 1719
+ 1,
+ -1, 382
};
static int parser_goto_row90[] = {
- 2,
- -1, 1185,
- 1187, 1308
+ 4,
+ -1, 1118,
+ 961, 1128,
+ 1662, 1720,
+ 1726, 1779
};
static int parser_goto_row91[] = {
- 1,
- -1, 1058
+ 3,
+ -1, 1119,
+ 585, 774,
+ 918, 1053
};
static int parser_goto_row92[] = {
- 4,
- -1, 1128,
- 1259, 1382,
- 1450, 1510,
- 1607, 1662
+ 2,
+ -1, 775,
+ 1061, 1210
};
static int parser_goto_row93[] = {
- 3,
- -1, 1262,
- 1263, 1385,
- 1458, 1385
+ 1,
+ -1, 1208
};
static int parser_goto_row94[] = {
- 4,
- -1, 1129,
- 188, 387,
- 725, 870,
- 1384, 1480
+ 2,
+ -1, 926,
+ 927, 1062
};
static int parser_goto_row95[] = {
4,
- -1, 716,
- 851, 981,
- 855, 986,
- 1427, 1496
+ -1, 1273,
+ 1129, 1291,
+ 1721, 1774,
+ 1780, 1822
};
static int parser_goto_row96[] = {
- 85,
- -1, 124,
- 48, 196,
- 105, 243,
- 117, 257,
- 160, 312,
- 177, 312,
- 223, 430,
- 226, 438,
- 228, 443,
- 263, 461,
- 265, 462,
- 288, 484,
- 334, 430,
- 336, 524,
- 337, 525,
- 374, 196,
- 446, 623,
- 453, 629,
- 485, 660,
- 499, 672,
- 526, 699,
- 557, 438,
- 559, 443,
- 598, 761,
- 600, 766,
- 654, 793,
- 656, 795,
- 694, 761,
- 695, 842,
- 730, 623,
- 770, 912,
- 772, 917,
- 797, 933,
- 798, 934,
- 817, 196,
- 844, 972,
- 845, 973,
- 852, 982,
- 865, 766,
- 920, 1079,
- 925, 1082,
- 935, 1089,
- 957, 430,
- 959, 438,
- 965, 443,
- 974, 1113,
- 983, 1120,
- 984, 1121,
- 995, 912,
- 996, 917,
- 1000, 1137,
- 1011, 1150,
- 1083, 1231,
- 1084, 1232,
- 1110, 623,
- 1122, 1258,
- 1134, 1079,
- 1156, 1279,
- 1158, 1280,
- 1181, 1304,
- 1233, 1361,
- 1246, 761,
- 1247, 766,
- 1274, 1393,
- 1305, 1426,
- 1337, 1453,
- 1374, 912,
- 1376, 917,
- 1420, 1489,
- 1422, 1491,
- 1455, 1519,
- 1459, 1525,
- 1475, 1079,
- 1493, 1546,
- 1494, 1547,
- 1526, 1593,
- 1539, 1600,
- 1548, 1606,
- 1580, 1643,
- 1601, 1656,
- 1602, 1657,
- 1645, 1696,
- 1646, 1699,
- 1658, 1706,
- 1700, 1741
+ 2,
+ -1, 1274,
+ 1276, 1401
};
static int parser_goto_row97[] = {
- 34,
- -1, 125,
- 48, 197,
- 223, 431,
- 225, 435,
- 226, 439,
- 227, 440,
- 228, 444,
- 445, 620,
- 446, 624,
- 598, 762,
- 600, 767,
- 769, 909,
- 770, 913,
- 771, 914,
- 772, 918,
- 804, 937,
- 817, 955,
- 919, 1076,
- 920, 1080,
- 957, 1101,
- 958, 1102,
- 959, 1103,
- 964, 1107,
- 965, 1108,
- 1109, 1250,
- 1110, 1251,
- 1246, 1371,
- 1247, 1372,
- 1373, 1470,
- 1374, 1471,
- 1375, 1472,
- 1376, 1473,
- 1474, 1533,
- 1475, 1534
+ 1,
+ -1, 1140
};
static int parser_goto_row98[] = {
- 6,
- -1, 215,
- 137, 287,
- 170, 333,
- 254, 287,
- 309, 333,
- 1351, 1457
+ 4,
+ -1, 1211,
+ 1349, 1479,
+ 1550, 1612,
+ 1710, 1765
};
static int parser_goto_row99[] = {
- 1,
- -1, -1
+ 3,
+ -1, 1352,
+ 1353, 1482,
+ 1558, 1482
};
static int parser_goto_row100[] = {
4,
- -1, 460,
- 421, 597,
- 450, 626,
- 611, 776
+ -1, 1212,
+ 203, 429,
+ 791, 942,
+ 1481, 1582
};
static int parser_goto_row101[] = {
- 2,
- -1, 790,
- 791, 930
+ 4,
+ -1, 779,
+ 919, 1054,
+ 923, 1059,
+ 1527, 1598
};
static int parser_goto_row102[] = {
- 3,
- -1, 302,
- 563, 733,
- 948, 1096
+ 86,
+ -1, 343,
+ 25, 128,
+ 49, 220,
+ 107, 267,
+ 121, 283,
+ 161, 128,
+ 247, 472,
+ 250, 480,
+ 252, 485,
+ 289, 503,
+ 291, 504,
+ 317, 529,
+ 368, 472,
+ 370, 572,
+ 371, 573,
+ 415, 220,
+ 488, 680,
+ 495, 686,
+ 530, 720,
+ 544, 732,
+ 574, 762,
+ 610, 480,
+ 612, 485,
+ 655, 827,
+ 657, 832,
+ 714, 859,
+ 716, 861,
+ 757, 827,
+ 758, 910,
+ 796, 680,
+ 836, 984,
+ 838, 989,
+ 863, 1005,
+ 864, 1006,
+ 870, 128,
+ 884, 220,
+ 912, 1045,
+ 913, 1046,
+ 920, 1055,
+ 937, 832,
+ 992, 1161,
+ 997, 1164,
+ 1007, 1171,
+ 1030, 472,
+ 1032, 480,
+ 1038, 485,
+ 1047, 1196,
+ 1056, 1203,
+ 1057, 1204,
+ 1071, 984,
+ 1072, 989,
+ 1076, 1221,
+ 1089, 1236,
+ 1165, 1320,
+ 1166, 1321,
+ 1193, 680,
+ 1205, 1348,
+ 1218, 1161,
+ 1242, 1369,
+ 1244, 1370,
+ 1270, 1397,
+ 1322, 1457,
+ 1336, 827,
+ 1337, 832,
+ 1364, 1490,
+ 1398, 1526,
+ 1432, 1553,
+ 1471, 984,
+ 1473, 989,
+ 1520, 1591,
+ 1522, 1593,
+ 1555, 1621,
+ 1559, 1627,
+ 1577, 1161,
+ 1595, 1649,
+ 1596, 1650,
+ 1628, 1696,
+ 1642, 1703,
+ 1651, 1709,
+ 1683, 1746,
+ 1704, 1759,
+ 1705, 1760,
+ 1748, 1799,
+ 1749, 1802,
+ 1761, 1809,
+ 1803, 1844
};
static int parser_goto_row103[] = {
- 2,
- -1, 303,
- 493, 668
+ 34,
+ -1, 129,
+ 49, 221,
+ 247, 473,
+ 249, 477,
+ 250, 481,
+ 251, 482,
+ 252, 486,
+ 487, 677,
+ 488, 681,
+ 655, 828,
+ 657, 833,
+ 835, 981,
+ 836, 985,
+ 837, 986,
+ 838, 990,
+ 870, 1009,
+ 884, 1028,
+ 991, 1158,
+ 992, 1162,
+ 1030, 1184,
+ 1031, 1185,
+ 1032, 1186,
+ 1037, 1190,
+ 1038, 1191,
+ 1192, 1340,
+ 1193, 1341,
+ 1336, 1468,
+ 1337, 1469,
+ 1470, 1572,
+ 1471, 1573,
+ 1472, 1574,
+ 1473, 1575,
+ 1576, 1636,
+ 1577, 1637
};
static int parser_goto_row104[] = {
- 2,
- -1, 740,
- 572, 743
+ 6,
+ -1, 239,
+ 145, 316,
+ 184, 367,
+ 278, 316,
+ 338, 367,
+ 1447, 1557
};
static int parser_goto_row105[] = {
- 146,
- -1, 171,
- 12, 76,
- 21, 76,
- 25, 126,
- 27, 76,
- 31, 76,
- 48, 126,
- 90, 76,
- 94, 76,
- 114, 253,
- 143, 76,
- 158, 310,
- 188, 388,
- 210, 76,
- 223, 126,
- 225, 126,
- 226, 126,
- 227, 126,
- 228, 126,
- 245, 126,
- 342, 76,
- 420, 76,
- 422, 601,
- 445, 126,
- 446, 126,
- 463, 126,
- 465, 126,
- 466, 126,
- 467, 126,
- 468, 126,
- 470, 126,
- 471, 126,
- 472, 126,
- 473, 126,
- 474, 126,
- 475, 126,
- 476, 126,
- 477, 126,
- 478, 126,
- 479, 126,
- 480, 126,
- 481, 126,
- 482, 126,
- 483, 657,
- 486, 76,
- 523, 696,
- 527, 76,
- 530, 76,
- 598, 126,
- 600, 126,
- 631, 788,
- 635, 126,
- 662, 76,
- 666, 823,
- 667, 76,
- 673, 840,
- 723, 601,
- 725, 388,
- 769, 126,
- 770, 126,
- 771, 126,
- 772, 126,
- 804, 126,
- 805, 823,
- 807, 76,
- 809, 823,
- 817, 126,
- 825, 76,
- 875, 1019,
- 890, 76,
- 919, 126,
- 920, 126,
- 939, 76,
- 957, 126,
- 958, 126,
- 959, 126,
- 963, 76,
- 964, 126,
- 965, 126,
- 990, 388,
- 1009, 1147,
- 1010, 1019,
- 1049, 76,
- 1098, 823,
- 1100, 601,
- 1109, 126,
- 1110, 126,
- 1139, 1019,
- 1141, 1019,
- 1215, 1346,
- 1241, 823,
- 1243, 76,
- 1246, 126,
- 1247, 126,
- 1252, 76,
- 1259, 388,
- 1283, 1019,
- 1285, 1019,
- 1286, 1019,
- 1287, 1019,
- 1288, 1019,
- 1290, 1019,
- 1291, 1019,
- 1292, 1019,
- 1293, 1019,
- 1294, 1019,
- 1295, 1019,
- 1296, 1019,
- 1297, 1019,
- 1298, 1019,
- 1299, 1019,
- 1300, 1019,
- 1301, 1019,
- 1302, 1019,
- 1303, 1423,
- 1364, 823,
- 1365, 823,
- 1373, 126,
- 1374, 126,
- 1375, 126,
- 1376, 126,
- 1384, 388,
- 1395, 1485,
- 1399, 1019,
- 1450, 388,
- 1463, 126,
- 1474, 126,
- 1475, 126,
- 1496, 1346,
- 1520, 1581,
- 1530, 823,
- 1560, 76,
- 1564, 76,
- 1607, 388,
- 1612, 76,
- 1620, 76,
- 1621, 76,
- 1624, 76,
- 1629, 76,
- 1632, 76,
- 1654, 823,
- 1668, 76,
- 1675, 76,
- 1680, 76,
- 1685, 76,
- 1743, 1019
+ 1,
+ -1, -1
};
static int parser_goto_row106[] = {
- 1,
- -1, 757
+ 4,
+ -1, 502,
+ 463, 654,
+ 492, 683,
+ 668, 842
};
static int parser_goto_row107[] = {
- 6,
- -1, 1201,
- 415, 592,
- 1319, 1434,
- 1440, 1501,
- 1442, 1504,
- 1444, 1507
+ 2,
+ -1, 856,
+ 857, 1002
};
static int parser_goto_row108[] = {
- 22,
- -1, 77,
- 79, 229,
- 139, 229,
- 173, 229,
- 393, 229,
- 594, 229,
- 603, 229,
- 659, 229,
- 698, 229,
- 741, 229,
- 759, 229,
- 833, 229,
- 854, 229,
- 868, 229,
- 927, 229,
- 1032, 229,
- 1035, 229,
- 1249, 229,
- 1355, 229,
- 1425, 229,
- 1541, 229,
- 1584, 229
+ 3,
+ -1, 331,
+ 616, 799,
+ 1020, 1178
};
static int parser_goto_row109[] = {
- 175,
- -1, 172,
+ 2,
+ -1, 332,
+ 538, 728
+};
+static int parser_goto_row110[] = {
+ 2,
+ -1, 806,
+ 625, 809
+};
+static int parser_goto_row111[] = {
+ 156,
+ -1, 185,
12, 78,
21, 78,
- 25, 127,
+ 25, 130,
27, 78,
31, 78,
- 48, 127,
- 79, 230,
- 90, 78,
- 94, 78,
- 114, 127,
- 139, 289,
- 143, 78,
- 173, 338,
- 188, 389,
- 210, 78,
- 223, 127,
- 225, 127,
- 226, 127,
- 227, 127,
- 228, 127,
- 245, 127,
- 342, 78,
- 393, 560,
- 415, 593,
- 420, 78,
- 422, 602,
- 445, 127,
- 446, 127,
- 463, 127,
- 465, 127,
- 466, 127,
- 467, 127,
- 468, 127,
- 470, 127,
- 471, 127,
- 472, 127,
- 473, 127,
- 474, 127,
- 475, 127,
- 476, 127,
- 477, 127,
- 478, 127,
- 479, 127,
- 480, 127,
- 481, 127,
- 482, 127,
- 483, 658,
- 486, 78,
- 523, 697,
- 527, 78,
- 530, 78,
- 594, 754,
- 596, 758,
- 598, 127,
- 600, 127,
- 603, 773,
- 631, 658,
- 635, 127,
- 659, 799,
- 662, 78,
- 666, 824,
- 667, 78,
- 673, 697,
- 698, 846,
- 709, 853,
- 723, 866,
- 725, 389,
- 759, 900,
- 769, 127,
- 770, 127,
- 771, 127,
- 772, 127,
- 787, 926,
- 804, 127,
- 805, 824,
- 807, 78,
- 809, 824,
- 817, 127,
- 825, 78,
- 833, 966,
- 854, 985,
- 868, 997,
- 875, 1020,
- 890, 78,
- 919, 127,
- 920, 127,
- 927, 1085,
- 939, 78,
- 957, 127,
- 958, 127,
- 959, 127,
- 963, 78,
- 964, 127,
- 965, 127,
- 990, 389,
- 1009, 1020,
- 1010, 1020,
- 1032, 1182,
- 1045, 593,
- 1049, 78,
- 1098, 824,
- 1100, 1248,
- 1109, 127,
- 1110, 127,
- 1139, 1020,
- 1141, 1020,
- 1215, 1347,
- 1241, 824,
- 1243, 78,
- 1246, 127,
- 1247, 127,
- 1249, 1377,
- 1252, 78,
- 1259, 389,
- 1283, 1020,
- 1285, 1020,
- 1286, 1020,
- 1287, 1020,
- 1288, 1020,
- 1290, 1020,
- 1291, 1020,
- 1292, 1020,
- 1293, 1020,
- 1294, 1020,
- 1295, 1020,
- 1296, 1020,
- 1297, 1020,
- 1298, 1020,
- 1299, 1020,
- 1300, 1020,
- 1301, 1020,
- 1302, 1020,
- 1303, 1424,
- 1319, 593,
- 1355, 1460,
- 1364, 824,
- 1365, 824,
- 1373, 127,
- 1374, 127,
- 1375, 127,
- 1376, 127,
- 1384, 389,
- 1395, 1424,
- 1399, 1020,
- 1425, 1495,
- 1431, 593,
- 1440, 593,
- 1442, 593,
- 1444, 593,
- 1450, 389,
- 1463, 127,
- 1474, 127,
- 1475, 127,
- 1484, 1540,
- 1496, 1347,
- 1520, 1582,
- 1530, 824,
- 1541, 1603,
- 1560, 78,
- 1564, 78,
- 1584, 1647,
- 1607, 389,
- 1612, 78,
- 1620, 78,
- 1621, 78,
- 1624, 78,
- 1629, 78,
- 1632, 78,
- 1654, 824,
- 1668, 78,
- 1675, 78,
- 1680, 78,
- 1685, 78,
- 1743, 1020
+ 49, 130,
+ 92, 78,
+ 96, 78,
+ 116, 277,
+ 151, 78,
+ 166, 339,
+ 203, 430,
+ 234, 78,
+ 247, 130,
+ 249, 130,
+ 250, 130,
+ 251, 130,
+ 252, 130,
+ 269, 130,
+ 376, 78,
+ 462, 78,
+ 464, 658,
+ 487, 130,
+ 488, 130,
+ 505, 130,
+ 507, 130,
+ 508, 130,
+ 510, 130,
+ 511, 130,
+ 512, 130,
+ 513, 130,
+ 514, 130,
+ 515, 130,
+ 516, 130,
+ 517, 130,
+ 518, 130,
+ 519, 130,
+ 520, 130,
+ 521, 130,
+ 522, 130,
+ 523, 130,
+ 524, 130,
+ 525, 130,
+ 526, 130,
+ 527, 130,
+ 528, 717,
+ 531, 78,
+ 571, 759,
+ 575, 78,
+ 578, 78,
+ 655, 130,
+ 657, 130,
+ 688, 854,
+ 692, 130,
+ 722, 78,
+ 726, 890,
+ 727, 78,
+ 733, 908,
+ 782, 78,
+ 789, 658,
+ 791, 430,
+ 835, 130,
+ 836, 130,
+ 837, 130,
+ 838, 130,
+ 870, 130,
+ 871, 890,
+ 873, 78,
+ 875, 890,
+ 884, 130,
+ 892, 78,
+ 947, 1097,
+ 962, 78,
+ 991, 130,
+ 992, 130,
+ 1011, 78,
+ 1030, 130,
+ 1031, 130,
+ 1032, 130,
+ 1036, 78,
+ 1037, 130,
+ 1038, 130,
+ 1063, 430,
+ 1085, 1231,
+ 1086, 1097,
+ 1087, 1097,
+ 1088, 1097,
+ 1131, 78,
+ 1180, 890,
+ 1183, 658,
+ 1192, 130,
+ 1193, 130,
+ 1223, 1097,
+ 1225, 1097,
+ 1304, 1442,
+ 1330, 890,
+ 1332, 78,
+ 1336, 130,
+ 1337, 130,
+ 1342, 78,
+ 1349, 430,
+ 1373, 1097,
+ 1375, 1097,
+ 1376, 1097,
+ 1378, 1097,
+ 1379, 1097,
+ 1380, 1097,
+ 1381, 1097,
+ 1382, 1097,
+ 1383, 1097,
+ 1384, 1097,
+ 1385, 1097,
+ 1386, 1097,
+ 1387, 1097,
+ 1388, 1097,
+ 1389, 1097,
+ 1390, 1097,
+ 1391, 1097,
+ 1392, 1097,
+ 1393, 1097,
+ 1394, 1097,
+ 1395, 1097,
+ 1396, 1523,
+ 1460, 890,
+ 1461, 890,
+ 1466, 890,
+ 1470, 130,
+ 1471, 130,
+ 1472, 130,
+ 1473, 130,
+ 1481, 430,
+ 1492, 1587,
+ 1496, 1097,
+ 1550, 430,
+ 1563, 130,
+ 1576, 130,
+ 1577, 130,
+ 1598, 1442,
+ 1622, 1684,
+ 1632, 890,
+ 1663, 78,
+ 1667, 78,
+ 1710, 430,
+ 1715, 78,
+ 1723, 78,
+ 1724, 78,
+ 1727, 78,
+ 1732, 78,
+ 1735, 78,
+ 1757, 890,
+ 1771, 78,
+ 1778, 78,
+ 1783, 78,
+ 1788, 78,
+ 1846, 1097
};
-static int parser_goto_row110[] = {
+static int parser_goto_row112[] = {
+ 1,
+ -1, 823
+};
+static int parser_goto_row113[] = {
+ 6,
+ -1, 1290,
+ 457, 649,
+ 1412, 1534,
+ 1540, 1603,
+ 1542, 1606,
+ 1544, 1609
+};
+static int parser_goto_row114[] = {
+ 22,
+ -1, 79,
+ 81, 253,
+ 147, 253,
+ 187, 253,
+ 435, 253,
+ 651, 253,
+ 660, 253,
+ 719, 253,
+ 761, 253,
+ 807, 253,
+ 825, 253,
+ 901, 253,
+ 922, 253,
+ 940, 253,
+ 999, 253,
+ 1114, 253,
+ 1117, 253,
+ 1339, 253,
+ 1451, 253,
+ 1525, 253,
+ 1644, 253,
+ 1687, 253
+};
+static int parser_goto_row115[] = {
+ 185,
+ -1, 186,
+ 12, 80,
+ 21, 80,
+ 25, 131,
+ 27, 80,
+ 31, 80,
+ 49, 131,
+ 81, 254,
+ 92, 80,
+ 96, 80,
+ 116, 131,
+ 147, 318,
+ 151, 80,
+ 187, 372,
+ 203, 431,
+ 234, 80,
+ 247, 131,
+ 249, 131,
+ 250, 131,
+ 251, 131,
+ 252, 131,
+ 269, 131,
+ 376, 80,
+ 435, 613,
+ 457, 650,
+ 462, 80,
+ 464, 659,
+ 487, 131,
+ 488, 131,
+ 505, 131,
+ 507, 131,
+ 508, 131,
+ 510, 131,
+ 511, 131,
+ 512, 131,
+ 513, 131,
+ 514, 131,
+ 515, 131,
+ 516, 131,
+ 517, 131,
+ 518, 131,
+ 519, 131,
+ 520, 131,
+ 521, 131,
+ 522, 131,
+ 523, 131,
+ 524, 131,
+ 525, 131,
+ 526, 131,
+ 527, 131,
+ 528, 718,
+ 531, 80,
+ 571, 760,
+ 575, 80,
+ 578, 80,
+ 651, 820,
+ 653, 824,
+ 655, 131,
+ 657, 131,
+ 660, 839,
+ 688, 718,
+ 692, 131,
+ 719, 865,
+ 722, 80,
+ 726, 891,
+ 727, 80,
+ 733, 760,
+ 761, 914,
+ 772, 921,
+ 782, 80,
+ 789, 938,
+ 791, 431,
+ 825, 972,
+ 835, 131,
+ 836, 131,
+ 837, 131,
+ 838, 131,
+ 853, 998,
+ 870, 131,
+ 871, 891,
+ 873, 80,
+ 875, 891,
+ 884, 131,
+ 892, 80,
+ 901, 1039,
+ 922, 1058,
+ 940, 1073,
+ 947, 1098,
+ 962, 80,
+ 991, 131,
+ 992, 131,
+ 999, 1167,
+ 1011, 80,
+ 1030, 131,
+ 1031, 131,
+ 1032, 131,
+ 1036, 80,
+ 1037, 131,
+ 1038, 131,
+ 1063, 431,
+ 1085, 1098,
+ 1086, 1098,
+ 1087, 1098,
+ 1088, 1098,
+ 1114, 1271,
+ 1127, 650,
+ 1131, 80,
+ 1180, 891,
+ 1183, 1338,
+ 1192, 131,
+ 1193, 131,
+ 1223, 1098,
+ 1225, 1098,
+ 1304, 1443,
+ 1330, 891,
+ 1332, 80,
+ 1336, 131,
+ 1337, 131,
+ 1339, 1474,
+ 1342, 80,
+ 1349, 431,
+ 1373, 1098,
+ 1375, 1098,
+ 1376, 1098,
+ 1378, 1098,
+ 1379, 1098,
+ 1380, 1098,
+ 1381, 1098,
+ 1382, 1098,
+ 1383, 1098,
+ 1384, 1098,
+ 1385, 1098,
+ 1386, 1098,
+ 1387, 1098,
+ 1388, 1098,
+ 1389, 1098,
+ 1390, 1098,
+ 1391, 1098,
+ 1392, 1098,
+ 1393, 1098,
+ 1394, 1098,
+ 1395, 1098,
+ 1396, 1524,
+ 1412, 650,
+ 1451, 1560,
+ 1460, 891,
+ 1461, 891,
+ 1466, 891,
+ 1470, 131,
+ 1471, 131,
+ 1472, 131,
+ 1473, 131,
+ 1481, 431,
+ 1492, 1524,
+ 1496, 1098,
+ 1525, 1597,
+ 1531, 650,
+ 1540, 650,
+ 1542, 650,
+ 1544, 650,
+ 1550, 431,
+ 1563, 131,
+ 1576, 131,
+ 1577, 131,
+ 1586, 1643,
+ 1598, 1443,
+ 1622, 1685,
+ 1632, 891,
+ 1644, 1706,
+ 1663, 80,
+ 1667, 80,
+ 1687, 1750,
+ 1710, 431,
+ 1715, 80,
+ 1723, 80,
+ 1724, 80,
+ 1727, 80,
+ 1732, 80,
+ 1735, 80,
+ 1757, 891,
+ 1771, 80,
+ 1778, 80,
+ 1783, 80,
+ 1788, 80,
+ 1846, 1098
+};
+static int parser_goto_row116[] = {
12,
- -1, 1204,
- 1205, 1321,
- 1619, 1672,
- 1628, 1681,
- 1667, 1713,
- 1673, 1716,
- 1674, 1717,
- 1682, 1723,
- 1684, 1724,
- 1714, 1751,
- 1718, 1752,
- 1725, 1755
+ -1, 1293,
+ 1294, 1414,
+ 1722, 1775,
+ 1731, 1784,
+ 1770, 1816,
+ 1776, 1819,
+ 1777, 1820,
+ 1785, 1826,
+ 1787, 1827,
+ 1817, 1854,
+ 1821, 1855,
+ 1828, 1858
};
-static int parser_goto_row111[] = {
+static int parser_goto_row117[] = {
14,
- -1, 83,
- 742, 883,
- 880, 1038,
- 881, 1039,
- 884, 1040,
- 889, 1047,
- 1056, 1210,
- 1496, 1551,
- 1550, 1608,
- 1552, 1609,
- 1559, 1618,
- 1623, 1677,
- 1709, 1747,
- 1746, 1766
+ -1, 85,
+ 808, 955,
+ 952, 1120,
+ 953, 1121,
+ 956, 1122,
+ 961, 1129,
+ 1138, 1299,
+ 1598, 1654,
+ 1653, 1711,
+ 1655, 1712,
+ 1662, 1721,
+ 1726, 1780,
+ 1812, 1850,
+ 1849, 1869
};
-static int parser_goto_row112[] = {
- 54,
- -1, 146,
+static int parser_goto_row118[] = {
+ 56,
+ -1, 154,
0, 11,
4, 11,
15, 11,
22, 11,
23, 11,
24, 11,
- 27, 143,
- 31, 143,
- 61, 210,
- 86, 11,
- 87, 11,
- 91, 11,
- 100, 11,
- 101, 11,
+ 27, 151,
+ 31, 151,
+ 62, 234,
+ 88, 11,
+ 89, 11,
+ 93, 11,
+ 102, 11,
103, 11,
- 211, 420,
- 233, 11,
- 239, 11,
- 292, 486,
- 342, 530,
- 487, 662,
- 527, 530,
- 666, 825,
- 667, 143,
- 805, 939,
- 807, 530,
- 809, 939,
- 890, 530,
- 961, 210,
- 963, 530,
- 1049, 530,
- 1098, 1243,
- 1105, 420,
- 1241, 1243,
- 1252, 143,
- 1364, 825,
- 1365, 939,
- 1530, 1243,
- 1560, 530,
- 1564, 530,
- 1612, 530,
- 1620, 530,
- 1621, 530,
- 1624, 530,
- 1629, 530,
- 1632, 530,
- 1654, 939,
- 1668, 530,
- 1675, 530,
- 1680, 530,
- 1685, 530
+ 105, 11,
+ 235, 462,
+ 257, 11,
+ 263, 11,
+ 321, 531,
+ 376, 578,
+ 532, 722,
+ 575, 578,
+ 726, 892,
+ 727, 151,
+ 782, 151,
+ 871, 1011,
+ 873, 578,
+ 875, 1011,
+ 962, 578,
+ 1034, 234,
+ 1036, 578,
+ 1131, 578,
+ 1180, 1332,
+ 1188, 462,
+ 1330, 1332,
+ 1342, 151,
+ 1460, 892,
+ 1461, 1011,
+ 1466, 1011,
+ 1632, 1332,
+ 1663, 578,
+ 1667, 578,
+ 1715, 578,
+ 1723, 578,
+ 1724, 578,
+ 1727, 578,
+ 1732, 578,
+ 1735, 578,
+ 1757, 1011,
+ 1771, 578,
+ 1778, 578,
+ 1783, 578,
+ 1788, 578
};
-static int parser_goto_row113[] = {
- 249,
- -1, 94,
+static int parser_goto_row119[] = {
+ 264,
+ -1, 96,
0, 12,
4, 21,
15, 21,
- 16, 90,
+ 16, 92,
22, 21,
- 23, 90,
- 29, 147,
- 30, 148,
- 32, 151,
- 33, 152,
- 39, 180,
- 45, 188,
- 46, 189,
- 75, 222,
- 86, 90,
- 100, 90,
- 106, 244,
- 107, 245,
- 108, 246,
- 109, 247,
- 115, 255,
- 154, 305,
- 155, 306,
- 156, 307,
- 157, 308,
- 190, 399,
- 191, 400,
- 203, 405,
- 204, 406,
- 205, 407,
- 206, 408,
- 212, 421,
- 214, 422,
- 219, 425,
- 242, 450,
- 252, 455,
- 266, 463,
- 267, 465,
- 268, 466,
- 269, 467,
- 270, 468,
- 271, 469,
- 272, 470,
- 273, 471,
- 274, 472,
- 275, 473,
- 276, 474,
- 277, 475,
- 278, 476,
- 279, 477,
- 280, 478,
- 281, 479,
- 282, 480,
- 283, 481,
- 284, 482,
- 286, 483,
- 294, 488,
- 297, 491,
- 298, 492,
- 300, 493,
- 302, 494,
- 304, 496,
- 313, 503,
- 314, 505,
- 315, 506,
- 316, 507,
- 317, 508,
- 318, 509,
- 319, 510,
- 320, 511,
- 321, 512,
- 322, 513,
- 323, 514,
- 324, 515,
- 325, 516,
- 326, 517,
- 327, 518,
- 328, 519,
- 329, 520,
- 330, 521,
- 331, 522,
- 332, 523,
- 346, 537,
- 357, 189,
- 385, 550,
- 387, 553,
- 394, 562,
- 395, 563,
- 396, 564,
- 409, 571,
- 410, 572,
- 417, 596,
- 429, 608,
- 434, 611,
- 451, 627,
- 457, 631,
- 459, 632,
- 464, 635,
- 489, 664,
- 495, 670,
- 497, 671,
- 501, 673,
- 504, 675,
- 532, 705,
- 536, 709,
- 540, 719,
- 549, 723,
- 551, 725,
- 566, 736,
- 592, 750,
- 599, 763,
- 606, 774,
- 628, 787,
- 655, 794,
- 665, 802,
- 668, 836,
- 669, 837,
- 703, 847,
- 706, 850,
- 711, 856,
- 717, 862,
- 732, 873,
- 733, 874,
- 734, 875,
- 738, 879,
- 746, 886,
- 747, 887,
- 749, 894,
- 786, 924,
- 789, 929,
- 806, 943,
- 808, 945,
- 810, 948,
- 839, 970,
- 849, 979,
- 857, 988,
- 860, 990,
- 863, 992,
- 877, 1033,
- 888, 1045,
- 896, 1052,
- 897, 1059,
- 901, 1062,
- 902, 1063,
- 931, 1087,
- 932, 1088,
- 956, 1100,
- 969, 1111,
- 975, 1114,
- 976, 1115,
- 980, 1118,
- 991, 1130,
- 998, 1135,
- 999, 1136,
- 1001, 1138,
- 1002, 1139,
- 1003, 1140,
- 1004, 1141,
- 1021, 1159,
- 1038, 1186,
- 1043, 1194,
- 1047, 1186,
- 1057, 1059,
- 1060, 1218,
- 1081, 1230,
- 1086, 1234,
- 1093, 1238,
- 1094, 1239,
- 1096, 1240,
- 1112, 1253,
- 1123, 1259,
- 1128, 1260,
- 1146, 1276,
- 1160, 1283,
- 1161, 1285,
- 1162, 1286,
- 1163, 1287,
- 1164, 1288,
- 1165, 1289,
- 1166, 1290,
- 1167, 1291,
- 1168, 1292,
- 1169, 1293,
- 1170, 1294,
- 1171, 1295,
- 1172, 1296,
- 1173, 1297,
- 1174, 1298,
- 1175, 1299,
- 1176, 1300,
- 1177, 1301,
- 1178, 1302,
- 1180, 1303,
- 1187, 1186,
- 1191, 1312,
- 1192, 1313,
- 1195, 1315,
- 1208, 1326,
- 1220, 1356,
- 1221, 1357,
- 1236, 1362,
- 1237, 1363,
- 1261, 1384,
- 1267, 1387,
- 1269, 1388,
- 1270, 1389,
- 1278, 1395,
- 1284, 1399,
- 1311, 1429,
- 1316, 1431,
- 1324, 1436,
- 1327, 1439,
- 1335, 1450,
- 1360, 1463,
- 1366, 1469,
- 1380, 1477,
- 1382, 1478,
- 1392, 1484,
- 1421, 1490,
- 1433, 1498,
- 1442, 750,
- 1444, 750,
- 1445, 1508,
- 1456, 1520,
- 1461, 1527,
- 1464, 1529,
- 1482, 1538,
- 1501, 750,
- 1504, 750,
- 1507, 750,
- 1532, 1597,
- 1544, 1604,
- 1545, 1605,
- 1549, 1607,
- 1553, 1610,
- 1555, 1611,
- 1599, 1655,
- 1618, 1186,
- 1625, 1679,
- 1660, 1707,
- 1661, 1708,
- 1664, 1710,
- 1665, 1711,
- 1666, 1712,
- 1677, 1186,
- 1705, 1743,
- 1744, 1765,
- 1748, 1767
+ 23, 92,
+ 29, 155,
+ 30, 156,
+ 32, 159,
+ 33, 160,
+ 39, 194,
+ 44, 201,
+ 46, 203,
+ 47, 204,
+ 77, 246,
+ 88, 92,
+ 102, 92,
+ 108, 268,
+ 109, 269,
+ 110, 270,
+ 111, 271,
+ 117, 279,
+ 162, 334,
+ 163, 335,
+ 164, 336,
+ 165, 337,
+ 205, 441,
+ 206, 442,
+ 227, 447,
+ 228, 448,
+ 229, 449,
+ 230, 450,
+ 236, 463,
+ 238, 464,
+ 243, 467,
+ 266, 492,
+ 276, 497,
+ 292, 505,
+ 293, 507,
+ 294, 508,
+ 295, 509,
+ 296, 510,
+ 297, 511,
+ 298, 512,
+ 299, 513,
+ 300, 514,
+ 301, 515,
+ 302, 516,
+ 303, 517,
+ 304, 518,
+ 305, 519,
+ 306, 520,
+ 307, 521,
+ 308, 522,
+ 309, 523,
+ 310, 524,
+ 311, 525,
+ 312, 526,
+ 313, 527,
+ 315, 528,
+ 323, 533,
+ 326, 536,
+ 327, 537,
+ 329, 538,
+ 331, 539,
+ 333, 541,
+ 344, 548,
+ 345, 550,
+ 346, 551,
+ 347, 552,
+ 348, 553,
+ 349, 554,
+ 350, 555,
+ 351, 556,
+ 352, 557,
+ 353, 558,
+ 354, 559,
+ 355, 560,
+ 356, 561,
+ 357, 562,
+ 358, 563,
+ 359, 564,
+ 360, 565,
+ 361, 566,
+ 362, 567,
+ 363, 568,
+ 364, 569,
+ 365, 570,
+ 366, 571,
+ 380, 585,
+ 384, 589,
+ 394, 204,
+ 427, 601,
+ 429, 604,
+ 436, 615,
+ 437, 616,
+ 438, 617,
+ 451, 624,
+ 452, 625,
+ 459, 653,
+ 471, 665,
+ 476, 668,
+ 493, 684,
+ 499, 688,
+ 501, 689,
+ 506, 692,
+ 534, 724,
+ 540, 730,
+ 542, 731,
+ 546, 733,
+ 549, 735,
+ 580, 768,
+ 584, 772,
+ 591, 785,
+ 600, 789,
+ 602, 791,
+ 619, 802,
+ 649, 816,
+ 656, 829,
+ 663, 840,
+ 685, 853,
+ 715, 860,
+ 725, 868,
+ 728, 904,
+ 729, 905,
+ 766, 915,
+ 769, 918,
+ 774, 924,
+ 780, 930,
+ 783, 934,
+ 798, 945,
+ 799, 946,
+ 800, 947,
+ 804, 951,
+ 812, 958,
+ 813, 959,
+ 815, 966,
+ 852, 996,
+ 855, 1001,
+ 872, 1015,
+ 874, 1017,
+ 876, 1020,
+ 882, 1026,
+ 907, 1043,
+ 917, 1052,
+ 925, 1061,
+ 928, 1063,
+ 931, 1065,
+ 935, 1068,
+ 949, 1115,
+ 960, 1127,
+ 968, 1134,
+ 969, 1141,
+ 973, 1144,
+ 974, 1145,
+ 1003, 1169,
+ 1004, 1170,
+ 1029, 1183,
+ 1042, 1194,
+ 1048, 1197,
+ 1049, 1198,
+ 1053, 1201,
+ 1067, 1214,
+ 1074, 1219,
+ 1075, 1220,
+ 1077, 1222,
+ 1078, 1223,
+ 1079, 1224,
+ 1080, 1225,
+ 1099, 1245,
+ 1120, 1275,
+ 1125, 1283,
+ 1129, 1275,
+ 1139, 1141,
+ 1142, 1307,
+ 1163, 1319,
+ 1168, 1323,
+ 1175, 1327,
+ 1176, 1328,
+ 1178, 1329,
+ 1181, 1334,
+ 1195, 1343,
+ 1206, 1349,
+ 1211, 1350,
+ 1230, 1366,
+ 1246, 1373,
+ 1247, 1375,
+ 1248, 1376,
+ 1249, 1377,
+ 1250, 1378,
+ 1251, 1379,
+ 1252, 1380,
+ 1253, 1381,
+ 1254, 1382,
+ 1255, 1383,
+ 1256, 1384,
+ 1257, 1385,
+ 1258, 1386,
+ 1259, 1387,
+ 1260, 1388,
+ 1261, 1389,
+ 1262, 1390,
+ 1263, 1391,
+ 1264, 1392,
+ 1265, 1393,
+ 1266, 1394,
+ 1267, 1395,
+ 1269, 1396,
+ 1276, 1275,
+ 1280, 1405,
+ 1281, 1406,
+ 1284, 1408,
+ 1297, 1419,
+ 1309, 1452,
+ 1310, 1453,
+ 1325, 1458,
+ 1326, 1459,
+ 1351, 1481,
+ 1357, 1484,
+ 1359, 1485,
+ 1360, 1486,
+ 1368, 1492,
+ 1374, 1496,
+ 1404, 1529,
+ 1409, 1531,
+ 1417, 1536,
+ 1420, 1539,
+ 1428, 1550,
+ 1456, 1563,
+ 1462, 1569,
+ 1477, 1579,
+ 1479, 1580,
+ 1489, 1586,
+ 1521, 1592,
+ 1533, 1600,
+ 1542, 816,
+ 1544, 816,
+ 1545, 1610,
+ 1556, 1622,
+ 1561, 1629,
+ 1564, 1631,
+ 1584, 1641,
+ 1603, 816,
+ 1606, 816,
+ 1609, 816,
+ 1634, 1700,
+ 1647, 1707,
+ 1648, 1708,
+ 1652, 1710,
+ 1656, 1713,
+ 1658, 1714,
+ 1702, 1758,
+ 1721, 1275,
+ 1728, 1782,
+ 1763, 1810,
+ 1764, 1811,
+ 1767, 1813,
+ 1768, 1814,
+ 1769, 1815,
+ 1780, 1275,
+ 1808, 1846,
+ 1847, 1868,
+ 1851, 1870
};
-static int parser_goto_row114[] = {
+static int parser_goto_row120[] = {
1,
-1, 13
};
-static int parser_goto_row115[] = {
- 1,
- -1, 14
-};
-static int parser_goto_row116[] = {
- 4,
- -1, 893,
- 1506, 1567,
- 1557, 1615,
- 1568, 1635
-};
-static int parser_goto_row117[] = {
- 13,
- -1, 390,
- 389, 558,
- 393, 561,
- 560, 731,
- 866, 558,
- 868, 561,
- 997, 731,
- 1347, 558,
- 1355, 561,
- 1460, 731,
- 1582, 558,
- 1584, 561,
- 1647, 731
-};
-static int parser_goto_row118[] = {
- 5,
- -1, 391,
- 723, 867,
- 1215, 1348,
- 1496, 1348,
- 1520, 1583
-};
-static int parser_goto_row119[] = {
- 1,
- -1, 1406
-};
-static int parser_goto_row120[] = {
- 2,
- -1, 1021,
- 1743, 1764
-};
static int parser_goto_row121[] = {
1,
- -1, 1022
+ -1, 14
};
static int parser_goto_row122[] = {
- 6,
- -1, 1023,
- 1139, 1271,
- 1283, 1398,
- 1285, 1400,
- 1286, 1401,
- 1399, 1486
+ 4,
+ -1, 965,
+ 1608, 1670,
+ 1660, 1718,
+ 1671, 1738
};
static int parser_goto_row123[] = {
- 1,
- -1, 1024
+ 13,
+ -1, 432,
+ 431, 611,
+ 435, 614,
+ 613, 797,
+ 938, 611,
+ 940, 614,
+ 1073, 797,
+ 1443, 611,
+ 1451, 614,
+ 1560, 797,
+ 1685, 611,
+ 1687, 614,
+ 1750, 797
};
static int parser_goto_row124[] = {
- 10,
- -1, 1025,
- 1287, 1402,
- 1288, 1403,
- 1292, 1409,
- 1293, 1410,
- 1294, 1411,
- 1295, 1412,
- 1296, 1413,
- 1297, 1414,
- 1298, 1415
+ 5,
+ -1, 433,
+ 789, 939,
+ 1304, 1444,
+ 1598, 1444,
+ 1622, 1686
};
static int parser_goto_row125[] = {
- 3,
- -1, 1026,
- 1290, 1407,
- 1291, 1408
+ 1,
+ -1, 1501
};
static int parser_goto_row126[] = {
- 5,
- -1, 1027,
- 1299, 1416,
- 1300, 1417,
- 1301, 1418,
- 1302, 1419
+ 2,
+ -1, 1099,
+ 1846, 1867
};
static int parser_goto_row127[] = {
- 3,
- -1, 1028,
- 1010, 1149,
- 1141, 1275
+ 1,
+ -1, 1100
};
static int parser_goto_row128[] = {
- 1,
- -1, 1029
+ 6,
+ -1, 1101,
+ 1223, 1361,
+ 1373, 1495,
+ 1375, 1497,
+ 1376, 1498,
+ 1496, 1588
};
static int parser_goto_row129[] = {
- 2,
- -1, 1030,
- 1009, 1148
+ 1,
+ -1, 1102
};
static int parser_goto_row130[] = {
- 1,
- -1, 1031
+ 8,
+ -1, 1103,
+ 1379, 1503,
+ 1380, 1504,
+ 1381, 1505,
+ 1382, 1506,
+ 1383, 1507,
+ 1384, 1508,
+ 1385, 1509
};
static int parser_goto_row131[] = {
- 4,
- -1, 345,
- 246, 453,
- 307, 499,
- 455, 630
+ 2,
+ -1, 1104,
+ 1378, 1502
};
static int parser_goto_row132[] = {
- 1,
- -1, -1
+ 2,
+ -1, 1105,
+ 1386, 1510
};
static int parser_goto_row133[] = {
- 1,
- -1, 1349
+ 2,
+ -1, 1106,
+ 1387, 1511
};
static int parser_goto_row134[] = {
- 4,
- -1, 128,
- 1215, 1350,
- 1463, 1528,
- 1496, 1350
+ 3,
+ -1, 1107,
+ 1388, 1512,
+ 1389, 1513
};
static int parser_goto_row135[] = {
- 1,
- -1, 129
+ 3,
+ -1, 1108,
+ 1390, 1514,
+ 1391, 1515
};
static int parser_goto_row136[] = {
- 6,
- -1, 130,
- 245, 452,
- 463, 634,
- 465, 636,
- 466, 637,
- 635, 792
+ 5,
+ -1, 1109,
+ 1392, 1516,
+ 1393, 1517,
+ 1394, 1518,
+ 1395, 1519
};
static int parser_goto_row137[] = {
- 1,
- -1, 131
+ 5,
+ -1, 1110,
+ 1086, 1233,
+ 1087, 1234,
+ 1088, 1235,
+ 1225, 1365
};
static int parser_goto_row138[] = {
- 10,
- -1, 132,
- 467, 638,
- 468, 639,
- 472, 643,
- 473, 644,
- 474, 645,
- 475, 646,
- 476, 647,
- 477, 648,
- 478, 649
+ 1,
+ -1, 1111
};
static int parser_goto_row139[] = {
- 3,
- -1, 133,
- 470, 641,
- 471, 642
+ 2,
+ -1, 1112,
+ 1085, 1232
};
static int parser_goto_row140[] = {
- 5,
- -1, 134,
- 479, 650,
- 480, 651,
- 481, 652,
- 482, 653
+ 1,
+ -1, 1113
};
static int parser_goto_row141[] = {
- 1,
- -1, 135
+ 4,
+ -1, 379,
+ 270, 495,
+ 336, 544,
+ 497, 687
};
static int parser_goto_row142[] = {
1,
- -1, 136
+ -1, -1
};
static int parser_goto_row143[] = {
- 4,
- -1, 137,
- 114, 254,
- 1215, 1351,
- 1496, 1351
+ 1,
+ -1, 1445
};
static int parser_goto_row144[] = {
- 2,
- -1, 138,
- 986, 1126
+ 4,
+ -1, 132,
+ 1304, 1446,
+ 1563, 1630,
+ 1598, 1446
};
static int parser_goto_row145[] = {
1,
- -1, 534
+ -1, 133
};
static int parser_goto_row146[] = {
- 7,
- -1, 535,
- 531, 704,
- 981, 1119,
- 1117, 1256,
- 1254, 1381,
- 1273, 1391,
- 1390, 1483
+ 6,
+ -1, 134,
+ 269, 494,
+ 505, 691,
+ 507, 693,
+ 508, 694,
+ 692, 858
};
static int parser_goto_row147[] = {
1,
- -1, 708
+ -1, 135
};
static int parser_goto_row148[] = {
- 1,
- -1, -1
+ 8,
+ -1, 136,
+ 511, 697,
+ 512, 698,
+ 513, 699,
+ 514, 700,
+ 515, 701,
+ 516, 702,
+ 517, 703
};
static int parser_goto_row149[] = {
2,
- -1, 1352,
- 1496, 1552
+ -1, 137,
+ 510, 696
};
static int parser_goto_row150[] = {
- 1,
- -1, 1353
+ 2,
+ -1, 138,
+ 518, 704
};
static int parser_goto_row151[] = {
2,
- -1, 1274,
- 1276, 1394
+ -1, 139,
+ 519, 705
};
static int parser_goto_row152[] = {
- 1,
- -1, -1
+ 3,
+ -1, 140,
+ 520, 706,
+ 521, 707
};
static int parser_goto_row153[] = {
- 1,
- -1, -1
+ 3,
+ -1, 141,
+ 522, 708,
+ 523, 709
};
static int parser_goto_row154[] = {
- 1,
- -1, -1
+ 5,
+ -1, 142,
+ 524, 710,
+ 525, 711,
+ 526, 712,
+ 527, 713
};
static int parser_goto_row155[] = {
1,
- -1, -1
+ -1, 143
};
static int parser_goto_row156[] = {
1,
- -1, -1
+ -1, 144
};
static int parser_goto_row157[] = {
- 1,
- -1, -1
+ 4,
+ -1, 145,
+ 116, 278,
+ 1304, 1447,
+ 1598, 1447
};
static int parser_goto_row158[] = {
- 1,
- -1, -1
+ 2,
+ -1, 146,
+ 1059, 1209
};
static int parser_goto_row159[] = {
1,
- -1, -1
+ -1, 582
};
static int parser_goto_row160[] = {
- 1,
- -1, -1
+ 7,
+ -1, 583,
+ 579, 767,
+ 1054, 1202,
+ 1200, 1346,
+ 1344, 1478,
+ 1363, 1488,
+ 1487, 1585
};
static int parser_goto_row161[] = {
1,
- -1, -1
+ -1, 771
};
static int parser_goto_row162[] = {
1,
-1, -1
};
static int parser_goto_row163[] = {
- 1,
- -1, -1
+ 2,
+ -1, 1448,
+ 1598, 1655
};
static int parser_goto_row164[] = {
- 7,
- -1, 940,
- 809, 946,
- 1098, 1244,
- 1241, 1367,
- 1365, 1467,
- 1530, 1596,
- 1654, 1703
+ 1,
+ -1, 1449
};
static int parser_goto_row165[] = {
- 3,
- -1, 941,
- 666, 826,
- 1364, 1466
+ 2,
+ -1, 1364,
+ 1366, 1491
};
static int parser_goto_row166[] = {
1,
- -1, 827
+ -1, -1
};
static int parser_goto_row167[] = {
1,
- -1, 828
+ -1, -1
};
static int parser_goto_row168[] = {
1,
- -1, 829
+ -1, -1
};
static int parser_goto_row169[] = {
1,
- -1, 830
+ -1, -1
};
static int parser_goto_row170[] = {
1,
- -1, 831
+ -1, -1
};
static int parser_goto_row171[] = {
1,
- -1, 832
+ -1, -1
};
static int parser_goto_row172[] = {
1,
-1, -1
};
static int parser_goto_row173[] = {
- 8,
- -1, 144,
- 31, 150,
- 667, 835,
- 805, 942,
- 809, 947,
- 1252, 1379,
- 1365, 1468,
- 1654, 1704
+ 1,
+ -1, -1
};
static int parser_goto_row174[] = {
1,
};
static int parser_goto_row175[] = {
1,
- -1, 392
+ -1, -1
};
static int parser_goto_row176[] = {
1,
- -1, 1354
+ -1, -1
};
static int parser_goto_row177[] = {
1,
};
static int parser_goto_row179[] = {
1,
- -1, 1215
+ -1, -1
};
static int parser_goto_row180[] = {
- 2,
- -1, 15,
- 4, 22
+ 1,
+ -1, -1
};
static int parser_goto_row181[] = {
- 4,
- -1, 16,
- 4, 23,
- 15, 86,
- 22, 100
+ 1,
+ -1, -1
};
static int parser_goto_row182[] = {
8,
- -1, 17,
- 4, 24,
- 15, 87,
- 16, 91,
- 22, 101,
- 23, 103,
- 86, 233,
- 100, 239
+ -1, 1012,
+ 875, 1018,
+ 1180, 1333,
+ 1330, 1463,
+ 1461, 1567,
+ 1466, 1570,
+ 1632, 1699,
+ 1757, 1806
};
static int parser_goto_row183[] = {
- 1,
- -1, 1327
+ 3,
+ -1, 1013,
+ 726, 893,
+ 1460, 1566
};
static int parser_goto_row184[] = {
1,
- -1, 1060
+ -1, 894
};
static int parser_goto_row185[] = {
1,
- -1, 1195
+ -1, 895
};
static int parser_goto_row186[] = {
1,
- -1, 1318
+ -1, 896
};
static int parser_goto_row187[] = {
1,
- -1, 978
+ -1, 897
};
static int parser_goto_row188[] = {
- 3,
- -1, 211,
- 292, 487,
- 961, 1105
+ 1,
+ -1, 898
};
static int parser_goto_row189[] = {
1,
- -1, 554
+ -1, 899
};
static int parser_goto_row190[] = {
1,
- -1, 568
+ -1, 900
};
static int parser_goto_row191[] = {
1,
- -1, 221
+ -1, -1
};
static int parser_goto_row192[] = {
- 1,
- -1, 859
+ 10,
+ -1, 152,
+ 31, 158,
+ 727, 903,
+ 782, 933,
+ 871, 1014,
+ 875, 1019,
+ 1342, 1476,
+ 1461, 1568,
+ 1466, 1571,
+ 1757, 1807
};
static int parser_goto_row193[] = {
1,
- -1, 1187
+ -1, -1
};
static int parser_goto_row194[] = {
- 2,
- -1, 1263,
- 1353, 1458
+ 1,
+ -1, 434
};
static int parser_goto_row195[] = {
1,
- -1, 791
+ -1, 1450
};
static int parser_goto_row196[] = {
- 159,
- -1, 173,
- 12, 79,
- 21, 79,
- 25, 139,
- 27, 79,
- 31, 79,
- 48, 139,
- 90, 79,
- 94, 79,
- 114, 139,
- 143, 79,
- 188, 393,
- 210, 79,
- 223, 139,
- 225, 139,
- 226, 139,
- 227, 139,
- 228, 139,
- 245, 139,
- 342, 79,
- 415, 594,
- 420, 79,
- 422, 603,
- 445, 139,
- 446, 139,
- 463, 139,
- 465, 139,
- 466, 139,
- 467, 139,
- 468, 139,
- 470, 139,
- 471, 139,
- 472, 139,
- 473, 139,
- 474, 139,
- 475, 139,
- 476, 139,
- 477, 139,
- 478, 139,
- 479, 139,
- 480, 139,
- 481, 139,
- 482, 139,
- 483, 659,
- 486, 79,
- 523, 698,
- 527, 79,
- 530, 79,
- 571, 741,
- 572, 741,
- 596, 759,
- 598, 139,
- 600, 139,
- 631, 659,
- 635, 139,
- 662, 79,
- 666, 833,
- 667, 79,
- 673, 698,
- 709, 854,
- 723, 868,
- 725, 393,
- 769, 139,
- 770, 139,
- 771, 139,
- 772, 139,
- 787, 927,
- 804, 139,
- 805, 833,
- 807, 79,
- 809, 833,
- 817, 139,
- 825, 79,
- 875, 1032,
- 879, 1035,
- 890, 79,
- 919, 139,
- 920, 139,
- 939, 79,
- 957, 139,
- 958, 139,
- 959, 139,
- 963, 79,
- 964, 139,
- 965, 139,
- 990, 393,
- 1009, 1032,
- 1010, 1032,
- 1045, 594,
- 1049, 79,
- 1098, 833,
- 1100, 1249,
- 1109, 139,
- 1110, 139,
- 1139, 1032,
- 1141, 1032,
- 1215, 1355,
- 1241, 833,
- 1243, 79,
- 1246, 139,
- 1247, 139,
- 1252, 79,
- 1259, 393,
- 1283, 1032,
- 1285, 1032,
- 1286, 1032,
- 1287, 1032,
- 1288, 1032,
- 1290, 1032,
- 1291, 1032,
- 1292, 1032,
- 1293, 1032,
- 1294, 1032,
- 1295, 1032,
- 1296, 1032,
- 1297, 1032,
- 1298, 1032,
- 1299, 1032,
- 1300, 1032,
- 1301, 1032,
- 1302, 1032,
- 1303, 1425,
- 1319, 594,
- 1364, 833,
- 1365, 833,
- 1373, 139,
- 1374, 139,
- 1375, 139,
- 1376, 139,
- 1384, 393,
- 1395, 1425,
- 1399, 1032,
- 1431, 594,
- 1440, 594,
- 1442, 594,
- 1444, 594,
- 1450, 393,
- 1463, 139,
- 1474, 139,
- 1475, 139,
- 1484, 1541,
- 1496, 1355,
- 1520, 1584,
- 1530, 833,
- 1560, 79,
- 1564, 79,
- 1607, 393,
- 1612, 79,
- 1620, 79,
- 1621, 79,
- 1624, 79,
- 1629, 79,
- 1632, 79,
- 1654, 833,
- 1668, 79,
- 1675, 79,
- 1680, 79,
- 1685, 79,
- 1743, 1032
+ 1,
+ -1, -1
};
static int parser_goto_row197[] = {
+ 1,
+ -1, -1
+};
+static int parser_goto_row198[] = {
+ 1,
+ -1, 1304
+};
+static int parser_goto_row199[] = {
+ 2,
+ -1, 15,
+ 4, 22
+};
+static int parser_goto_row200[] = {
+ 4,
+ -1, 16,
+ 4, 23,
+ 15, 88,
+ 22, 102
+};
+static int parser_goto_row201[] = {
+ 8,
+ -1, 17,
+ 4, 24,
+ 15, 89,
+ 16, 93,
+ 22, 103,
+ 23, 105,
+ 88, 257,
+ 102, 263
+};
+static int parser_goto_row202[] = {
+ 1,
+ -1, 1420
+};
+static int parser_goto_row203[] = {
+ 1,
+ -1, 1142
+};
+static int parser_goto_row204[] = {
+ 1,
+ -1, 1284
+};
+static int parser_goto_row205[] = {
+ 1,
+ -1, 1411
+};
+static int parser_goto_row206[] = {
+ 1,
+ -1, 1051
+};
+static int parser_goto_row207[] = {
+ 3,
+ -1, 235,
+ 321, 532,
+ 1034, 1188
+};
+static int parser_goto_row208[] = {
+ 1,
+ -1, 605
+};
+static int parser_goto_row209[] = {
+ 1,
+ -1, 621
+};
+static int parser_goto_row210[] = {
+ 1,
+ -1, 245
+};
+static int parser_goto_row211[] = {
+ 1,
+ -1, 927
+};
+static int parser_goto_row212[] = {
+ 1,
+ -1, 1276
+};
+static int parser_goto_row213[] = {
+ 2,
+ -1, 1353,
+ 1449, 1558
+};
+static int parser_goto_row214[] = {
+ 1,
+ -1, 857
+};
+static int parser_goto_row215[] = {
+ 169,
+ -1, 187,
+ 12, 81,
+ 21, 81,
+ 25, 147,
+ 27, 81,
+ 31, 81,
+ 49, 147,
+ 92, 81,
+ 96, 81,
+ 116, 147,
+ 151, 81,
+ 203, 435,
+ 234, 81,
+ 247, 147,
+ 249, 147,
+ 250, 147,
+ 251, 147,
+ 252, 147,
+ 269, 147,
+ 376, 81,
+ 457, 651,
+ 462, 81,
+ 464, 660,
+ 487, 147,
+ 488, 147,
+ 505, 147,
+ 507, 147,
+ 508, 147,
+ 510, 147,
+ 511, 147,
+ 512, 147,
+ 513, 147,
+ 514, 147,
+ 515, 147,
+ 516, 147,
+ 517, 147,
+ 518, 147,
+ 519, 147,
+ 520, 147,
+ 521, 147,
+ 522, 147,
+ 523, 147,
+ 524, 147,
+ 525, 147,
+ 526, 147,
+ 527, 147,
+ 528, 719,
+ 531, 81,
+ 571, 761,
+ 575, 81,
+ 578, 81,
+ 624, 807,
+ 625, 807,
+ 653, 825,
+ 655, 147,
+ 657, 147,
+ 688, 719,
+ 692, 147,
+ 722, 81,
+ 726, 901,
+ 727, 81,
+ 733, 761,
+ 772, 922,
+ 782, 81,
+ 789, 940,
+ 791, 435,
+ 835, 147,
+ 836, 147,
+ 837, 147,
+ 838, 147,
+ 853, 999,
+ 870, 147,
+ 871, 901,
+ 873, 81,
+ 875, 901,
+ 884, 147,
+ 892, 81,
+ 947, 1114,
+ 951, 1117,
+ 962, 81,
+ 991, 147,
+ 992, 147,
+ 1011, 81,
+ 1030, 147,
+ 1031, 147,
+ 1032, 147,
+ 1036, 81,
+ 1037, 147,
+ 1038, 147,
+ 1063, 435,
+ 1085, 1114,
+ 1086, 1114,
+ 1087, 1114,
+ 1088, 1114,
+ 1127, 651,
+ 1131, 81,
+ 1180, 901,
+ 1183, 1339,
+ 1192, 147,
+ 1193, 147,
+ 1223, 1114,
+ 1225, 1114,
+ 1304, 1451,
+ 1330, 901,
+ 1332, 81,
+ 1336, 147,
+ 1337, 147,
+ 1342, 81,
+ 1349, 435,
+ 1373, 1114,
+ 1375, 1114,
+ 1376, 1114,
+ 1378, 1114,
+ 1379, 1114,
+ 1380, 1114,
+ 1381, 1114,
+ 1382, 1114,
+ 1383, 1114,
+ 1384, 1114,
+ 1385, 1114,
+ 1386, 1114,
+ 1387, 1114,
+ 1388, 1114,
+ 1389, 1114,
+ 1390, 1114,
+ 1391, 1114,
+ 1392, 1114,
+ 1393, 1114,
+ 1394, 1114,
+ 1395, 1114,
+ 1396, 1525,
+ 1412, 651,
+ 1460, 901,
+ 1461, 901,
+ 1466, 901,
+ 1470, 147,
+ 1471, 147,
+ 1472, 147,
+ 1473, 147,
+ 1481, 435,
+ 1492, 1525,
+ 1496, 1114,
+ 1531, 651,
+ 1540, 651,
+ 1542, 651,
+ 1544, 651,
+ 1550, 435,
+ 1563, 147,
+ 1576, 147,
+ 1577, 147,
+ 1586, 1644,
+ 1598, 1451,
+ 1622, 1687,
+ 1632, 901,
+ 1663, 81,
+ 1667, 81,
+ 1710, 435,
+ 1715, 81,
+ 1723, 81,
+ 1724, 81,
+ 1727, 81,
+ 1732, 81,
+ 1735, 81,
+ 1757, 901,
+ 1771, 81,
+ 1778, 81,
+ 1783, 81,
+ 1788, 81,
+ 1846, 1114
+};
+static int parser_goto_row216[] = {
2,
-1, 18,
- 13, 80
+ 13, 82
};
-static int parser_goto_row198[] = {
+static int parser_goto_row217[] = {
3,
-1, 19,
- 18, 96,
- 80, 231
+ 18, 98,
+ 82, 255
};
const int* const parser_goto_table[] = {
parser_goto_row195,
parser_goto_row196,
parser_goto_row197,
- parser_goto_row198
+ parser_goto_row198,
+ parser_goto_row199,
+ parser_goto_row200,
+ parser_goto_row201,
+ parser_goto_row202,
+ parser_goto_row203,
+ parser_goto_row204,
+ parser_goto_row205,
+ parser_goto_row206,
+ parser_goto_row207,
+ parser_goto_row208,
+ parser_goto_row209,
+ parser_goto_row210,
+ parser_goto_row211,
+ parser_goto_row212,
+ parser_goto_row213,
+ parser_goto_row214,
+ parser_goto_row215,
+ parser_goto_row216,
+ parser_goto_row217
};
var eof = tree.n_eof
if eof isa AError then
- self.fatal_error(null, "Fatal Error: {eof.message}")
+ self.fatal_error(null, "Fatal Error: {eof.message}.")
abort
end
return tree.n_base.as(not null)
var nmodule = parse_module(string)
var nclassdefs = nmodule.n_classdefs
if nclassdefs.length != 1 then
- self.fatal_error(null, "Fatal Error: not a classdef")
+ self.fatal_error(null, "Fatal Error: not a classdef.")
abort
end
return nclassdefs.first
var nclassdef = parse_classdef(mod_string)
var npropdefs = nclassdef.n_propdefs
if npropdefs.length != 1 then
- self.fatal_error(null, "Fatal Error: not a propdef")
+ self.fatal_error(null, "Fatal Error: not a propdef.")
abort
end
return npropdefs.first
var nclassdef = parse_classdef(mod_string).as(AStdClassdef)
var nsuperclasses = nclassdef.n_propdefs
if nsuperclasses.length != 1 then
- self.fatal_error(null, "Fatal Error: not a super class declaration")
+ self.fatal_error(null, "Fatal Error: not a super class declaration.")
abort
end
return nsuperclasses.first
var time1 = get_time
self.info("*** END SEMANTIC ANALYSIS: {time1-time0} ***", 2)
- errors_info
+ self.check_errors
end
# Process the given `phase` on the `npropdef`
end
# By default, the name is the lowercased prefix of the classname
- redef fun to_s do return class_name.strip_extension("Phase").to_lower
+ redef fun to_s do return class_name.strip_extension("Phase").to_snake_case
# Is the phase globally disabled?
# A disabled phase is not called automatically called by `ToolContext::run_phases` and cie.
redef fun write_files(compile_dir, cfiles)
do
var android_project_root = android_project_root.as(not null)
- var project = toolcontext.modelbuilder.android_project_for(compiler.mainmodule)
- var short_project_name = compiler.mainmodule.name.replace("-", "_")
+ var project = new AndroidProject(toolcontext.modelbuilder, compiler.mainmodule)
var release = toolcontext.opt_release.value
var app_name = project.name
- if app_name == null then app_name = compiler.mainmodule.name
if not release then app_name += " Debug"
- var app_package = project.java_package
- if app_package == null then app_package = "org.nitlanguage.{short_project_name}"
+ var short_project_name = project.short_name
+
+ var app_package = project.namespace
if not release then app_package += "_debug"
var app_version = project.version
- if app_version == null then app_version = "1.0"
var app_min_api = project.min_api
if app_min_api == null then app_min_api = 10
var tsa_server= "TSA_SERVER".environ
if key_alias.is_empty then
- toolcontext.fatal_error(null,
- "Fatal Error: the environment variable `KEY_ALIAS` must be set to use the `--release` option on Android projects.")
+ toolcontext.error(null,
+ "Error: the environment variable `KEY_ALIAS` must be set to use the `--release` option on Android projects.")
+ return
end
args = ["jarsigner", "-sigalg", "MD5withRSA", "-digestalg", "SHA1", apk_path, key_alias]
# See the License for the specific language governing permissions and
# limitations under the License.
-# Annotations to gather metadata on Android projects. Get the metadata
-# by calling `ModelBuilder::android_project_for`.
+# Additionnal annotations to gather metadata on Android projects
module android_annotations
-private import parser_util
-import modelize
-import literal
-import semantize
-private import annotation
+intrude import app_annotations
# Metadata associated to an Android project
class AndroidProject
- # Name of the resulting application
- var name: nullable String = null
-
- # Java package used to identify the APK
- var java_package: nullable String = null
-
- # Version of the Android application and APK
- var version: nullable String = null
-
- # Numerical version code of the Android application and APK
- var version_code: Int = 0
+ super AppProject
# Custom lines to add to the AndroidManifest.xml in the <manifest> node
var manifest_lines = new Array[String]
# Activities to declare in the manifest
var activities = new Array[String]
- redef fun to_s do return """
-name: {{{name or else "null"}}}
-namespace: {{{java_package or else "null"}}}
-version: {{{version or else "null"}}}"""
-end
-
-redef class ModelBuilder
- # Get the `AndroidProject` gathered from `mmodule` and its importations
- fun android_project_for(mmodule: MModule): AndroidProject
+ init
do
- var project = new AndroidProject
-
- var annot = lookup_annotation_on_modules("app_name", mmodule)
- if annot != null then project.name = annot.arg_as_string(self)
-
- annot = lookup_annotation_on_modules("app_version", mmodule)
- if annot != null then project.version = annot.as_version(self)
-
- annot = lookup_annotation_on_modules("java_package", mmodule)
- if annot != null then project.java_package = annot.arg_as_string(self)
-
- var annots = collect_annotations_on_modules("min_api_version", mmodule)
+ var annots = modelbuilder.collect_annotations_on_modules("min_api_version", mainmodule)
if not annots.is_empty then
- var i = annots.pop.arg_as_int(self)
+ var i = annots.pop.arg_as_int(modelbuilder)
if i == null then i = 0
- project.min_api = i
+ min_api = i
for an in annots do
- i = an.arg_as_int(self)
+ i = an.arg_as_int(modelbuilder)
if i == null then continue
- project.min_api = project.min_api.max(i)
+ min_api = min_api.max(i)
end
end
- annots = collect_annotations_on_modules("max_api_version", mmodule)
+ annots = modelbuilder.collect_annotations_on_modules("max_api_version", mainmodule)
if not annots.is_empty then
- var i = annots.pop.arg_as_int(self)
+ var i = annots.pop.arg_as_int(modelbuilder)
if i == null then i = 0
- project.max_api = i
+ max_api = i
for an in annots do
- i = an.arg_as_int(self)
+ i = an.arg_as_int(modelbuilder)
if i == null then continue
- project.max_api = project.max_api.min(i)
+ max_api = max_api.min(i)
end
end
- annot = lookup_annotation_on_modules("target_api_version", mmodule)
- if annot != null then project.target_api = annot.arg_as_int(self) or else 0
+ var annot = modelbuilder.lookup_annotation_on_modules("target_api_version", mainmodule)
+ if annot != null then target_api = annot.arg_as_int(modelbuilder) or else 0
- annots = collect_annotations_on_modules("android_manifest", mmodule)
- for an in annots do project.manifest_lines.add an.arg_as_string(self) or else ""
+ annots = modelbuilder.collect_annotations_on_modules("android_manifest", mainmodule)
+ for an in annots do manifest_lines.add an.arg_as_string(modelbuilder) or else ""
- annots = collect_annotations_on_modules("android_manifest_application", mmodule)
- for an in annots do project.manifest_application_lines.add an.arg_as_string(self) or else ""
+ annots = modelbuilder.collect_annotations_on_modules("android_manifest_application", mainmodule)
+ for an in annots do manifest_application_lines.add an.arg_as_string(modelbuilder) or else ""
- annots = collect_annotations_on_modules("android_manifest_activity", mmodule)
- for an in annots do project.manifest_activity_attributes.add an.arg_as_string(self) or else ""
+ annots = modelbuilder.collect_annotations_on_modules("android_manifest_activity", mainmodule)
+ for an in annots do manifest_activity_attributes.add an.arg_as_string(modelbuilder) or else ""
- annots = collect_annotations_on_modules("android_activity", mmodule)
+ annots = modelbuilder.collect_annotations_on_modules("android_activity", mainmodule)
for an in annots do
- var activity = an.arg_as_string(self)
- if activity != null then project.activities.add activity
+ var activity = an.arg_as_string(modelbuilder)
+ if activity != null then activities.add activity
end
-
- # Get the date and time (down to the minute) as string
- var local_time = new Tm.localtime
- var local_time_s = local_time.strftime("%y%m%d%H%M")
- project.version_code = local_time_s.to_i
-
- toolcontext.check_errors
-
- return project
- end
-end
-
-redef class AAnnotation
- # Returns a version string (example: "1.5.6b42a7c") from an annotation `version(1, 5, git_revision)`.
- #
- # The user can enter as many fields as needed. The call to `git_revision` will be replaced by the short
- # revision number. If the working tree is dirty, it will append another field with "d" for dirty.
- private fun as_version(modelbuilder: ModelBuilder): String
- do
- var version_fields = new Array[Object]
-
- var args = n_args
- if args.length < 1 then
- modelbuilder.error(self, "Annotation error: \"{name}\" expects at least a single argument.")
- return ""
- else
- for arg in args do
- var format_error = "Annotation error: \"{name}\" expects its arguments to be of type Int or a call to `git_revision`"
-
- var value
- value = arg.as_int
- if value != null then
- version_fields.add value
- continue
- end
-
- value = arg.as_string
- if value != null then
- version_fields.add value
- end
-
- value = arg.as_id
- if value == "git_revision" then
- # Get Git short revision
- var proc = new ProcessReader("git", "rev-parse", "--short", "HEAD")
- proc.wait
- assert proc.status == 0
- var lines = proc.read_all
- var revision = lines.split("\n").first
-
- # Is it dirty?
- # If not, the return of `git diff --shortstat` is an empty line
- proc = new ProcessReader("git", "diff-index", "--quiet", "HEAD")
- proc.wait
- var dirty = proc.status != 0
- if dirty then revision += ".d"
-
- version_fields.add revision
- continue
- end
-
- modelbuilder.error(self, format_error)
- return ""
- end
- end
-
- return version_fields.join(".")
end
end
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Annotations to gather metadata on `app.nit` projects
+module app_annotations
+
+private import parser_util
+import modelize
+import literal
+import semantize
+private import annotation
+
+# Metadata associated to an `app.nit` project
+class AppProject
+ # Pretty name of the resulting application
+ var name: String = mainmodule.first_real_mmodule.name is lazy
+
+ # Short project name used in `namespace` and configuration files
+ var short_name: String = mainmodule.name.replace("-", "_") is lazy
+
+ # Namespace/package used to identify the application
+ var namespace = "org.nitlanguage.{short_name}" is lazy
+
+ # Version of the application
+ var version = "0.1"
+
+ # Numerical version code of the application
+ var version_code: Int is lazy do
+
+ # Get the date and time (down to the minute) as string
+ var local_time = new Tm.localtime
+ var local_time_s = local_time.strftime("%y%m%d%H%M")
+ return local_time_s.to_i
+ end
+
+ private var modelbuilder: ModelBuilder
+ private var mainmodule: MModule
+
+ init
+ do
+ var annot = modelbuilder.lookup_annotation_on_modules("app_name", mainmodule)
+ if annot != null then
+ var val = annot.arg_as_string(modelbuilder)
+ if val != null then name = val
+ end
+
+ annot = modelbuilder.lookup_annotation_on_modules("app_version", mainmodule)
+ if annot != null then version = annot.as_version(modelbuilder)
+
+ annot = modelbuilder.lookup_annotation_on_modules("app_namespace", mainmodule)
+ if annot != null then
+ var val = annot.arg_as_string(modelbuilder)
+ if val != null then namespace = val
+ end
+
+ modelbuilder.toolcontext.check_errors
+ end
+
+ redef fun to_s do return """
+name: {{{name}}}
+namespace: {{{namespace}}}
+version: {{{version}}}"""
+end
+
+redef class AAnnotation
+ # Returns a version string (example: "1.5.6b42a7c") from an annotation `version(1, 5, git_revision)`.
+ #
+ # The user can enter as many fields as needed. The call to `git_revision` will be replaced by the short
+ # revision number. If the working tree is dirty, it will append another field with "d" for dirty.
+ private fun as_version(modelbuilder: ModelBuilder): String
+ do
+ var version_fields = new Array[Object]
+
+ var args = n_args
+ if args.length < 1 then
+ modelbuilder.error(self, "Syntax Error: `{name}` expects at least one argument.")
+ return ""
+ else
+ for arg in args do
+ var format_error = "Syntax Eror: `{name}` expects its arguments to be of type Int or a call to `git_revision`."
+
+ var value
+ value = arg.as_int
+ if value != null then
+ version_fields.add value
+ continue
+ end
+
+ value = arg.as_string
+ if value != null then
+ version_fields.add value
+ end
+
+ value = arg.as_id
+ if value == "git_revision" then
+ # Get Git short revision
+ var proc = new ProcessReader("git", "rev-parse", "--short", "HEAD")
+ proc.wait
+ assert proc.status == 0
+ var lines = proc.read_all
+ var revision = lines.split("\n").first
+
+ # Is it dirty?
+ # If not, the return of `git diff --shortstat` is an empty line
+ proc = new ProcessReader("git", "diff-index", "--quiet", "HEAD")
+ proc.wait
+ var dirty = proc.status != 0
+ if dirty then revision += ".d"
+
+ version_fields.add revision
+ continue
+ end
+
+ modelbuilder.error(self, format_error)
+ return ""
+ end
+ end
+
+ return version_fields.join(".")
+ end
+end
import platform
import compiler::abstract_compiler
import xcode_templates
-private import annotation
+import app_annotations
redef class ToolContext
redef fun platform_from_name(name)
redef fun toolchain(toolcontext, compiler) do return new IOSToolchain(toolcontext, compiler)
end
+private class IosProject
+ super AppProject
+
+ redef fun namespace do return super.to_camel_case
+end
+
private class IOSToolchain
super MakefileToolchain
# Root of the iOS project, usually `.nit_compile/ios/`
var ios_project_root: String is noinit
- redef fun default_outname do return "{super}.app"
+ # `app.nit` project for the current compilation target
+ var app_project = new IosProject(compiler.modelbuilder, compiler.mainmodule) is lazy
- # Name of the current project of `compiler`
- fun project_name: String
- do
- var project_name = null
- # TODO unite the app_name annotation from Android with iOS
- var annot = compiler.modelbuilder.lookup_annotation_on_modules("app_name", compiler.mainmodule)
- if annot != null then project_name = annot.arg_as_string(compiler.modelbuilder)
- if project_name == null then project_name = compiler.mainmodule.name
- return project_name
- end
+ redef fun default_outname do return "{super}.app"
- # Compile C files in `ios_project_root/project_name`
+ # Compile C files in `ios_project_root/app_project.name`
redef fun compile_dir
do
ios_project_root = super/"ios"
- return ios_project_root/project_name
+ return ios_project_root/app_project.short_name
end
redef fun write_files(compile_dir, cfiles)
redef fun write_makefile(compile_dir, cfiles)
do
- var project_name = project_name
+ var project_name = app_project.short_name
# Create an XCode project directory
var dir = ios_project_root/project_name+".xcodeproj"
# Create the plist in the same directory as the generated C code
if not compile_dir.file_exists then compile_dir.mkdir
- var plist = new PlistTemplate("org.nitlanguage") # TODO customize using an annotation
+ var plist = new PlistTemplate(app_project.name, app_project.namespace,
+ app_project.version, app_project.version_code.to_s)
plist.write_to_file compile_dir/"Info.plist"
end
redef fun compile_c_code(compile_dir)
do
- var project_name = project_name
+ var project_name = app_project.short_name
var release = toolcontext.opt_release.value
var outfile = outfile(compiler.mainmodule)
# Do some validity checks and print errors if the annotation is used incorrectly
var modelbuilder = toolcontext.modelbuilder
if not nmoduledecl isa AModuledecl then
- modelbuilder.error(nat, "Syntax error: only the declaration of modules may use \"{annotation_name}\".")
+ modelbuilder.error(nat, "Syntax Error: only the declaration of modules may use `{annotation_name}`.")
return
end
var args = nat.n_args
var platform_name
if args.length > 1 then
- modelbuilder.error(nat, "Syntax error: \"{annotation_name}\" expects at most a single argument.")
+ modelbuilder.error(nat, "Syntax Error: `{annotation_name}` expects at most a single argument.")
return
else if args.is_empty then
platform_name = nmoduledecl.n_name.collect_text
else
platform_name = args.first.as_string
if platform_name == null then
- var format_error = "Syntax error: \"{annotation_name}\" expects its argument to be the name of the target platform as a String literal."
+ var format_error = "Syntax Error: `{annotation_name}` expects its argument to be the name of the target platform as a String literal."
modelbuilder.error(nat, format_error)
return
end
var platform = toolcontext.platform_from_name(platform_name)
if platform == null then
- toolcontext.error(nat.location, "Error: target platform \"{platform_name}\" unknown")
+ toolcontext.error(nat.location, "Error: target platform `{platform_name}` unknown.")
return
end
var previous_target_platform = mmodule.target_platform
if previous_target_platform != null and previous_target_platform != platform then
- modelbuilder.error(nat, "Syntax error: a target platform has already been defined as \"{previous_target_platform}\".")
+ modelbuilder.error(nat, "Syntax Error: a target platform has already been defined as `{previous_target_platform}`.")
end
mmodule.local_target_platform = platform
path = Base.lproj/LaunchScreen.xib;
sourceTree = "<group>";
};
- AF9F83E91A5F0D21004B62C0 /* {{{name}}}Tests.xctest */ = {
- isa = PBXFileReference;
- explicitFileType = wrapper.cfbundle;
- includeInIndex = 0;
- path = {{{name}}}Tests.xctest;
- sourceTree = BUILT_PRODUCTS_DIR;
- };
- AF9F83EE1A5F0D21004B62C0 /* Info.plist */ = {
- isa = PBXFileReference;
- lastKnownFileType = text.plist.xml;
- path = Info.plist;
- sourceTree = "<group>";
- };
- AF9F83EF1A5F0D21004B62C0 /* {{{name}}}Tests.m */ = {
- isa = PBXFileReference;
- lastKnownFileType = sourcecode.c.objc;
- path = {{{name}}}Tests.m;
- sourceTree = "<group>";
- };
/* Changing generated files */
"""
);
runOnlyForDeploymentPostprocessing = 0;
};
- AF9F83E61A5F0D21004B62C0 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
isa = PBXGroup;
children = (
AF9F83CE1A5F0D21004B62C0 /* {{{name}}} */,
- AF9F83EC1A5F0D21004B62C0 /* {{{name}}}Tests */,
AF9F83CD1A5F0D21004B62C0 /* Products */,
);
sourceTree = "<group>";
isa = PBXGroup;
children = (
AF9F83CC1A5F0D21004B62C0 /* {{{name}}}.app */,
- AF9F83E91A5F0D21004B62C0 /* {{{name}}}Tests.xctest */,
);
name = Products;
sourceTree = "<group>";
name = "Supporting Files";
sourceTree = "<group>";
};
- AF9F83EC1A5F0D21004B62C0 /* {{{name}}}Tests */ = {
- isa = PBXGroup;
- children = (
- AF9F83EF1A5F0D21004B62C0 /* {{{name}}}Tests.m */,
- AF9F83ED1A5F0D21004B62C0 /* Supporting Files */,
- );
- path = {{{name}}}Tests;
- sourceTree = "<group>";
- };
- AF9F83ED1A5F0D21004B62C0 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- AF9F83EE1A5F0D21004B62C0 /* Info.plist */,
- );
- name = "Supporting Files";
- sourceTree = "<group>";
- };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
productReference = AF9F83CC1A5F0D21004B62C0 /* {{{name}}}.app */;
productType = "com.apple.product-type.application";
};
- AF9F83E81A5F0D21004B62C0 /* {{{name}}}Tests */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = AF9F83F61A5F0D21004B62C0 /* Build configuration list for PBXNativeTarget "{{{name}}}Tests" */;
- buildPhases = (
- AF9F83E51A5F0D21004B62C0 /* Sources */,
- AF9F83E61A5F0D21004B62C0 /* Frameworks */,
- AF9F83E71A5F0D21004B62C0 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- AF9F83EB1A5F0D21004B62C0 /* PBXTargetDependency */,
- );
- name = {{{name}}}Tests;
- productName = {{{name}}}Tests;
- productReference = AF9F83E91A5F0D21004B62C0 /* {{{name}}}Tests.xctest */;
- productType = "com.apple.product-type.bundle.unit-test";
- };
/* End PBXNativeTarget section */
/* Begin PBXProject section */
AF9F83CB1A5F0D21004B62C0 = {
CreatedOnToolsVersion = 6.1.1;
};
- AF9F83E81A5F0D21004B62C0 = {
- CreatedOnToolsVersion = 6.1.1;
- TestTargetID = AF9F83CB1A5F0D21004B62C0;
- };
};
};
buildConfigurationList = AF9F83C71A5F0D21004B62C0 /* Build configuration list for PBXProject "{{{name}}}" */;
projectRoot = "";
targets = (
AF9F83CB1A5F0D21004B62C0 /* {{{name}}} */,
- AF9F83E81A5F0D21004B62C0 /* {{{name}}}Tests */,
);
};
/* End PBXProject section */
);
runOnlyForDeploymentPostprocessing = 0;
};
- AF9F83E71A5F0D21004B62C0 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
);
runOnlyForDeploymentPostprocessing = 0;
};
- AF9F83E51A5F0D21004B62C0 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AF9F83F01A5F0D21004B62C0 /* {{{name}}}Tests.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
/* End PBXSourcesBuildPhase section */
-/* Begin PBXTargetDependency section */
- AF9F83EB1A5F0D21004B62C0 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = AF9F83CB1A5F0D21004B62C0 /* {{{name}}} */;
- targetProxy = AF9F83EA1A5F0D21004B62C0 /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
/* Begin PBXVariantGroup section */
AF9F83DD1A5F0D21004B62C0 /* Main.storyboard */ = {
isa = PBXVariantGroup;
};
name = Release;
};
- AF9F83F71A5F0D21004B62C0 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- FRAMEWORK_SEARCH_PATHS = (
- "$(SDKROOT)/Developer/Library/Frameworks",
- "$(inherited)",
- );
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- INFOPLIST_FILE = {{{name}}}Tests/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
- PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/{{{name}}}.app/{{{name}}}";
- };
- name = Debug;
- };
- AF9F83F81A5F0D21004B62C0 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- FRAMEWORK_SEARCH_PATHS = (
- "$(SDKROOT)/Developer/Library/Frameworks",
- "$(inherited)",
- );
- INFOPLIST_FILE = {{{name}}}Tests/Info.plist;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
- PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/{{{name}}}.app/{{{name}}}";
- };
- name = Release;
- };
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
);
defaultConfigurationIsVisible = 0;
};
- AF9F83F61A5F0D21004B62C0 /* Build configuration list for PBXNativeTarget "{{{name}}}Tests" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- AF9F83F71A5F0D21004B62C0 /* Debug */,
- AF9F83F81A5F0D21004B62C0 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- };
/* End XCConfigurationList section */
};
rootObject = AF9F83C41A5F0D21004B62C0 /* Project object */;
class PlistTemplate
super Template
- # Package of the app
- var package_name: String
+ # Value of CFBundleName, pretty name of the application
+ var product_name: String
+
+ # Value of CFBundleIdentifier, namespace of the app
+ var bundle_identifier: String
+
+ # Value of CFBundleShortVersionString, human readable version
+ var short_version: String
+
+ # Value of CFBundleVersion, often a revision number
+ var bundle_version: String
redef fun rendering
do
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
- <string>{{{package_name}}}.$(PRODUCT_NAME:rfc1034identifier)</string>
+ <string>{{{bundle_identifier}}}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
- <string>$(PRODUCT_NAME)</string>
+ <string>{{{product_name}}}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>1.0</string>
+ <string>{{{short_version}}}</string>
<key>CFBundleSignature</key>
<string>\\?\\?\\?\\?</string>
<key>CFBundleVersion</key>
- <string>1</string>
+ <string>{{{bundle_version}}}</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIRequiredDeviceCapabilities</key>
redef fun bin_expr1 do return n_expr
redef fun bin_expr2 do return n_expr2
-end
-
-redef class AEqExpr
- redef fun bin_op do return "=="
-end
-
-redef class AGeExpr
- redef fun bin_op do return ">="
-end
-
-redef class AGgExpr
- redef fun bin_op do return ">>"
-end
-
-redef class AGtExpr
- redef fun bin_op do return ">"
-end
-
-redef class ALeExpr
- redef fun bin_op do return "<="
-end
-
-redef class ALlExpr
- redef fun bin_op do return "<<"
-end
-
-redef class ALtExpr
- redef fun bin_op do return "<"
-end
-
-redef class AMinusExpr
- redef fun bin_op do return "-"
-end
-
-redef class ANeExpr
- redef fun bin_op do return "!="
-end
-
-redef class APercentExpr
- redef fun bin_op do return "%"
-end
-
-redef class APlusExpr
- redef fun bin_op do return "+"
-end
-
-redef class ASlashExpr
- redef fun bin_op do return "/"
-end
-
-redef class AStarExpr
- redef fun bin_op do return "*"
-end
-
-redef class AStarstarExpr
- redef fun bin_op do return "**"
-end
-
-redef class AStarshipExpr
- redef fun bin_op do return "<=>"
+ redef fun bin_op do return operator
end
redef class AIsaExpr
# Syntax
-redef class AUminusExpr
+redef class AUnaryopExpr
redef fun accept_pretty_printer(v) do
- v.consume "-"
+ v.visit n_op
v.visit n_expr
end
end
var mtype = callsite.recv
var anchor = callsite.anchor
if anchor != null then mtype = mtype.anchor_to(callsite.mmodule, anchor)
- mtype = mtype.as_notnullable
+ mtype = mtype.undecorate
if mtype isa MClassType then mtype = mtype.mclass.intro.bound_mtype
var mproperty = callsite.mproperty
var res = live_targets_cache[mtype, mproperty]
do
var d = mtype.length
if d > 255 then
- self.modelbuilder.toolcontext.fatal_error(null, "Fatal error: limitation in the rapidtype analysis engine: a type depth of {d} is too important, the problematic type is {mtype}.")
+ self.modelbuilder.toolcontext.fatal_error(null, "Fatal Error: limitation in the rapidtype analysis engine: a type depth of {d} is too important, the problematic type is `{mtype}`.")
end
end
do
mtype = mtype.anchor_to(self.analysis.mainmodule, self.receiver)
if mtype isa MNullType then return null
- mtype = mtype.as_notnullable
+ mtype = mtype.undecorate
assert mtype isa MClassType
assert not mtype.need_anchor
return mtype
mtype = v.cleanup_type(mtype).as(not null)
var prop = v.get_method(mtype, "with_native")
v.add_monomorphic_send(mtype, prop)
+ v.add_callsite(with_capacity_callsite)
+ v.add_callsite(push_callsite)
end
end
# Collect initializers and build the auto-init
fun do_auto_super_init(modelbuilder: ModelBuilder)
do
- var mclassdef = self.parent.as(AClassdef).mclassdef.as(not null)
- var mpropdef = self.mpropdef.as(not null)
+ var mclassdef = self.parent.as(AClassdef).mclassdef
+ if mclassdef == null then return # skip error
+ var mpropdef = self.mpropdef
+ if mpropdef == null then return # skip error
var mmodule = mpropdef.mclassdef.mmodule
var anchor = mclassdef.bound_mtype
var recvtype = mclassdef.mclass.mclass_type
# Collect only for constructors
if not mpropdef.mproperty.is_init or mpropdef.mproperty.is_new then
- if nosuper != null then modelbuilder.error(nosuper, "Error: nosuper only in `init`")
+ if nosuper != null then modelbuilder.error(nosuper, "Error: `nosuper` only allowed in `init`.")
return
end
v.enter_visit(nblock)
var anode = v.has_explicit_super_init
if anode != null then
- if nosuper != null then modelbuilder.error(anode, "Error: method is annotated nosuper but a constructor call is present")
+ if nosuper != null then modelbuilder.error(anode, "Error: method is annotated `nosuper` but a super-constructor call is present.")
return
end
if v.is_broken then return # skip
candidate = modelbuilder.try_get_mproperty_by_name2(self, mmodule, msupertype, "init")
end
if candidate == null then
- modelbuilder.error(self, "Error: Cannot do an implicit constructor call in {mpropdef}; there is no constructor named {mpropdef.mproperty.name} in {msupertype}.")
+ modelbuilder.error(self, "Error: cannot do an implicit constructor call in `{mpropdef}`; there is no constructor named `{mpropdef.mproperty.name}` in `{msupertype}`.")
return
end
assert candidate isa MMethod
var i = 0
for p in spd.initializers do
if p != candidatedef.initializers[i] then
- modelbuilder.error(self, "Error: Cannot do an implicit constructor call to comflicting for inherited inits {spd}({spd.initializers.join(", ")}) and {candidatedef}({candidatedef.initializers.join(", ")}). NOTE: Do not mix old-style and new-style init!")
+ modelbuilder.error(self, "Error: cannot do an implicit constructor call to conflicting inherited inits `{spd}({spd.initializers.join(", ")}`) and `{candidatedef}({candidatedef.initializers.join(", ")}`). NOTE: Do not mix old-style and new-style init!")
return
end
i += 1
modelbuilder.toolcontext.info("Auto-super init for {mpropdef} to {the_root_init_mmethod.full_name}", 4)
end
if auto_super_inits.is_empty then
- modelbuilder.error(self, "Error: No constructors to call implicitely in {mpropdef}. Call one explicitely.")
+ modelbuilder.error(self, "Error: no constructors to call implicitly in `{mpropdef}`. Call one explicitly.")
return
end
var msig = mpropdef.msignature.as(not null)
var supermsig = auto_super_init.msignature
if supermsig.arity > msig.arity then
- modelbuilder.error(self, "Error: Cannot do an implicit constructor call to {auto_super_init_def}{supermsig}. Expected at least {supermsig.arity} arguments, got {msig.arity}.")
+ modelbuilder.error(self, "Error: cannot do an implicit constructor call to `{auto_super_init_def}{supermsig}`. Expected at least `{supermsig.arity}` arguments, got `{msig.arity}`.")
continue
end
var i = 0
var sub = p.mtype
var sup = sp.mtype
if not sub.is_subtype(mmodule, anchor, sup) then
- modelbuilder.error(self, "Error: Cannot do an implicit constructor call to {auto_super_init_def}{supermsig}. Expected argument #{i} of type {sp.mtype}, got implicit argument {p.name} of type {p.mtype}.")
+ modelbuilder.error(self, "Error: cannot do an implicit constructor call to `{auto_super_init_def}{supermsig}`. Expected argument #{i} of type `{sp.mtype}`, got implicit argument `{p.name}` of type `{p.mtype}`.")
break
end
i += 1
fun printflow
do
var file = new FileWriter.open("flow.dot")
- file.write("digraph \{\n")
+ file.write("digraph \{\nnode[shape=box];")
for f in flows do
var s = ""
if f.node isa AExpr then
end
file.write "F{f.object_id} [label=\"{f.object_id}\\n{f.node.location}\\n{f.node.class_name}\\n{f.name}{s}\"];\n"
for p in f.previous do
- file.write "F{p.object_id} -> F{f.object_id};\n"
+ s = ""
+ if f.when_true == p then s = "[label=TRUE, style=dotted]"
+ if f.when_false == p then s = "[label=FALSE, style=dotted]"
+ if f.when_true == p and f.when_false == p then s = "[label=TRUE_FALSE, style=dotted]"
+ file.write "F{p.object_id} -> F{f.object_id}{s};\n"
end
- if f.when_true != f then
- file.write "F{f.object_id} -> F{f.when_true.object_id}[label=TRUE, style=dotted];\n"
- end
- if f.when_false != f then
- file.write "F{f.object_id} -> F{f.when_false.object_id}[label=FALSE,style=dotted];\n"
+ for p in f.loops do
+ file.write "F{p.object_id} -> F{f.object_id}[label=LOOP, style=dashed, constraint=false];\n"
end
end
file.write("\}\n")
var after_block = v.current_flow_context
before_loop.add_loop(after_block)
- v.merge_continues_to(after_block, self.continue_mark)
+ v.merge_continues_to(before_loop, self.continue_mark)
v.current_flow_context = after_expr.when_false
v.merge_breaks(self.break_mark)
var after_block = v.current_flow_context
before_loop.add_loop(after_block)
- v.merge_continues_to(after_block, self.continue_mark)
+ v.merge_continues_to(before_loop, self.continue_mark)
v.make_unreachable_flow
v.merge_breaks(self.break_mark)
var after_block = v.current_flow_context
before_loop.add_loop(after_block)
- v.merge_continues_to(after_block, self.continue_mark)
+ v.merge_continues_to(before_loop, self.continue_mark)
v.make_merge_flow(v.current_flow_context, before_loop)
v.merge_breaks(self.break_mark)
end
end
+redef class AWithExpr
+ redef fun accept_flow_visitor(v)
+ do
+ super
+ v.merge_breaks(self.break_mark)
+ end
+end
+
redef class AAssertExpr
redef fun accept_flow_visitor(v)
do
var flow = node.after_flow_context.as(not null)
if not flow.is_variable_set(variable) then
- self.toolcontext.error(node.hot_location, "Error: variable '{variable}' is possibly unset.")
+ self.toolcontext.error(node.hot_location, "Error: possibly unset variable `{variable}`.")
# Remove the variable to avoid repeating errors
self.maybe_unset_vars.remove(variable)
end
var name = variable.name
var found = search_variable(name)
if found != null then
- self.error(node, "Error: A variable named `{name}' already exists")
+ self.error(node, "Error: a variable named `{name}` already exists.")
return false
end
scopes.first.variables[name] = variable
if nid == null then
var res = search_label("")
if res != null then
- self.error(nlabel, "Syntax error: anonymous label already defined.")
+ self.error(nlabel, "Syntax Error: anonymous label already defined.")
end
name = ""
else
name = nid.text
var found = self.search_label(name)
if found != null then
- self.error(nlabel, "Syntax error: label {name} already defined.")
+ self.error(nlabel, "Syntax Error: label `{name}` already defined.")
end
end
else
if nid == null then
var res = search_label("")
if res == null then
- self.error(nlabel, "Syntax error: invalid anonymous label.")
+ self.error(nlabel, "Syntax Error: invalid anonymous label.")
return null
end
return res
var name = nid.text
var res = search_label(name)
if res == null then
- self.error(nlabel, "Syntax error: invalid label {name}.")
+ self.error(nlabel, "Syntax Error: invalid label `{name}`.")
return null
end
return res
return res
end
end
- self.error(node, "Syntax Error: 'break' statement outside block.")
+ self.error(node, "Syntax Error: `break` statement outside block.")
return null
end
end
end
end
+redef class AWithExpr
+ # The break escape mark associated with the 'with'
+ var break_mark: nullable EscapeMark
+
+ redef fun accept_scope_visitor(v)
+ do
+ v.scopes.unshift(new Scope)
+
+ var escapemark = v.make_escape_mark(n_label, true)
+ self.break_mark = escapemark
+
+ v.enter_visit(n_expr)
+ v.enter_visit_block(n_block, escapemark)
+
+ v.shift_scope
+ end
+end
+
redef class AVarFormExpr
# The associated variable
var variable: nullable Variable
if variable != null then
var n: AExpr
if not n_args.n_exprs.is_empty or n_args isa AParExprs then
- v.error(self, "Error: {name} is variable, not a function.")
+ v.error(self, "Error: `{name}` is a variable, not a method.")
return
end
n = variable_create(variable)
# Is `self` use restricted?
# * no explicit `self`
# * method called on the implicit self must be top-level
+ # Currently only used for `new` factory since there is no valid receiver inside
var is_toplevel_context = false
init
selfvariable.declared_type = mclass.mclass_type
var mprop = mpropdef.mproperty
- if mprop isa MMethod and (mprop.is_toplevel or mprop.is_new) then
+ if mprop isa MMethod and mprop.is_new then
is_toplevel_context = true
end
end
# If `sub` is a safe subtype of `sup` then return `sub`.
# If `sub` is an unsafe subtype (ie an implicit cast is required), then return `sup`.
#
- # The point of the return type is to determinate the usable type on an expression:
+ # The point of the return type is to determinate the usable type on an expression when `autocast` is true:
# If the suptype is safe, then the return type is the one on the expression typed by `sub`.
# Is the subtype is unsafe, then the return type is the one of an implicit cast on `sup`.
- fun check_subtype(node: ANode, sub, sup: MType): nullable MType
+ fun check_subtype(node: ANode, sub, sup: MType, autocast: Bool): nullable MType
do
if self.is_subtype(sub, sup) then return sub
- if self.is_subtype(sub, self.anchor_to(sup)) then
+ if autocast and self.is_subtype(sub, self.anchor_to(sup)) then
# FIXME workaround to the current unsafe typing policy. To remove once fixed virtual types exists.
#node.debug("Unsafe typing: expected {sup}, got {sub}")
return sup
end
- self.modelbuilder.error(node, "Type error: expected {sup}, got {sub}")
+ if sub.need_anchor then
+ var u = anchor_to(sub)
+ self.modelbuilder.error(node, "Type Error: expected `{sup}`, got `{sub}: {u}`.")
+ else
+ self.modelbuilder.error(node, "Type Error: expected `{sup}`, got `{sub}`.")
+ end
return null
end
end
return null # forward error
end
- self.error(nexpr, "Type error: expected expression.")
+ self.error(nexpr, "Error: expected an expression.")
return null
end
if sup == null then return null # Forward error
- var res = check_subtype(nexpr, sub, sup)
+ var res = check_subtype(nexpr, sub, sup, true)
if res != sub then
nexpr.implicit_cast_to = res
end
if sup == null then return null # Forward error
if sup == sub then
- self.modelbuilder.warning(node, "useless-type-test", "Warning: Expression is already a {sup}.")
+ self.modelbuilder.warning(node, "useless-type-test", "Warning: expression is already a `{sup}`.")
else if self.is_subtype(sub, sup) then
- self.modelbuilder.warning(node, "useless-type-test", "Warning: Expression is already a {sup} since it is a {sub}.")
+ self.modelbuilder.warning(node, "useless-type-test", "Warning: expression is already a `{sup}` since it is a `{sub}`.")
end
return sup
end
+ # Can `mtype` be null (up to the current knowledge)?
+ fun can_be_null(mtype: MType): Bool
+ do
+ if mtype isa MNullableType or mtype isa MNullType then return true
+ if mtype isa MFormalType then
+ var x = anchor_to(mtype)
+ if x isa MNullableType or x isa MNullType then return true
+ end
+ return false
+ end
+
+ # Check that `mtype` can be null (up to the current knowledge).
+ #
+ # If not then display a `useless-null-test` warning on node and return false.
+ # Else return true.
+ fun check_can_be_null(anode: ANode, mtype: MType): Bool
+ do
+ if can_be_null(mtype) then return true
+
+ if mtype isa MFormalType then
+ var res = anchor_to(mtype)
+ modelbuilder.warning(anode, "useless-null-test", "Warning: expression is not null, since it is a `{mtype}: {res}`.")
+ else
+ modelbuilder.warning(anode, "useless-null-test", "Warning: expression is not null, since it is a `{mtype}`.")
+ end
+ return false
+ end
+
# Special verification on != and == for null
# Return true
fun null_test(anode: ABinopExpr)
if not mtype2 isa MNullType then return
# Check of useless null
- if not mtype isa MNullableType then
- if not anchor_to(mtype) isa MNullableType then
- modelbuilder.warning(anode, "useless-null-test", "Warning: expression is not null, since it is a `{mtype}`.")
- end
- return
+ if not check_can_be_null(anode.n_expr, mtype) then return
+
+ if mtype isa MNullType then
+ # Because of type adaptation, we cannot just stop here
+ # so return use `null` as a bottom type that will be merged easily (cf) `merge_types`
+ mtype = null
+ else
+ mtype = mtype.as_notnull
end
# Check for type adaptation
var variable = anode.n_expr.its_variable
if variable == null then return
+ # One is null (mtype2 see above) the other is not null
if anode isa AEqExpr then
- anode.after_flow_context.when_true.set_var(variable, mtype2)
- anode.after_flow_context.when_false.set_var(variable, mtype.mtype)
+ anode.after_flow_context.when_true.set_var(self, variable, mtype2)
+ anode.after_flow_context.when_false.set_var(self, variable, mtype)
else if anode isa ANeExpr then
- anode.after_flow_context.when_false.set_var(variable, mtype2)
- anode.after_flow_context.when_true.set_var(variable, mtype.mtype)
+ anode.after_flow_context.when_false.set_var(self, variable, mtype2)
+ anode.after_flow_context.when_true.set_var(self, variable, mtype)
else
abort
end
fun get_mclass(node: ANode, name: String): nullable MClass
do
- var mclass = modelbuilder.try_get_mclass_by_name(node, mmodule, name)
- if mclass == null then
- self.modelbuilder.error(node, "Type Error: missing primitive class `{name}'.")
- end
+ var mclass = modelbuilder.get_mclass_by_name(node, mmodule, name)
return mclass
end
if recvtype isa MNullType then
# `null` only accepts some methods of object.
if name == "==" or name == "!=" or name == "is_same_instance" then
- unsafe_type = mmodule.object_type.as_nullable
+ var objclass = get_mclass(node, "Object")
+ if objclass == null then return null # Forward error
+ unsafe_type = objclass.mclass_type
else
- self.error(node, "Error: Method '{name}' call on 'null'.")
+ self.error(node, "Error: method `{name}` called on `null`.")
return null
end
end
end
if mproperty == null then
- #self.modelbuilder.error(node, "Type error: property {name} not found in {unsafe_type} (ie {recvtype})")
if recv_is_self then
- self.modelbuilder.error(node, "Error: Method or variable '{name}' unknown in {recvtype}.")
+ self.modelbuilder.error(node, "Error: method or variable `{name}` unknown in `{recvtype}`.")
+ else if recvtype.need_anchor then
+ self.modelbuilder.error(node, "Error: method `{name}` does not exists in `{recvtype}: {unsafe_type}`.")
else
- self.modelbuilder.error(node, "Error: Method '{name}' doesn't exists in {recvtype}.")
+ self.modelbuilder.error(node, "Error: method `{name}` does not exists in `{recvtype}`.")
end
return null
end
assert mproperty isa MMethod
if is_toplevel_context and recv_is_self and not mproperty.is_toplevel then
- error(node, "Error: '{name}' is not a top-level method, thus need a receiver.")
+ error(node, "Error: `{name}` is not a top-level method, thus need a receiver.")
end
if not recv_is_self and mproperty.is_toplevel then
- error(node, "Error: cannot call '{name}', a top-level method, with a receiver.")
+ error(node, "Error: cannot call `{name}`, a top-level method, with a receiver.")
end
if mproperty.visibility == protected_visibility and not recv_is_self and self.mmodule.visibility_for(mproperty.intro_mclassdef.mmodule) < intrude_visibility and not modelbuilder.toolcontext.opt_ignore_visibility.value then
- self.modelbuilder.error(node, "Error: Method '{name}' is protected and can only acceded by self.")
+ self.modelbuilder.error(node, "Error: method `{name}` is protected and can only accessed by `self`.")
return null
end
if info != null and self.mpropdef.mproperty.deprecation == null then
var mdoc = info.mdoc
if mdoc != null then
- self.modelbuilder.warning(node, "deprecated-method", "Deprecation Warning: Method '{name}' is deprecated: {mdoc.content.first}")
+ self.modelbuilder.warning(node, "deprecated-method", "Deprecation Warning: method `{name}` is deprecated: {mdoc.content.first}")
else
- self.modelbuilder.warning(node, "deprecated-method", "Deprecation Warning: Method '{name}' is deprecated.")
+ self.modelbuilder.warning(node, "deprecated-method", "Deprecation Warning: method `{name}` is deprecated.")
end
end
var propdefs = mproperty.lookup_definitions(self.mmodule, unsafe_type)
var mpropdef
if propdefs.length == 0 then
- self.modelbuilder.error(node, "Type error: no definition found for property {name} in {unsafe_type}")
+ self.modelbuilder.error(node, "Type Error: no definition found for property `{name}` in `{unsafe_type}`.")
return null
else if propdefs.length == 1 then
mpropdef = propdefs.first
else
- self.modelbuilder.warning(node, "property-conflict", "Warning: conflicting property definitions for property {name} in {unsafe_type}: {propdefs.join(" ")}")
+ self.modelbuilder.warning(node, "property-conflict", "Warning: conflicting property definitions for property `{name}` in `{unsafe_type}`: {propdefs.join(" ")}")
mpropdef = mproperty.intro
end
- var msignature = mpropdef.new_msignature or else mpropdef.msignature.as(not null)
+ var msignature = mpropdef.new_msignature or else mpropdef.msignature
+ if msignature == null then return null # skip error
msignature = resolve_for(msignature, recvtype, recv_is_self).as(MSignature)
var erasure_cast = false
var rettype = mpropdef.msignature.return_mtype
if not recv_is_self and rettype != null then
- rettype = rettype.as_notnullable
+ rettype = rettype.undecorate
if rettype isa MParameterType then
var erased_rettype = msignature.return_mtype
assert erased_rettype != null
# Visit the expressions of args and check their conformity with the corresponding type in signature
# The point of this method is to handle varargs correctly
# Note: The signature must be correctly adapted
- fun check_signature(node: ANode, args: Array[AExpr], name: String, msignature: MSignature): Bool
+ fun check_signature(node: ANode, args: Array[AExpr], mproperty: MProperty, msignature: MSignature): nullable SignatureMap
do
var vararg_rank = msignature.vararg_rank
if vararg_rank >= 0 then
if args.length < msignature.arity then
- #self.modelbuilder.error(node, "Error: Incorrect number of parameters. Got {args.length}, expected at least {msignature.arity}. Signature is {msignature}")
- self.modelbuilder.error(node, "Error: arity mismatch; prototype is '{name}{msignature}'")
- return false
+ modelbuilder.error(node, "Error: expected at least {msignature.arity} argument(s) for `{mproperty}{msignature}`; got {args.length}. See introduction at `{mproperty.full_name}`.")
+ return null
end
else if args.length != msignature.arity then
- self.modelbuilder.error(node, "Error: Incorrect number of parameters. Got {args.length}, expected {msignature.arity}. Signature is {msignature}")
- return false
+ if msignature.arity == msignature.min_arity then
+ modelbuilder.error(node, "Error: expected {msignature.arity} argument(s) for `{mproperty}{msignature}`; got {args.length}. See introduction at `{mproperty.full_name}`.")
+ return null
+ end
+ if args.length > msignature.arity then
+ modelbuilder.error(node, "Error: expected at most {msignature.arity} argument(s) for `{mproperty}{msignature}`; got {args.length}. See introduction at `{mproperty.full_name}`.")
+ return null
+ end
+ if args.length < msignature.min_arity then
+ modelbuilder.error(node, "Error: expected at least {msignature.min_arity} argument(s) for `{mproperty}{msignature}`; got {args.length}. See introduction at `{mproperty.full_name}`.")
+ return null
+ end
end
#debug("CALL {unsafe_type}.{msignature}")
+ # Associate each parameter to a position in the arguments
+ var map = new SignatureMap
+
+ var setted = args.length - msignature.min_arity
var vararg_decl = args.length - msignature.arity
+ var j = 0
for i in [0..msignature.arity[ do
- var j = i
- if i == vararg_rank then continue # skip the vararg
- if i > vararg_rank then
- j = i + vararg_decl
+ var param = msignature.mparameters[i]
+ if param.is_default then
+ if setted > 0 then
+ setted -= 1
+ else
+ continue
+ end
+ end
+ var arg = args[j]
+ map.map[i] = j
+ j += 1
+
+ if i == vararg_rank then
+ j += vararg_decl
+ continue # skip the vararg
end
- var paramtype = msignature.mparameters[i].mtype
- self.visit_expr_subtype(args[j], paramtype)
+
+ var paramtype = param.mtype
+ self.visit_expr_subtype(arg, paramtype)
end
if vararg_rank >= 0 then
var paramtype = msignature.mparameters[vararg_rank].mtype
var first = args[vararg_rank]
- if vararg_decl == 0 and first isa AVarargExpr then
+ if vararg_decl == 0 then
var mclass = get_mclass(node, "Array")
- if mclass == null then return false # Forward error
+ if mclass == null then return null # Forward error
var array_mtype = mclass.get_mtype([paramtype])
- self.visit_expr_subtype(first.n_expr, array_mtype)
- first.mtype = first.n_expr.mtype
+ if first isa AVarargExpr then
+ self.visit_expr_subtype(first.n_expr, array_mtype)
+ first.mtype = first.n_expr.mtype
+ else
+ # only one vararg, maybe `...` was forgot, so be gentle!
+ var t = visit_expr(first)
+ if t == null then return null # Forward error
+ if not is_subtype(t, paramtype) and is_subtype(t, array_mtype) then
+ # Not acceptable but could be a `...`
+ error(first, "Type Error: expected `{paramtype}`, got `{t}`. Is an ellipsis `...` missing on the argument?")
+ return null
+ end
+ # Standard valid vararg, finish the job
+ map.vararg_decl = 1
+ self.visit_expr_subtype(first, paramtype)
+ end
else
- for j in [vararg_rank..vararg_rank+vararg_decl] do
- self.visit_expr_subtype(args[j], paramtype)
+ map.vararg_decl = vararg_decl + 1
+ for i in [vararg_rank..vararg_rank+vararg_decl] do
+ self.visit_expr_subtype(args[i], paramtype)
end
end
end
- return true
+
+ return map
end
fun error(node: ANode, message: String)
fun get_variable(node: AExpr, variable: Variable): nullable MType
do
+ if not variable.is_adapted then return variable.declared_type
+
var flow = node.after_flow_context
- if flow == null then
- self.error(node, "No context!")
- return null
- end
+ if flow == null then return null # skip error
if flow.vars.has_key(variable) then
return flow.vars[variable]
#node.debug("*** START Collected for {variable}")
var mtypes = flow.collect_types(variable)
#node.debug("**** END Collected for {variable}")
- if mtypes == null or mtypes.length == 0 then
+ if mtypes.length == 0 then
return variable.declared_type
else if mtypes.length == 1 then
return mtypes.first
end
end
+ # Some variables where type-adapted during the visit
+ var dirty = false
+
+ # Some loops had been visited during the visit
+ var has_loop = false
+
fun set_variable(node: AExpr, variable: Variable, mtype: nullable MType)
do
var flow = node.after_flow_context
assert flow != null
- flow.set_var(variable, mtype)
+ flow.set_var(self, variable, mtype)
end
fun merge_types(node: ANode, col: Array[nullable MType]): nullable MType
var found = true
for t2 in col do
if t2 == null then continue # return null
- if t2 isa MNullableType or t2 isa MNullType then
+ if can_be_null(t2) and not can_be_null(t1) then
t1 = t1.as_nullable
end
if not is_subtype(t2, t1) then found = false
end
end
+# Mapping between parameters and arguments in a call.
+#
+# Parameters and arguments are not stored in the class but referenced by their position (starting from 0)
+#
+# The point of this class is to help engine and other things to map arguments in the AST to parameters of the model.
+class SignatureMap
+ # Associate a parameter to an argument
+ var map = new ArrayMap[Int, Int]
+
+ # The length of the vararg sequence
+ # 0 if no vararg or if reverse vararg (cf `AVarargExpr`)
+ var vararg_decl: Int = 0
+end
+
# A specific method call site with its associated informations.
class CallSite
# The associated node for location
# Is a implicit cast required on erasure typing policy?
var erasure_cast: Bool
+ # The mapping used on the call to associate arguments to parameters
+ # If null then no specific association is required.
+ var signaturemap: nullable SignatureMap = null
+
private fun check_signature(v: TypeVisitor, args: Array[AExpr]): Bool
do
- return v.check_signature(self.node, args, self.mproperty.name, self.msignature)
+ var map = v.check_signature(self.node, args, self.mproperty, self.msignature)
+ signaturemap = map
+ return map == null
end
end
redef class Variable
# The declared type of the variable
var declared_type: nullable MType
+
+ # Was the variable type-adapted?
+ # This is used to speedup type retrieval while it remains `false`
+ private var is_adapted = false
end
redef class FlowContext
# Store changes of types because of type evolution
private var vars = new HashMap[Variable, nullable MType]
- private var cache = new HashMap[Variable, nullable Array[nullable MType]]
# Adapt the variable to a static type
# Warning1: do not modify vars directly.
# Warning2: sub-flow may have cached a unadapted variable
- private fun set_var(variable: Variable, mtype: nullable MType)
+ private fun set_var(v: TypeVisitor, variable: Variable, mtype: nullable MType)
do
+ if variable.declared_type == mtype and not variable.is_adapted then return
+ if vars.has_key(variable) and vars[variable] == mtype then return
self.vars[variable] = mtype
- self.cache.keys.remove(variable)
+ v.dirty = true
+ variable.is_adapted = true
+ #node.debug "set {variable} to {mtype or else "X"}"
end
- private fun collect_types(variable: Variable): nullable Array[nullable MType]
+ # Look in the flow and previous flow and collect all first reachable type adaptation of a local variable
+ private fun collect_types(variable: Variable): Array[nullable MType]
do
- if cache.has_key(variable) then
- return cache[variable]
- end
- var res: nullable Array[nullable MType] = null
- if vars.has_key(variable) then
- var mtype = vars[variable]
- res = [mtype]
- else if self.previous.is_empty then
- # Root flow
- res = [variable.declared_type]
- else
- for flow in self.previous do
- if flow.is_unreachable then continue
- var r2 = flow.collect_types(variable)
- if r2 == null then continue
- if res == null then
- res = r2.to_a
- else
- for t in r2 do
- if not res.has(t) then res.add(t)
- end
+ #node.debug "flow for {variable}"
+ var res = new Array[nullable MType]
+
+ var todo = [self]
+ var seen = new HashSet[FlowContext]
+ while not todo.is_empty do
+ var f = todo.pop
+ if f.is_unreachable then continue
+ if seen.has(f) then continue
+ seen.add f
+
+ if f.vars.has_key(variable) then
+ # Found something. Collect it and do not process further on this path
+ res.add f.vars[variable]
+ #f.node.debug "process {variable}: got {f.vars[variable] or else "X"}"
+ else
+ todo.add_all f.previous
+ todo.add_all f.loops
+ if f.previous.is_empty then
+ # Root flowcontext mean a parameter or something related
+ res.add variable.declared_type
+ #f.node.debug "root process {variable}: got {variable.declared_type or else "X"}"
end
end
end
- cache[variable] = res
+ #self.node.debug "##### end flow for {variable}: {res.join(" ")}"
return res
end
end
var nblock = self.n_block
if nblock == null then return
- var mpropdef = self.mpropdef.as(not null)
+ var mpropdef = self.mpropdef
+ if mpropdef == null then return # skip error
+
var v = new TypeVisitor(modelbuilder, mpropdef.mclassdef.mmodule, mpropdef)
self.selfvariable = v.selfvariable
var mmethoddef = self.mpropdef.as(not null)
- for i in [0..mmethoddef.msignature.arity[ do
- var mtype = mmethoddef.msignature.mparameters[i].mtype
- if mmethoddef.msignature.vararg_rank == i then
+ var msignature = mmethoddef.msignature
+ if msignature == null then return # skip error
+ for i in [0..msignature.arity[ do
+ var mtype = msignature.mparameters[i].mtype
+ if msignature.vararg_rank == i then
var arrayclass = v.get_mclass(self.n_signature.n_params[i], "Array")
if arrayclass == null then return # Skip error
mtype = arrayclass.get_mtype([mtype])
assert variable != null
variable.declared_type = mtype
end
- v.visit_stmt(nblock)
- if not nblock.after_flow_context.is_unreachable and mmethoddef.msignature.return_mtype != null then
+ loop
+ v.dirty = false
+ v.visit_stmt(nblock)
+ if not v.has_loop or not v.dirty then break
+ end
+
+ if not nblock.after_flow_context.is_unreachable and msignature.return_mtype != null then
# We reach the end of the function without having a return, it is bad
- v.error(self, "Control error: Reached end of function (a 'return' with a value was expected).")
+ v.error(self, "Error: reached end of function; expected `return` with a value.")
end
end
end
do
if not has_value then return
- var mpropdef = self.mpropdef.as(not null)
+ var mpropdef = self.mpropdef
+ if mpropdef == null then return # skip error
+
var v = new TypeVisitor(modelbuilder, mpropdef.mclassdef.mmodule, mpropdef)
self.selfvariable = v.selfvariable
v.visit_stmt(nblock)
if not nblock.after_flow_context.is_unreachable then
# We reach the end of the init without having a return, it is bad
- v.error(self, "Control error: Reached end of block (a 'return' with a value was expected).")
+ v.error(self, "Error: reached end of block; expected `return`.")
end
end
end
var decltype = mtype
if mtype == null or mtype isa MNullType then
- decltype = v.get_mclass(self, "Object").mclass_type.as_nullable
+ var objclass = v.get_mclass(self, "Object")
+ if objclass == null then return # skip error
+ decltype = objclass.mclass_type.as_nullable
if mtype == null then mtype = decltype
end
#debug("var {variable}: {mtype}")
+ self.mtype = mtype
self.is_typed = true
end
end
# Return the static type of the value to store.
private fun resolve_reassignment(v: TypeVisitor, readtype, writetype: MType): nullable MType
do
- var reassign_name: String
- if self.n_assign_op isa APlusAssignOp then
- reassign_name = "+"
- else if self.n_assign_op isa AMinusAssignOp then
- reassign_name = "-"
- else
- abort
- end
+ var reassign_name = self.n_assign_op.operator
self.read_type = readtype
- var callsite = v.get_method(self, readtype, reassign_name, false)
+ var callsite = v.get_method(self.n_assign_op, readtype, reassign_name, false)
if callsite == null then return null # Skip error
self.reassign_callsite = callsite
var value_type = v.visit_expr_subtype(self.n_value, msignature.mparameters.first.mtype)
if value_type == null then return null # Skip error
- v.check_subtype(self, rettype, writetype)
+ v.check_subtype(self, rettype, writetype, false)
return rettype
end
end
v.visit_expr_subtype(nexpr, ret_type)
else
v.visit_expr(nexpr)
- v.error(self, "Error: Return with value in a procedure.")
+ v.error(nexpr, "Error: `return` with value in a procedure.")
end
else if ret_type != null then
- v.error(self, "Error: Return without value in a function.")
+ v.error(self, "Error: `return` without value in a function.")
end
self.is_typed = true
end
var t = v.merge_types(self, [t1, t2])
if t == null then
- v.error(self, "Type Error: ambiguous type {t1} vs {t2}")
+ v.error(self, "Type Error: ambiguous type `{t1}` vs `{t2}`.")
end
self.mtype = t
end
redef class AWhileExpr
redef fun accept_typing(v)
do
+ v.has_loop = true
v.visit_expr_bool(n_expr)
-
v.visit_stmt(n_block)
self.is_typed = true
end
redef class ALoopExpr
redef fun accept_typing(v)
do
+ v.has_loop = true
v.visit_stmt(n_block)
self.is_typed = true
end
private fun do_type_iterator(v: TypeVisitor, mtype: MType)
do
if mtype isa MNullType then
- v.error(self, "Type error: 'for' cannot iterate over 'null'")
+ v.error(self, "Type Error: `for` cannot iterate over `null`.")
return
end
# check iterator method
var itdef = v.get_method(self, mtype, "iterator", n_expr isa ASelfExpr)
if itdef == null then
- v.error(self, "Type Error: 'for' expects a type providing 'iterator' method, got '{mtype}'.")
+ v.error(self, "Type Error: `for` expects a type providing an `iterator` method, got `{mtype}`.")
return
end
self.method_iterator = itdef
# check that iterator return something
var ittype = itdef.msignature.return_mtype
if ittype == null then
- v.error(self, "Type Error: 'for' expects method 'iterator' to return an 'Iterator' or 'MapIterator' type'.")
+ v.error(self, "Type Error: `for` expects the method `iterator` to return an `Iterator` or `MapIterator` type.")
return
end
var coltype = ittype.supertype_to(v.mmodule, v.anchor, colit_cla)
var variables = self.variables
if variables.length != 1 then
- v.error(self, "Type Error: 'for' expects only one variable when using 'Iterator'.")
+ v.error(self, "Type Error: `for` expects only one variable when using `Iterator`.")
else
variables.first.declared_type = coltype.arguments.first
end
var coltype = ittype.supertype_to(v.mmodule, v.anchor, mapit_cla)
var variables = self.variables
if variables.length != 2 then
- v.error(self, "Type Error: 'for' expects two variables when using 'MapIterator'.")
+ v.error(self, "Type Error: `for` expects two variables when using `MapIterator`.")
else
variables[0].declared_type = coltype.arguments[0]
variables[1].declared_type = coltype.arguments[1]
end
if not is_col and not is_map then
- v.error(self, "Type Error: 'for' expects method 'iterator' to return an 'Iterator' or 'MapIterator' type'.")
+ v.error(self, "Type Error: `for` expects the method `iterator` to return an `Iterator` or `MapIterator` type.")
return
end
# anchor formal and virtual types
if mtype.need_anchor then mtype = v.anchor_to(mtype)
- mtype = mtype.as_notnullable
+ mtype = mtype.undecorate
self.coltype = mtype.as(MClassType)
# get methods is_ok, next, item
var ikdef = v.get_method(self, ittype, "is_ok", false)
if ikdef == null then
- v.error(self, "Type Error: 'for' expects a method 'is_ok' in 'Iterator' type {ittype}.")
+ v.error(self, "Type Error: `for` expects a method `is_ok` in type `{ittype}`.")
return
end
self.method_is_ok = ikdef
var itemdef = v.get_method(self, ittype, "item", false)
if itemdef == null then
- v.error(self, "Type Error: 'for' expects a method 'item' in 'Iterator' type {ittype}.")
+ v.error(self, "Type Error: `for` expects a method `item` in type `{ittype}`.")
return
end
self.method_item = itemdef
var nextdef = v.get_method(self, ittype, "next", false)
if nextdef == null then
- v.error(self, "Type Error: 'for' expects a method 'next' in 'Iterator' type {ittype}.")
+ v.error(self, "Type Error: `for` expects a method `next` in type {ittype}.")
return
end
self.method_next = nextdef
if is_map then
var keydef = v.get_method(self, ittype, "key", false)
if keydef == null then
- v.error(self, "Type Error: 'for' expects a method 'key' in 'Iterator' type {ittype}.")
+ v.error(self, "Type Error: `for` expects a method `key` in type `{ittype}`.")
return
end
self.method_key = keydef
redef fun accept_typing(v)
do
+ v.has_loop = true
var mtype = v.visit_expr(n_expr)
if mtype == null then return
self.do_type_iterator(v, mtype)
v.visit_stmt(n_block)
+
+ self.mtype = n_block.mtype
+ self.is_typed = true
+ end
+end
+
+redef class AWithExpr
+ var method_start: nullable CallSite
+ var method_finish: nullable CallSite
+
+ redef fun accept_typing(v: TypeVisitor)
+ do
+ var mtype = v.visit_expr(n_expr)
+ if mtype == null then return
+
+ method_start = v.get_method(self, mtype, "start", n_expr isa ASelfExpr)
+ method_finish = v.get_method(self, mtype, "finish", n_expr isa ASelfExpr)
+
+ v.visit_stmt(n_block)
self.mtype = n_block.mtype
self.is_typed = true
end
return # Skip error
end
- t1 = t1.as_notnullable
+ if t1 isa MNullType then
+ v.error(n_expr, "Type Error: `or else` on `null`.")
+ else if v.check_can_be_null(n_expr, t1) then
+ t1 = t1.as_notnull
+ end
var t = v.merge_types(self, [t1, t2])
if t == null then
- t = v.mmodule.object_type
- if t2 isa MNullableType then
+ var c = v.get_mclass(self, "Object")
+ if c == null then return # forward error
+ t = c.mclass_type
+ if v.can_be_null(t2) then
t = t.as_nullable
end
#v.error(self, "Type Error: ambiguous type {t1} vs {t2}")
var mclass = v.get_mclass(self, "String")
if mclass == null then return # Forward error
self.mtype = mclass.mclass_type
+ var objclass = v.get_mclass(self, "Object")
+ if objclass == null then return # Forward error
+ var objtype = objclass.mclass_type
for nexpr in self.n_exprs do
- v.visit_expr_subtype(nexpr, v.mmodule.object_type)
+ v.visit_expr_subtype(nexpr, objtype)
end
end
end
end
set_comprehension(e)
if mtype != null then
- if v.check_subtype(e, t, mtype) == null then return # Skip error
+ if v.check_subtype(e, t, mtype, false) == null then return # Forward error
if t == mtype then useless = true
else
mtypes.add(t)
end
end
if mtype == null then
+ # Ensure monotony for type adaptation on loops
+ if self.element_mtype != null then mtypes.add self.element_mtype
mtype = v.merge_types(self, mtypes)
end
if mtype == null or mtype isa MNullType then
else if v.is_subtype(t2, t1) then
mtype = mclass.get_mtype([t1])
else
- v.error(self, "Type Error: Cannot create range: {t1} vs {t2}")
+ v.error(self, "Type Error: cannot create range: `{t1}` vs `{t2}`.")
return
end
#var from = if orig != null then orig.to_s else "invalid"
#var to = if mtype != null then mtype.to_s else "invalid"
#debug("adapt {variable}: {from} -> {to}")
- self.after_flow_context.when_true.set_var(variable, mtype)
+ self.after_flow_context.when_true.set_var(v, variable, mtype)
end
self.mtype = v.type_bool(self)
if mtype == null then return # Forward error
if mtype isa MNullType then
- v.error(self, "Type error: as(not null) on null")
- return
- end
- if mtype isa MNullableType then
- self.mtype = mtype.mtype
+ v.error(self, "Type Error: `as(not null)` on `null`.")
return
end
- self.mtype = mtype
- if mtype isa MClassType then
- v.modelbuilder.warning(self, "useless-type-test", "Warning: expression is already not null, since it is a `{mtype}`.")
- return
- end
- assert mtype.need_anchor
- var u = v.anchor_to(mtype)
- if not u isa MNullableType then
- v.modelbuilder.warning(self, "useless-type-test", "Warning: expression is already not null, since it is a `{mtype}: {u}`.")
- return
+ if v.check_can_be_null(n_expr, mtype) then
+ mtype = mtype.as_notnull
end
+
+ self.mtype = mtype
end
end
redef fun accept_typing(v)
do
if v.is_toplevel_context and not self isa AImplicitSelfExpr then
- v.error(self, "Error: self cannot be used in top-level method.")
+ v.error(self, "Error: `self` cannot be used in top-level method.")
end
var variable = v.selfvariable
self.its_variable = variable
end
end
+redef class AImplicitSelfExpr
+ # Is the implicit receiver `sys`?
+ #
+ # By default, the implicit receiver is `self`.
+ # But when there is not method for `self`, `sys` is used as a fall-back.
+ # Is this case this flag is set to `true`.
+ var is_sys = false
+end
+
## MESSAGE SENDING AND PROPERTY
redef class ASendExpr
redef fun accept_typing(v)
do
- var recvtype = v.visit_expr(self.n_expr)
+ var nrecv = self.n_expr
+ var recvtype = v.visit_expr(nrecv)
var name = self.property_name
+ var node = self.property_node
if recvtype == null then return # Forward error
- var callsite = v.get_method(self, recvtype, name, self.n_expr isa ASelfExpr)
- if callsite == null then return
+ var callsite = null
+ var unsafe_type = v.anchor_to(recvtype)
+ var mproperty = v.try_get_mproperty_by_name2(node, unsafe_type, name)
+ if mproperty == null and nrecv isa AImplicitSelfExpr then
+ # Special fall-back search in `sys` when noting found in the implicit receiver.
+ var sysclass = v.try_get_mclass(node, "Sys")
+ if sysclass != null then
+ var systype = sysclass.mclass_type
+ mproperty = v.try_get_mproperty_by_name2(node, systype, name)
+ if mproperty != null then
+ callsite = v.get_method(node, systype, name, false)
+ if callsite == null then return # Forward error
+ # Update information, we are looking at `sys` now, not `self`
+ nrecv.is_sys = true
+ nrecv.its_variable = null
+ nrecv.mtype = systype
+ recvtype = systype
+ end
+ end
+ end
+ if callsite == null then
+ # If still nothing, just exit
+ callsite = v.get_method(node, recvtype, name, nrecv isa ASelfExpr)
+ if callsite == null then return
+ end
+
self.callsite = callsite
var msignature = callsite.msignature
if callsite.mproperty.is_init then
var vmpropdef = v.mpropdef
if not (vmpropdef isa MMethodDef and vmpropdef.mproperty.is_init) then
- v.error(self, "Can call a init only in another init")
+ v.error(node, "Error: an `init` can only be called from another `init`.")
end
if vmpropdef isa MMethodDef and vmpropdef.mproperty.is_root_init and not callsite.mproperty.is_root_init then
- v.error(self, "Error: {vmpropdef} cannot call a factory {callsite.mproperty}")
+ v.error(node, "Error: `{vmpropdef}` cannot call a factory `{callsite.mproperty}`.")
end
end
# Each subclass simply provide the correct name.
private fun property_name: String is abstract
+ # The node identifying the name (id, operator, etc) for messages.
+ #
+ # Is `self` by default
+ private fun property_node: ANode do return self
+
# An array of all arguments (excluding self)
fun raw_arguments: Array[AExpr] do return compute_raw_arguments
redef class ABinopExpr
redef fun compute_raw_arguments do return [n_expr2]
+ redef fun property_name do return operator
+ redef fun property_node do return n_op
end
redef class AEqExpr
- redef fun property_name do return "=="
redef fun accept_typing(v)
do
super
end
end
redef class ANeExpr
- redef fun property_name do return "!="
redef fun accept_typing(v)
do
super
v.null_test(self)
end
end
-redef class ALtExpr
- redef fun property_name do return "<"
-end
-redef class ALeExpr
- redef fun property_name do return "<="
-end
-redef class ALlExpr
- redef fun property_name do return "<<"
-end
-redef class AGtExpr
- redef fun property_name do return ">"
-end
-redef class AGeExpr
- redef fun property_name do return ">="
-end
-redef class AGgExpr
- redef fun property_name do return ">>"
-end
-redef class APlusExpr
- redef fun property_name do return "+"
-end
-redef class AMinusExpr
- redef fun property_name do return "-"
-end
-redef class AStarshipExpr
- redef fun property_name do return "<=>"
-end
-redef class AStarExpr
- redef fun property_name do return "*"
-end
-redef class AStarstarExpr
- redef fun property_name do return "**"
-end
-redef class ASlashExpr
- redef fun property_name do return "/"
-end
-redef class APercentExpr
- redef fun property_name do return "%"
-end
-redef class AUminusExpr
- redef fun property_name do return "unary -"
+redef class AUnaryopExpr
+ redef fun property_name do return "unary {operator}"
redef fun compute_raw_arguments do return new Array[AExpr]
end
redef class ACallExpr
redef fun property_name do return n_id.text
+ redef fun property_node do return n_id
redef fun compute_raw_arguments do return n_args.to_a
end
redef class ACallAssignExpr
redef fun property_name do return n_id.text + "="
+ redef fun property_node do return n_id
redef fun compute_raw_arguments
do
var res = n_args.to_a
do
var recvtype = v.visit_expr(self.n_expr)
var name = self.property_name
+ var node = self.property_node
if recvtype == null then return # Forward error
var for_self = self.n_expr isa ASelfExpr
- var callsite = v.get_method(self, recvtype, name, for_self)
+ var callsite = v.get_method(node, recvtype, name, for_self)
if callsite == null then return
self.callsite = callsite
var readtype = callsite.msignature.return_mtype
if readtype == null then
- v.error(self, "Error: {name} is not a function")
+ v.error(node, "Error: `{name}` is not a function.")
return
end
- var wcallsite = v.get_method(self, recvtype, name + "=", self.n_expr isa ASelfExpr)
+ var wcallsite = v.get_method(node, recvtype, name + "=", self.n_expr isa ASelfExpr)
if wcallsite == null then return
self.write_callsite = wcallsite
redef class ACallReassignExpr
redef fun property_name do return n_id.text
+ redef fun property_node do return n_id
redef fun compute_raw_arguments do return n_args.to_a
end
redef class AInitExpr
redef fun property_name do return "init"
+ redef fun property_node do return n_kwinit
redef fun compute_raw_arguments do return n_args.to_a
end
assert recvtype != null
var mproperty = v.mpropdef.mproperty
if not mproperty isa MMethod then
- v.error(self, "Error: super only usable in a method")
+ v.error(self, "Error: `super` only usable in a `method`.")
return
end
var superprops = mproperty.lookup_super_definitions(v.mmodule, anchor)
process_superinit(v)
return
end
- v.error(self, "Error: No super method to call for {mproperty}.")
+ v.error(self, "Error: no super method to call for `{mproperty}`.")
return
end
# FIXME: covariance of return type in linear extension?
msignature = v.resolve_for(msignature, recvtype, true).as(MSignature)
var args = self.n_args.to_a
if args.length > 0 then
- v.check_signature(self, args, mproperty.name, msignature)
+ signaturemap = v.check_signature(self, args, mproperty, msignature)
end
self.mtype = msignature.return_mtype
self.is_typed = true
mpropdef = v.mpropdef.as(MMethodDef)
end
+ # The mapping used on the call to associate arguments to parameters.
+ # If null then no specific association is required.
+ var signaturemap: nullable SignatureMap
+
private fun process_superinit(v: TypeVisitor)
do
var anchor = v.anchor
continue
end
if superprop != null and superprop.mproperty != candidate and not superprop.mproperty.is_root_init then
- v.error(self, "Error: conflicting super constructor to call for {mproperty}: {candidate.full_name}, {superprop.mproperty.full_name}")
+ v.error(self, "Error: conflicting super constructor to call for `{mproperty}`: `{candidate.full_name}`, `{superprop.mproperty.full_name}`")
return
end
var candidatedefs = candidate.lookup_definitions(v.mmodule, anchor)
candidatedefs.add(superprop)
end
if candidatedefs.length > 1 then
- v.error(self, "Error: conflicting property definitions for property {mproperty} in {recvtype}: {candidatedefs.join(", ")}")
+ v.error(self, "Error: conflicting property definitions for property `{mproperty}` in `{recvtype}`: {candidatedefs.join(", ")}")
return
end
superprop = candidatedefs.first
end
if superprop == null then
- v.error(self, "Error: No super method to call for {mproperty}.")
+ v.error(self, "Error: no super method to call for `{mproperty}`.")
return
end
else
# Check there is at least enough parameters
if mpropdef.msignature.arity < msignature.arity then
- v.error(self, "Error: Not enough implicit arguments to pass. Got {mpropdef.msignature.arity}, expected at least {msignature.arity}. Signature is {msignature}")
+ v.error(self, "Error: not enough implicit arguments to pass. Got `{mpropdef.msignature.arity}`, expected at least `{msignature.arity}`. Signature is `{msignature}`.")
return
end
# Check that each needed parameter is conform
for sp in msignature.mparameters do
var p = mpropdef.msignature.mparameters[i]
if not v.is_subtype(p.mtype, sp.mtype) then
- v.error(self, "Type error: expected argument #{i} of type {sp.mtype}, got implicit argument {p.name} of type {p.mtype}. Signature is {msignature}")
+ v.error(self, "Type Error: expected argument #{i} of type `{sp.mtype}`, got implicit argument `{p.name}` of type `{p.mtype}`. Signature is {msignature}")
return
end
i += 1
if not recvtype isa MClassType then
if recvtype isa MNullableType then
- v.error(self, "Type error: cannot instantiate the nullable type {recvtype}.")
+ v.error(self, "Type Error: cannot instantiate the nullable type `{recvtype}`.")
+ return
+ else if recvtype isa MFormalType then
+ v.error(self, "Type Error: cannot instantiate the formal type `{recvtype}`.")
return
else
- v.error(self, "Type error: cannot instantiate the formal type {recvtype}.")
+ v.error(self, "Type Error: cannot instantiate the type `{recvtype}`.")
return
end
end
self.recvtype = recvtype
+ var kind = recvtype.mclass.kind
var name: String
var nid = self.n_id
+ var node: ANode
if nid != null then
name = nid.text
+ node = nid
else
name = "new"
+ node = self.n_kwnew
+ end
+ if name == "intern" then
+ if kind != concrete_kind then
+ v.error(self, "Type Error: cannot instantiate {kind} {recvtype}.")
+ return
+ end
+ if n_args.n_exprs.not_empty then
+ v.error(n_args, "Type Error: the intern constructor expects no arguments.")
+ return
+ end
+ # Our job is done
+ self.mtype = recvtype
+ return
end
- var callsite = v.get_method(self, recvtype, name, false)
+
+ var callsite = v.get_method(node, recvtype, name, false)
if callsite == null then return
if not callsite.mproperty.is_new then
- var kind = recvtype.mclass.kind
if kind != concrete_kind then
- v.error(self, "Type Error: Cannot instantiate {kind} {recvtype}.")
+ v.error(self, "Type Error: cannot instantiate {kind} `{recvtype}`.")
return
end
self.mtype = recvtype
self.callsite = callsite
if not callsite.mproperty.is_init_for(recvtype.mclass) then
- v.error(self, "Error: {name} is not a constructor.")
+ v.error(self, "Error: `{name}` is not a constructor.")
return
end
####
redef class AAttrFormExpr
- # The attribute acceded.
+ # The attribute accessed.
var mproperty: nullable MAttribute
# The static type of the attribute.
var attr_type: nullable MType
- # Resolve the attribute acceded.
+ # Resolve the attribute accessed.
private fun resolve_property(v: TypeVisitor)
do
var recvtype = v.visit_expr(self.n_expr)
if recvtype == null then return # Skip error
- var name = self.n_id.text
+ var node = self.n_id
+ var name = node.text
if recvtype isa MNullType then
- v.error(self, "Error: Attribute '{name}' access on 'null'.")
+ v.error(node, "Error: attribute `{name}` access on `null`.")
return
end
var unsafe_type = v.anchor_to(recvtype)
- var mproperty = v.try_get_mproperty_by_name2(self, unsafe_type, name)
+ var mproperty = v.try_get_mproperty_by_name2(node, unsafe_type, name)
if mproperty == null then
- v.modelbuilder.error(self, "Error: Attribute {name} doesn't exists in {recvtype}.")
+ v.modelbuilder.error(node, "Error: attribute `{name}` does not exist in `{recvtype}`.")
return
end
assert mproperty isa MAttribute
var mpropdefs = mproperty.lookup_definitions(v.mmodule, unsafe_type)
assert mpropdefs.length == 1
var mpropdef = mpropdefs.first
- var attr_type = mpropdef.static_mtype.as(not null)
+ var attr_type = mpropdef.static_mtype
+ if attr_type == null then return # skip error
attr_type = v.resolve_for(attr_type, recvtype, self.n_expr isa ASelfExpr)
self.attr_type = attr_type
end
var recvtype = self.n_expr.mtype.as(not null)
var bound = v.resolve_for(mtype, recvtype, false)
if bound isa MNullableType then
- v.error(self, "Error: isset on a nullable attribute.")
+ v.error(n_id, "Type Error: `isset` on a nullable attribute.")
end
self.mtype = v.type_bool(self)
end
# This kind of pseudo-expression can be only processed trough a signature
# See `check_signature`
# Other cases are a syntax error.
- v.error(self, "Syntax error: unexpected `...`")
+ v.error(self, "Syntax Error: unexpected `...`.")
end
end
import parser
import parser_util
+import astutil
+# A basic visitor that prints AST trees to the screen
class PrintTreeVisitor
super Visitor
private var rank: Int = 0
var need_help = false
var no_file = false
var interactive = false
+var xml = false
while not args.is_empty and args.first.chars.first == '-' do
if args.first == "-n" then
only_lexer = true
else if args.first == "-p" then
only_lexer = false
+ else if args.first == "-x" then
+ xml = true
else if args.first == "-e" then
no_file = true
else if args.first == "-i" then
print(" -n do not print anything")
print(" -l only lexer")
print(" -p lexer and parser (default)")
+ print(" -x instead of a ascii tree, output a XML document")
print(" -e instead on files, each argument is a content to parse")
print(" -i tree to parse are read interactively")
print(" -h print this help")
else if interactive then
if only_lexer then
- print "Error: -l and -i are incompatibles"
+ print "Error: -l and -i are incompatible"
exit 1
else if no_file then
- print "Error: -e and -i are incompatibles"
+ print "Error: -e and -i are incompatible"
exit 1
else if not args.is_empty then
print "Error: -i works without arguments"
return
end
- if not no_print then
+ if xml then
+ tree.parentize_tokens
+ tree.to_xml.write_to(stdout)
+ else if not no_print then
(new PrintTreeVisitor).enter_visit(tree)
end
end
var modelbuilder = new ModelBuilder(model, toolcontext)
# Here we load an process all modules passed on the command line
-var mmodules = modelbuilder.parse(arguments)
+var mmodules = modelbuilder.parse_full(arguments)
modelbuilder.run_phases
toolcontext.run_global_phases(mmodules)
if not (ast isa AModule or ast isa ABlockExpr or ast isa AExpr) then
var message = ""
if ast isa AError then message = " At {ast.location}: {ast.message}."
- toolcontext.warning(mdoc.location, "invalid-block", "Error: There is a block of code that is not valid Nit, thus not considered a nitunit. To suppress this warning, enclose the block with a fence tagged `nitish` or `raw` (see `man nitdoc`).{message}")
+ toolcontext.warning(mdoc.location, "invalid-block", "Error: there is a block of invalid Nit code, thus not considered a nitunit. To suppress this warning, enclose the block with a fence tagged `nitish` or `raw` (see `man nitdoc`).{message}")
failures.add("{mdoc.location}: Invalid block of code.{message}")
return
end
private fun compile_unitfile(file: String): Int
do
var nit_dir = toolcontext.nit_dir
- var nitg = nit_dir/"bin/nitg"
- if not nitg.file_exists then
- toolcontext.error(null, "Cannot find nitg. Set envvar NIT_DIR.")
+ var nitc = nit_dir/"bin/nitc"
+ if not nitc.file_exists then
+ toolcontext.error(null, "Error: cannot find nitc. Set envvar NIT_DIR.")
toolcontext.check_errors
end
var opts = new Array[String]
if mmodule != null then
opts.add "-I {mmodule.location.file.filename.dirname}"
end
- var cmd = "{nitg} --ignore-visibility --no-color '{file}' {opts.join(" ")} >'{file}.out1' 2>&1 </dev/null -o '{file}.bin'"
+ var cmd = "{nitc} --ignore-visibility --no-color '{file}' {opts.join(" ")} >'{file}.out1' 2>&1 </dev/null -o '{file}.bin'"
var res = sys.system(cmd)
return res
end
# Compile all `test_cases` cases in one file.
fun compile do
- # find nitg
+ # find nitc
var nit_dir = toolcontext.nit_dir
- var nitg = nit_dir/"bin/nitg"
- if not nitg.file_exists then
- toolcontext.error(null, "Cannot find nitg. Set envvar NIT_DIR.")
+ var nitc = nit_dir/"bin/nitc"
+ if not nitc.file_exists then
+ toolcontext.error(null, "Error: cannot find nitc. Set envvar NIT_DIR.")
toolcontext.check_errors
end
# compile test suite
var file = test_file
var include_dir = mmodule.location.file.filename.dirname
- var cmd = "{nitg} --no-color '{file}.nit' -I {include_dir} -o '{file}.bin' > '{file}.out' 2>&1 </dev/null"
+ var cmd = "{nitc} --no-color '{file}.nit' -I {include_dir} -o '{file}.bin' > '{file}.out' 2>&1 </dev/null"
var res = sys.system(cmd)
var f = new FileReader.open("{file}.out")
var msg = f.read_all
# Test method to be compiled and tested.
var test_method: MMethodDef
- # `ToolContext` to use to display messages and find `nitg` bin.
+ # `ToolContext` to use to display messages and find `nitc` bin.
var toolcontext: ToolContext
# `MMethodDef` to call before the test case.
# The human-readable description of the message.
#
- # It should be short and fit on a single line.
- # It should also have meaningful information first in case
- # on truncation by an IDE for instance.
+ # eg. "Error: cannot find method `foo`."
+ #
+ # A good message should:
+ #
+ # * start with a message type like "Error:", "Syntax Error:", "Warning:".
+ # The type is capitalized and terminated by a column.
+ # The rest on the message starts with a lowercase letter and is terminated with a dot.
+ #
+ # * be short and fit on a single line.
+ #
+ # * have meaningful information first.
+ # This helps the reader and remain usable
+ # when truncated, by an IDE for instance.
+ #
+ # * enclose identifiers, keywords and pieces of code with back-quotes.
var text: String
# Comparisons are made on message locations.
return location.as(not null) < other.location.as(not null)
end
+ redef fun ==(other): Bool do
+ if not other isa Message then return false
+ return location == other.location and tag == other.tag and text == other.text
+ end
+
redef fun to_s: String
do
var l = location
end
end
+redef class Location
+ # Errors and warnings associated to this location.
+ var messages: nullable Array[Message]
+
+ # Add a message to `self`
+ #
+ # See `messages`
+ private fun add_message(m: Message)
+ do
+ var ms = messages
+ if ms == null then
+ ms = new Array[Message]
+ messages = ms
+ end
+ ms.add m
+ end
+end
+
# Global context for tools
class ToolContext
# Number of errors
return tags.has("all") or tags.has(tag)
end
- # Output all current stacked messages and display total error informations
+ # Output all current stacked messages
#
# Return true if no errors occurred.
#
# If some errors occurred, the behavior depends on the value of `keep_going`.
- # If `keep_going` is false, then the program exits.
- # Else, the error count and the warning count are reset and false is returned.
+ # If `keep_going` is false, then the total error informations is displayed and the program exits.
+ # Else, false is returned.
fun check_errors: Bool
do
if messages.length > 0 then
end
if error_count > 0 then
- errors_info
- if not keep_going then exit(1)
+ if not keep_going then
+ errors_info
+ exit(1)
+ end
return false
end
return true
end
- # Display (and reset) total error informations
+ # Display total error informations
fun errors_info
do
if error_count == 0 and warning_count == 0 then return
if opt_no_color.value then return
sys.stderr.write "Errors: {error_count}. Warnings: {warning_count}.\n"
- error_count = 0
- warning_count = 0
end
# Display an error
- fun error(l: nullable Location, s: String)
+ #
+ # Return the message (to add information)
+ fun error(l: nullable Location, s: String): Message
do
- messages.add(new Message(l,null,s))
+ var m = new Message(l,null,s)
+ if messages.has(m) then return m
+ if l != null then l.add_message m
+ messages.add m
error_count = error_count + 1
if opt_stop_on_first_error.value then check_errors
+ return m
end
# Add an error, show errors and quit
+ #
+ # Because the program will quit, nothing is returned.
fun fatal_error(l: nullable Location, s: String)
do
error(l,s)
# * They always are real issues (no false positive)
#
# First-level warnings are displayed by default (except if option `-q` is given).
- fun warning(l: nullable Location, tag: String, text: String)
+ #
+ # Return the message (to add information) or null if the warning is disabled
+ fun warning(l: nullable Location, tag: String, text: String): nullable Message
do
- if opt_warning.value.has("no-{tag}") then return
- if not opt_warning.value.has(tag) and opt_warn.value == 0 then return
- if is_warning_blacklisted(l, tag) then return
- messages.add(new Message(l, tag, text))
+ if opt_warning.value.has("no-{tag}") then return null
+ if not opt_warning.value.has(tag) and opt_warn.value == 0 then return null
+ if is_warning_blacklisted(l, tag) then return null
+ var m = new Message(l, tag, text)
+ if messages.has(m) then return null
+ if l != null then l.add_message m
+ messages.add m
warning_count = warning_count + 1
if opt_stop_on_first_error.value then check_errors
+ return m
end
# Display a second-level warning.
#
# In order to prevent warning inflation à la Java, second-level warnings are not displayed by
# default and require an additional option `-W`.
- fun advice(l: nullable Location, tag: String, text: String)
+ #
+ # Return the message (to add information) or null if the warning is disabled
+ fun advice(l: nullable Location, tag: String, text: String): nullable Message
do
- if opt_warning.value.has("no-{tag}") then return
- if not opt_warning.value.has(tag) and opt_warn.value <= 1 then return
- if is_warning_blacklisted(l, tag) then return
- messages.add(new Message(l, tag, text))
+ if opt_warning.value.has("no-{tag}") then return null
+ if not opt_warning.value.has(tag) and opt_warn.value <= 1 then return null
+ if is_warning_blacklisted(l, tag) then return null
+ var m = new Message(l, tag, text)
+ if messages.has(m) then return null
+ if l != null then l.add_message m
+ messages.add m
warning_count = warning_count + 1
if opt_stop_on_first_error.value then check_errors
+ return m
end
# Display an info
# Option --stop-on-first-error
var opt_stop_on_first_error = new OptionBool("Stop on first error", "--stop-on-first-error")
+ # Option --keep-going
+ var opt_keep_going = new OptionBool("Continue after errors, whatever the consequences", "--keep-going")
+
# Option --no-color
var opt_no_color = new OptionBool("Do not use color to display errors and warnings", "--no-color")
init
do
- option_context.add_option(opt_warn, opt_warning, opt_quiet, opt_stop_on_first_error, opt_no_color, opt_log, opt_log_dir, opt_nit_dir, opt_help, opt_version, opt_set_dummy_tool, opt_verbose, opt_bash_completion, opt_stub_man)
+ option_context.add_option(opt_warn, opt_warning, opt_quiet, opt_stop_on_first_error, opt_keep_going, opt_no_color, opt_log, opt_log_dir, opt_nit_dir, opt_help, opt_version, opt_set_dummy_tool, opt_verbose, opt_bash_completion, opt_stub_man)
# Hide some internal options
opt_stub_man.hidden = true
# Set verbose level
verbose_level = opt_verbose.value
+ if opt_keep_going.value then keep_going = true
+
if self.opt_quiet.value then self.opt_warn.value = 0
if opt_log_dir.value != null then log_directory = opt_log_dir.value.as(not null)
var res = opt_nit_dir.value
if res != null then
if not check_nit_dir(res) then
- fatal_error(null, "Fatal Error: the value of --nit-dir does not seem to be a valid base Nit directory: {res}")
+ fatal_error(null, "Fatal Error: the value of --nit-dir does not seem to be a valid base Nit directory: {res}.")
end
return res
end
res = "NIT_DIR".environ
if not res.is_empty then
if not check_nit_dir(res) then
- fatal_error(null, "Fatal Error: the value of NIT_DIR does not seem to be a valid base Nit directory: {res}")
+ fatal_error(null, "Fatal Error: the value of NIT_DIR does not seem to be a valid base Nit directory: {res}.")
end
return res
end
if check_nit_dir(res) then return res.simplify_path
end
- fatal_error(null, "Fatal Error: Cannot locate a valid base nit directory. It is quite unexpected. Try to set the environment variable `NIT_DIR` or to use the `--nit-dir` option.")
+ fatal_error(null, "Fatal Error: cannot locate a valid base Nit directory. It is quite unexpected. Try to set the environment variable `NIT_DIR` or to use the `--nit-dir` option.")
abort
end
import astvalidation
import semantize
intrude import semantize::scope
+intrude import semantize::typing
redef class ToolContext
var transform_phase: Phase = new TransformPhase(self, [typing_phase, auto_super_init_phase])
end
super
end
+
+ redef fun replace_with(other)
+ do
+ super
+ if other isa AExpr then
+ if other.implicit_cast_to == null then other.implicit_cast_to = implicit_cast_to
+ end
+ end
end
redef class AVardeclExpr
end
end
+redef class AWithExpr
+ # is replaced with a do/end and injected calls to `start` and `finish`
+ #
+ # Basically, the following
+ #
+ # ~~~nitish
+ # with expr do
+ # block
+ # end label l
+ # ~~~
+ #
+ # is transformed into
+ #
+ # ~~~nitish
+ # var x = expr
+ # do
+ # x.start
+ # block
+ # end label l
+ # x.finish
+ # ~~~
+ #
+ # The point is that `finish` is called even if the block is escaped.
+ redef fun accept_transform_visitor(v)
+ do
+ var escapemark = self.break_mark
+ assert escapemark != null
+
+ var nblock = v.builder.make_block
+
+ var nexpr = n_expr
+
+ nblock.add nexpr
+
+ var ndo = v.builder.make_do
+ ndo.break_mark = escapemark
+
+ var start = v.builder.make_call(nexpr.make_var_read, method_start.as(not null), null)
+
+ ndo.add start
+
+ ndo.add self.n_block.as(not null)
+
+ nblock.add ndo
+
+ nblock.add v.builder.make_call(nexpr.make_var_read, method_finish.as(not null), null)
+
+ replace_with(nblock)
+ end
+end
+
redef class AArrayExpr
# `[x,y]` is replaced with
#
var anchor = self.frame.arguments.first.mtype.as(MClassType)
# `sub` or `sup` are formal or virtual types, resolve them to concrete types
- if sub isa MParameterType or sub isa MVirtualType then
+ if sub isa MFormalType then
sub = sub.resolve_for(anchor.mclass.mclass_type, anchor, mainmodule, false)
end
- if sup isa MParameterType or sup isa MVirtualType then
+ if sup isa MFormalType then
sup = sup.resolve_for(anchor.mclass.mclass_type, anchor, mainmodule, false)
end
end
# Now the case of direct null and nullable is over
- if sub isa MParameterType or sub isa MVirtualType then
+ if sub isa MFormalType then
sub = sub.anchor_to(mainmodule, anchor)
# Manage the second layer of null/nullable
if sub isa MNullableType then
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import standard::kernel
+
+fun foo(i: Int): nullable Int do return i
+fun bar(i: Int) do i.output
+
+var i = 0
+var c = 0
+while i < 10 do
+ i += 1
+
+ var b = foo(i)
+ if b == null then
+ continue#alt1#
+ end
+
+ bar(b)
+ c = b
+end
+bar(c)
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import standard::kernel
+
+class A
+ fun foo do 1.output
+end
+
+class B
+ super A
+ fun bar do 2.output
+end
+
+var x: A #alt3# var x
+x = new B
+
+var i = 0
+while i < 3 do
+ i += 1
+ x.bar
+ x = new A
+ x.foo
+ break#alt1#
+end
+x.foo
+#alt2#x.bar
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import standard::kernel
+
+redef class Int
+ fun next: nullable Int do if self < 20 then return self + 1 else return null
+end
+
+var t2: nullable Int = 10
+t2.output
+while t2 != null do
+ t2 = t2.next #alt1# t2 = null
+ while t2 != null do
+ t2.output
+ t2 = t2.next #alt2# t2 = null
+ end
+ #alt3#t2 = t2.next
+end
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import standard::collection::array
+
+var a #1alt1#var a: Array[Object]
+a = [1]#1alt2#
+#1alt2#a = 1
+var i = 0
+while i < 3 do
+ i += 1
+
+ a = [a]
+ a.length.output
+ #alt1#a.first.length.output
+end
+#alt1#a.length.output
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import standard::kernel
+
+class O
+ fun foo: O do
+ 0.output
+ return new B
+ end
+end
+
+class A
+ super O
+ redef fun foo: B do
+ 1.output
+ return new B
+ end
+ fun bar: B do
+ 10.output
+ return new B
+ end
+end
+
+class B
+ super O
+ redef fun foo: C do
+ 2.output
+ return new C
+ end
+ fun bar: C do
+ 20.output
+ return new C
+ end
+end
+
+class C
+ super O
+end
+
+var a: O #alt1# var a
+
+a = new A
+var i = 0
+while i < 4 do
+ a = a.foo #alt2# a = a.bar
+ i += 1
+end
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import standard::kernel
+
+fun foo(i: Int): nullable Int do return i
+fun bar(i: Int) do i.output
+fun baz: nullable Int do return null
+
+bar(0)
+var i = null
+while i == null do
+ i = foo(1) #alt1# exit(1)
+end
+bar(i)
+
+i = foo(2)
+while i != null do
+ bar(i)
+ i = baz
+end
+#alt2#bar(i)
+
+i = null
+loop
+ i = foo(3)
+ if i == null then continue #alt3#
+ bar(i)
+ break
+end
+bar(i)
+
+i = 4
+loop
+ bar(i)
+ i = baz
+ if i != null then
+ bar(i)
+ else
+ break #alt4#
+ end
+end
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import standard::kernel
+
+class A
+ fun foo(a, b: nullable Int, c, d: Int, e,f: nullable Int)
+ do
+ if a == null then '\n'.output else a.output
+ if b == null then '\n'.output else b.output
+ c.output
+ d.output
+ if e == null then '\n'.output else e.output
+ if f == null then '\n'.output else f.output
+ '-'.output
+ '\n'.output
+
+ end
+
+ fun bar(a,b,c: nullable Int)
+ do
+ if a == null then '\n'.output else a.output
+ if b == null then '\n'.output else b.output
+ if c == null then '\n'.output else c.output
+ '-'.output
+ '\n'.output
+ end
+
+ fun bar=(a,b,c: nullable Int)
+ do
+ if a == null then '\n'.output else a.output
+ if b == null then '\n'.output else b.output
+ if c == null then '\n'.output else c.output
+ '-'.output
+ '\n'.output
+ end
+
+ fun [](a,b,c: nullable Int): Int
+ do
+ if a == null then '\n'.output else a.output
+ if b == null then '\n'.output else b.output
+ if c == null then '\n'.output else c.output
+ '-'.output
+ '\n'.output
+ return 0
+ end
+
+ fun []=(a,b,c: nullable Int): Int
+ do
+ if a == null then '\n'.output else a.output
+ if b == null then '\n'.output else b.output
+ if c == null then '\n'.output else c.output
+ '-'.output
+ '\n'.output
+ return 0
+ end
+
+ fun +(a: nullable Int): Int
+ do
+ if a == null then '\n'.output else a.output
+ '-'.output
+ '\n'.output
+ return 0
+ end
+end
+
+var a = new A
+var x
+
+#alt1#a.foo
+#alt1#a.foo(2)
+a.foo(1,2)
+a.foo(1,2,3)
+a.foo(1,2,3,4)
+a.foo(1,2,3,4,5)
+a.foo(1,2,3,4,5,6)
+#alt1#a.foo(1,2,3,4,5,6,7)
+
+a.bar
+a.bar(1)
+a.bar(1,2)
+a.bar(1,2,3)
+#alt1#a.bar(1,2,3,4)
+
+a.bar= 10
+a.bar(1) = 20
+a.bar(1,2) = 30
+#alt1#a.bar(1,2,3) = 40
+
+#alt2# x = a[]
+x = a[1]
+x = a[1,2]
+x = a[1,2,3]
+#alt2#x = a[1,2,3,4]
+
+#alt2#a[] = 10
+a[1] = 20
+a[1,2] = 30
+#alt1#a[1,2,3] = 40
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A
+ fun foo(a: nullable Int, bs: Int..., c: nullable Int)
+ do
+ if a == null then '\n'.output else a.output
+ for b in bs do
+ ' '.output
+ b.output
+ end
+ if c == null then '\n'.output else c.output
+ '-'.output
+ '\n'.output
+
+ end
+
+ fun bar(a: nullable Int, bs: Int...)
+ do
+ if a == null then '\n'.output else a.output
+ for b in bs do
+ ' '.output
+ b.output
+ end
+ '-'.output
+ '\n'.output
+ end
+
+ fun bar=(a:nullable Int, bs: Int..., c: nullable Int)
+ do
+ if a == null then '\n'.output else a.output
+ for b in bs do
+ ' '.output
+ b.output
+ end
+ if c == null then '\n'.output else c.output
+ '-'.output
+ '\n'.output
+ end
+
+ fun [](a: nullable Int, bs: Int...): Int
+ do
+ if a == null then '\n'.output else a.output
+ for b in bs do
+ ' '.output
+ b.output
+ end
+ '-'.output
+ '\n'.output
+ return 0
+ end
+
+ fun []=(a: nullable Int, bs: Int..., c: nullable Int): Int
+ do
+ if a == null then '\n'.output else a.output
+ for b in bs do
+ ' '.output
+ b.output
+ end
+ if c == null then '\n'.output else c.output
+ '-'.output
+ '\n'.output
+ return 0
+ end
+end
+
+var a = new A
+var x
+
+#alt1#a.foo
+#alt1#a.foo(2)
+#alt1#a.foo(1,2)
+a.foo(1,2,3)
+a.foo(1,2,3,4)
+
+#alt1#a.bar
+#alt1#a.bar(1)
+a.bar(1,2)
+a.bar(1,2,3)
+
+#alt1#a.bar = 10
+#alt1#a.bar(1) = 20
+a.bar(1,2) = 30
+a.bar(1,2,3) = 40
+
+#alt1#x = a[1]
+x = a[1,2]
+x = a[1,2,3]
+
+#alt1#a[1] = 20
+a[1,2] = 30
+a[1,2,3] = 40
+a[1,2,3,4] = 50
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import standard::kernel
+
+class A
+ var mandatory: Int
+ var optional: nullable Int
+
+ fun foo
+ do
+ '-'.output
+ '\n'.output
+ mandatory.output
+ if optional == null then
+ ' '.output
+ '\n'.output
+ else
+ optional.output
+ end
+ end
+end
+
+class B
+ super A
+ var optional_b: nullable Int
+ var mandatory_b: Int
+ redef fun foo
+ do
+ super
+ if optional_b == null then
+ ' '.output
+ '\n'.output
+ else
+ optional_b.output
+ end
+ mandatory_b.output
+ end
+end
+
+class C
+ super B
+ autoinit optional_b, mandatory_b, mandatory
+end
+
+var a
+
+#alt1#a = new A
+#alt1#a.foo
+
+a = new A(1)
+a.foo
+
+a = new A(1,2)
+a.foo
+
+#alt1#a = new A(1,2,3)
+#alt1#a.foo
+
+#alt1#a = new B(1)
+#alt1#a.foo
+
+a = new B(1,4)
+a.foo
+
+a = new B(1,2,4)
+a.foo
+
+a = new B(1,2,3,4)
+a.foo
+
+#alt1#a = new B(1,2,3,4,5)
+#alt1#a.foo
+
+#alt1#a = new C(1)
+#alt1#a.foo
+
+a = new C(4,1)
+a.foo
+
+a = new C(3,4,1)
+a.foo
+
+#alt1#a = new C(1,2,3,4)
+#alt1#a.foo
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import standard::collection::array
+
+class A
+ type V: nullable Object
+ var v: V
+
+ fun test_array: Array[V]
+ do
+ #alt3#v = 10
+ return [v] #alt1-2#
+ #alt1#return [10:V]
+ #alt2#return [10]
+ end
+end
+
+class B
+ super A
+ redef type V: Bool
+end
+
+var a = new A(1)
+
+a.test_array.first.output
+
+var ab = new A(true)
+
+ab.test_array.first.output
+
+var b = new B(true)
+
+b.test_array.first.output
#alt1#var i: Object = 1
i += 2
i.output
+i -= 1
+i.output
+i *= 3
+i.output
+i /= 2
+i.output
+i %= 5
+i.output
+i <<= 3
+i.output
+i >>= 2
+i.output
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+ var i: Int
+ new do
+ var res = new A.intern
+ res.i = 1
+ return res
+ end
+ init do
+ 0.output # not called
+ end
+end
+
+var a = new A
+a.i.output
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import standard::kernel
+
+class A[E] #alt2# class A[E: Object]
+ type V: nullable Object #alt2# type V: Object
+
+ fun foo(e: E, v: E) do #1alt1# fun foo(e: nullable E, v: nullable E) do
+ assert e != null#alt1# #alt3# assert e == null #alt4# if false then e = null
+ assert v != null#alt1# #alt3# assert v == null #alt4# if false then e = null
+ bar(e)
+ bar(v)
+ if e != null then
+ bar(e)
+ else bar(e)
+ if v != null then
+ bar(v)
+ else bar(v)
+ bar(e.as(not null))
+ bar(v.as(not null))
+ bar(e or else 0)
+ bar(v or else 0)
+ bar(e or else v)
+ bar(v or else e)
+ end
+
+ fun bar(o: Object) do o.output
+end
+
+var a = new A[Object]
+a.foo (1, 2)
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+class A[E: nullable Discrete]
+ fun array(e, f: E): Object
+ do
+ assert e != null
+ assert f != null #alt1# #alt2# assert f == null
+ return [e, f]
+ end
+
+ fun range(e, f: E): Object
+ do
+ assert e != null
+ assert f != null #alt1#
+ return [e..f]
+ end
+end
+
+var a = new A[nullable Int]
+
+var ar = a.array(1, 5)
+ar.output_class_name
+ar.as(Array[Int]).add 6
+print ar
+
+var ra = a.range(1, 5)
+ra.output_class_name
+print ra
# This file is part of NIT ( http://www.nitlanguage.org ).
#
-# Copyright 2004-2008 Jean Privat <jean@pryen.org>
-#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# See the License for the specific language governing permissions and
# limitations under the License.
+import standard::kernel
class A
+ fun +: A
+ do
+ 0.output
+ return self
+ end
fun +(a: A): A
do
2.output
15.output
return a
end
+ fun **(a: A): A
+ do
+ 16.output
+ return a
+ end
+ fun |(a: A): A
+ do
+ 16.output
+ return a
+ end
+ fun ^(a: A): A
+ do
+ 17.output
+ return a
+ end
+ fun &(a: A): A
+ do
+ 18.output
+ return a
+ end
+ fun ~: A
+ do
+ 19.output
+ return self
+ end
init do end
end
var a2 = new A
var b : Bool
var i: Int
-a = a + -a - a * a / a % a >> a << a
+
+a = +a + -a - a * a / a % a >> a << a ** a | ~a ^ a & a
b = a == a2 and a < a and a > a and a <= a and a >= a
i = a <=> a
+
+'\n'.output
+
+a += a
+a -= a
+a *= a
+a /= a
+a %= a
+a **= a
+a <<= a
+a >>= a
+a |= a
+a ^= a
+a &= a
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import kernel
+
+class A
+ fun start do 1.output
+ fun work do 2.output
+ fun finish do 3.output
+end
+
+fun escape do
+ with a = new A do
+ a.work
+ if true then return
+ a.work
+ end
+end
+
+with new A do
+ 2.output
+ 2.output
+end
+
+with a = new A do
+ a.work
+ a.work
+end
+
+with a = new A do
+ a.work
+ if true then break
+ a.work
+end
+
+#alt1#escape
return steps
end
-var n = 10
+var n = 456
if not args.is_empty then
n = args.first.to_i
end
# Performance test for Array::add_all
-import standard::collection
+var n = 10
+if args.not_empty then n = args.first.to_i
+
+var nn = 1.lshift(n)
var a = new Array[Numeric]
var b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
-for i in 10000.times do
+for i in nn.times do
a.add_all b
end
var c = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]
-for i in 10000.times do
+for i in nn.times do
a.add_all c
end
redef fun val1: Int do return _a
init(i: Int) do _a = i
+ redef fun to_s do return "Aa{a}"
end
class Elt2
class B
super Elt2
init(i: Int) do initelt2(i)
+ redef fun to_s do return "Bb{b}"
end
class C
_c = i
_d = j
end
+ redef fun to_s do return "Cc{c}d{d}"
end
class D
init(i)
initelt2(j)
end
+ redef fun to_s do return "Da{a}b{b}"
end
class E
redef fun val1: Int do return 5 end
init(i: Int) do initelt2(i)
+ redef fun to_s do return "Eb{b}"
end
class EltComparator
end
end
-var n = 100
+srand_from(0)
+var n = 20
if not args.is_empty then
n = args.first.to_i
array.push(generator)
end
+print array.join(", ")
+
var comparator = new EltComparator
for i in [0..n[ do
comparator.sort(array)
comparator.toggle
end
+print array.join(", ")
end
end
-var n = 10
+var n = 20
if not args.is_empty then
n = args.first.to_i
end
# See the License for the specific language governing permissions and
# limitations under the License.
-var nb = 5
+var nb = 25
if not args.is_empty then nb = args.first.to_i
var cpt = 0
b1.start
b2.start
-var nb = 100000
+var nb = 10
if not args.is_empty then
nb = args.first.to_i
end
-s.run_for(nb)
+s.run_for(1.lshift(nb))
print(c1.count)
fun test(n: Int)
do
- var m = 10000.lshift(n)
+ var m = 1000.lshift(n)
print("Primes up to {m} {nsieve(m)}")
end
-var n = 2
+var n = 3
if args.length == 1 then
n = args.first.to_i
end
end
fun baz
do
+ i += 1
end
+ var i = 0
+
init
do
end
c.val = 2
d.val = 3
var i = 0
-while i < 100000 do
+
+var n = 10
+if args.not_empty then n = args.first.to_i
+
+while i < 1.lshift(n) do
a.hop(b, c, d)
i = i + 1
end
+
+print a.i
+print b.i
+print c.i
+print d.i
fun foo do end
end
class A
- redef fun foo do end
+ redef fun foo do i += 1 end
init do end
+ var i = 0
end
class B
super A
end
+var n = 10
+if args.not_empty then n = args.first.to_i
+
var nb = 60
var a = new Array[Object].with_capacity(nb)
for i in [0..(nb/6)[ do
a[i*6+4] = new E
a[i*6+5] = new F
end
-for i in [0..1000000[ do
+for i in [0..1.lshift(n)[ do
for j in [0..nb[ do
a[j].foo
end
end
+for j in [0..nb[ do
+ print a[j].as(A).i
+end
args.remove("-q")
end
-var n = 5
+var n = 15
if args.length > 0 then n = args.first.to_i
var res = strfib(n)
#alt1 import standard
#alt1 import standard::ropes
-var n = 7
+var n = 4
if not args.is_empty then
n = args.first.to_i
end
# See the License for the specific language governing permissions and
# limitations under the License.
+var n = 10
+if args.not_empty then n = args.first.to_i
+
var s = "*"
-var i = 0
-while i < 8 do
+var i = 1
+while i < n do
s = "Je dis «{s}» et redis «{s}» et trois fois de plus : «{s}{s}{s}».\n"
i = i + 1
end
# See the License for the specific language governing permissions and
# limitations under the License.
+var n = 10
+if args.not_empty then n = args.first.to_i
+
var s = "*"
var i = 0
-while i < 8 do
+while i < n do
s = ["Je dis «", s, "» et redis «", s, "» et trois fois de plus : «", s, s, s, "».\n"].to_s
i = i + 1
end
end
end
-print(tak(37,12,6))
+var n = 17
+if args.not_empty then n = args.first.to_i
+
+print(tak(n,12,6))
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# no return
+class A
+ fun + do abort
+ fun +(a: A) do abort
+ fun - do abort
+ fun -(a: A) do abort
+ fun *(a: A) do abort
+ fun /(a: A) do abort
+ fun %(a: A) do abort
+ fun <(a: A) do abort
+ fun >(a: A) do abort
+ fun <=(a: A) do abort
+ fun >=(a: A) do abort
+ fun <=>(a: A) do abort
+ fun <<(a: A) do abort
+ fun >>(a: A) do abort
+ fun foo=(a: A) do abort # should be fine
+ fun [](a: A) do abort
+ fun []=(a, b: A) do abort # should be fine
+end
+
+# not enough parameters
+class B
+ fun +: A do abort # should be fine
+ fun -: A do abort # should be fine
+ fun *: A do abort
+ fun /: A do abort
+ fun %: A do abort
+ fun <: A do abort
+ fun >: A do abort
+ fun <=: A do abort
+ fun >=: A do abort
+ fun <=>: A do abort
+ fun <<: A do abort
+ fun >>: A do abort
+ fun foo= do abort
+ fun []: A do abort
+ fun []=(a: A) do abort
+end
+
+# too much parameters
+class C
+ fun +(a,b,c:A): A do abort
+ fun -(a,b,c:A): A do abort
+ fun *(a,b,c:A): A do abort
+ fun /(a,b,c:A): A do abort
+ fun %(a,b,c:A): A do abort
+ fun <(a,b,c:A): A do abort
+ fun >(a,b,c:A): A do abort
+ fun <=(a,b,c:A): A do abort
+ fun >=(a,b,c:A): A do abort
+ fun <=>(a,b,c:A): A do abort
+ fun <<(a,b,c:A): A do abort
+ fun >>(a,b,c:A): A do abort
+ fun foo=(a,b,c:A) do abort # should be fine
+ fun [](a,b,c:A): A do abort # should be fine
+ fun []=(a,b,c:A) do abort # should be fine
+end
+
+# bad vararg
+class D
+ fun +(a:A...): A do abort
+ fun -(a:A...): A do abort
+ fun *(a:A...): A do abort
+ fun /(a:A...): A do abort
+ fun %(a:A...): A do abort
+ fun <(a:A...): A do abort
+ fun >(a:A...): A do abort
+ fun <=(a:A...): A do abort
+ fun >=(a:A...): A do abort
+ fun <=>(a:A...): A do abort
+ fun <<(a:A...): A do abort
+ fun >>(a:A...): A do abort
+ fun foo=(a,b,c:A, d:A...) do abort
+ fun [](a,b,c:A, d:A...): A do abort # should be fine
+ fun []=(a,b,c:A, d:A...) do abort
+end
-&
\ No newline at end of file
+`&
o.output
end
+redef class Sys
+ redef fun output do 'S'.output
+end
+
0.foo1
foo2
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import standard::kernel
+
+class G[E: Object]
+end
+
+class A
+ fun foo(t: T): Comparable do return t
+ type T: Comparable #alt1-5#
+ #alt1#type T: T
+ #alt2#type T: nullable T
+ #alt3#type T: G[T]
+ #alt4#type T: U
+ #alt4#type U: FAIL
+ #alt5#type T: U
+ #alt5#type U: T
+ fun bar(t: T): Comparable do return t
+end
+
+var a = new A
+a.foo(1)
+a.bar('1')
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import standard::kernel
+
+class G[E]
+end
+
+class A
+ fun foo(t: T): Comparable do return t
+ #fun foog: nullable G[T] do return barg
+ type T: Comparable #alt1-5#
+ type GT: G[T]
+ #alt1#type T: T
+ #alt2#type T: nullable T
+ #alt3#type T: G[T]
+ #alt4#type T: U
+ #alt4#type U: FAIL
+ #alt5#type T: U
+ #alt5#type U: T
+ fun bar(t: T): Comparable do return t
+ #fun barg: nullable G[T] do return foog
+end
+
+class B
+ super A
+ redef fun foo(t: T): T do return t
+ #redef fun foog: GT do return barg
+ redef type GT: G[Discrete]
+ #alt6#redef type GT: G[Bool]
+ redef fun bar(t: T): T do return t
+ #redef fun barg: GT do return foog
+end
+
+var a = new A
+a.foo(1)
+a.bar('1')
+
+var b = new B
+b.foo(2)
+b.bar('3')
-test_mem
shoot_logic
-bench_
nit_args1
nit_args3
nit_args4
nitpretty_args
hamming_number
hailstone
-test_map
-nitls
-nituml
+nitls_args
+nituml_args
-test_mem
shoot_logic
-bench_
nit_args1
nit_args3
nit_args4
nitpretty_args
hamming_number
hailstone
-test_map
-nitls
-nituml
+nitls_args
+nituml_args
-alt/base_adaptive_alt1.nit:32,2--6: Error: Method 'bar' doesn't exists in A.
+alt/base_adaptive_alt1.nit:32,4--6: Error: method `bar` does not exists in `A`.
-alt/base_adaptive_alt2.nit:34,3--7: Error: Method 'bar' doesn't exists in A.
+alt/base_adaptive_alt2.nit:34,5--7: Error: method `bar` does not exists in `A`.
-alt/base_adaptive_alt3.nit:39,3--7: Error: Method 'bar' doesn't exists in A.
+alt/base_adaptive_alt3.nit:39,5--7: Error: method `bar` does not exists in `A`.
4
5
6
-15
-14
7
+8
9
10
-11
-12
-13
+10
--- /dev/null
+alt/base_adaptive_loop2_alt1.nit:32,4--6: Error: method `bar` does not exists in `A`.
--- /dev/null
+alt/base_adaptive_loop2_alt2.nit:38,3--5: Error: method `bar` does not exists in `A`.
--- /dev/null
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
--- /dev/null
+alt/base_adaptive_loop3_alt3.nit:29,10--13: Error: method `next` called on `null`.
--- /dev/null
+alt/base_adaptive_loop_alt1.nit:30,6: Type Error: expected `Int`, got `nullable Int`.
+alt/base_adaptive_loop_alt1.nit:31,6: Type Error: expected `Int`, got `nullable Int`.
--- /dev/null
+1
+1
+1
+1
+1
+1
+1
--- /dev/null
+alt/base_adaptive_loop_array_1alt2_alt1.nit:26,10--15: Error: method `length` does not exists in `Int`.
+alt/base_adaptive_loop_array_1alt2_alt1.nit:26,10--15: Error: method `length` does not exists in `nullable Object`.
+alt/base_adaptive_loop_array_1alt2_alt1.nit:28,3--8: Error: method `length` does not exists in `nullable Object`.
--- /dev/null
+alt/base_adaptive_loop_array_alt1.nit:26,10--15: Error: method `length` does not exists in `nullable Object`.
+alt/base_adaptive_loop_array_alt1.nit:28,3--8: Error: method `length` does not exists in `nullable Object`.
--- /dev/null
+1
+2
+0
+2
--- /dev/null
+alt/base_adaptive_loop_call_alt1.nit:57,8--10: Error: method `foo` does not exists in `nullable Object`.
--- /dev/null
+alt/base_adaptive_loop_call_alt2.nit:57,8--10: Error: method `bar` does not exists in `O`.
--- /dev/null
+0
+1
+2
+3
+3
+4
--- /dev/null
+alt/base_adaptive_loop_null_alt2.nit:33,5: Type Error: expected `Int`, got `null`.
--- /dev/null
+alt/base_adaptive_loop_null_alt3.nit:39,6: Type Error: expected `Int`, got `nullable Int`.
+alt/base_adaptive_loop_null_alt3.nit:42,5: Type Error: expected `Int`, got `nullable Int`.
--- /dev/null
+alt/base_adaptive_loop_null_alt4.nit:46,6: Type Error: expected `Int`, got `nullable Int`.
--- /dev/null
+
+
+1
+2
+
+
+-
+1
+
+2
+3
+
+
+-
+1
+2
+3
+4
+
+
+-
+1
+2
+3
+4
+5
+
+-
+1
+2
+3
+4
+5
+6
+-
+
+
+
+-
+1
+
+
+-
+1
+2
+
+-
+1
+2
+3
+-
+
+
+10
+-
+1
+
+20
+-
+1
+2
+30
+-
+1
+
+
+-
+1
+2
+
+-
+1
+2
+3
+-
+1
+
+20
+-
+1
+2
+30
+-
--- /dev/null
+1
+ 2
+3
+-
+1
+ 2
+ 3
+4
+-
+1
+ 2
+-
+1
+ 2
+ 3
+-
+1
+ 2
+30
+-
+1
+ 2
+ 3
+40
+-
+1
+ 2
+-
+1
+ 2
+ 3
+-
+1
+ 2
+30
+-
+1
+ 2
+ 3
+40
+-
+1
+ 2
+ 3
+ 4
+50
+-
--- /dev/null
+alt/base_arg_default2_alt1.nit:81,3--5: Error: expected at least 3 argument(s) for `foo(a: nullable Int, bs: Int..., c: nullable Int)`; got 0. See introduction at `base_arg_default2_alt1::A::foo`.
+alt/base_arg_default2_alt1.nit:82,3--5: Error: expected at least 3 argument(s) for `foo(a: nullable Int, bs: Int..., c: nullable Int)`; got 1. See introduction at `base_arg_default2_alt1::A::foo`.
+alt/base_arg_default2_alt1.nit:83,3--5: Error: expected at least 3 argument(s) for `foo(a: nullable Int, bs: Int..., c: nullable Int)`; got 2. See introduction at `base_arg_default2_alt1::A::foo`.
+alt/base_arg_default2_alt1.nit:87,3--5: Error: expected at least 2 argument(s) for `bar(a: nullable Int, bs: Int...)`; got 0. See introduction at `base_arg_default2_alt1::A::bar`.
+alt/base_arg_default2_alt1.nit:88,3--5: Error: expected at least 2 argument(s) for `bar(a: nullable Int, bs: Int...)`; got 1. See introduction at `base_arg_default2_alt1::A::bar`.
+alt/base_arg_default2_alt1.nit:92,3--5: Error: expected at least 3 argument(s) for `bar=(a: nullable Int, bs: Int..., c: nullable Int)`; got 1. See introduction at `base_arg_default2_alt1::A::bar=`.
+alt/base_arg_default2_alt1.nit:93,3--5: Error: expected at least 3 argument(s) for `bar=(a: nullable Int, bs: Int..., c: nullable Int)`; got 2. See introduction at `base_arg_default2_alt1::A::bar=`.
+alt/base_arg_default2_alt1.nit:97,5--8: Error: expected at least 2 argument(s) for `[](a: nullable Int, bs: Int...): Int`; got 1. See introduction at `base_arg_default2_alt1::A::[]`.
+alt/base_arg_default2_alt1.nit:101,1--9: Error: expected at least 3 argument(s) for `[]=(a: nullable Int, bs: Int..., c: nullable Int): Int`; got 2. See introduction at `base_arg_default2_alt1::A::[]=`.
--- /dev/null
+alt/base_arg_default_alt1.nit:81,3--5: Error: expected at least 2 argument(s) for `foo(a: nullable Int, b: nullable Int, c: Int, d: Int, e: nullable Int, f: nullable Int)`; got 0. See introduction at `base_arg_default_alt1::A::foo`.
+alt/base_arg_default_alt1.nit:82,3--5: Error: expected at least 2 argument(s) for `foo(a: nullable Int, b: nullable Int, c: Int, d: Int, e: nullable Int, f: nullable Int)`; got 1. See introduction at `base_arg_default_alt1::A::foo`.
+alt/base_arg_default_alt1.nit:88,3--5: Error: expected at most 6 argument(s) for `foo(a: nullable Int, b: nullable Int, c: Int, d: Int, e: nullable Int, f: nullable Int)`; got 7. See introduction at `base_arg_default_alt1::A::foo`.
+alt/base_arg_default_alt1.nit:94,3--5: Error: expected at most 3 argument(s) for `bar(a: nullable Int, b: nullable Int, c: nullable Int)`; got 4. See introduction at `base_arg_default_alt1::A::bar`.
+alt/base_arg_default_alt1.nit:99,3--5: Error: expected at most 3 argument(s) for `bar=(a: nullable Int, b: nullable Int, c: nullable Int)`; got 4. See introduction at `base_arg_default_alt1::A::bar=`.
+alt/base_arg_default_alt1.nit:110,1--13: Error: expected at most 3 argument(s) for `[]=(a: nullable Int, b: nullable Int, c: nullable Int): Int`; got 4. See introduction at `base_arg_default_alt1::A::[]=`.
--- /dev/null
+alt/base_arg_default_alt2.nit:101,7: Syntax Error: unexpected ']'.
--- /dev/null
+-
+1
+
+-
+1
+2
+-
+1
+
+
+4
+-
+1
+2
+
+4
+-
+1
+2
+3
+4
+-
+1
+
+
+4
+-
+1
+
+3
+4
--- /dev/null
+alt/base_arg_default_autoinit_alt1.nit:59,5--7: Error: expected at least 1 argument(s) for `init(mandatory: Int, optional: nullable Int)`; got 0. See introduction at `standard::Object::init`.
+alt/base_arg_default_autoinit_alt1.nit:68,5--7: Error: expected at most 2 argument(s) for `init(mandatory: Int, optional: nullable Int)`; got 3. See introduction at `standard::Object::init`.
+alt/base_arg_default_autoinit_alt1.nit:71,5--7: Error: expected at least 2 argument(s) for `init(mandatory: Int, optional: nullable Int, optional_b: nullable Int, mandatory_b: Int)`; got 1. See introduction at `standard::Object::init`.
+alt/base_arg_default_autoinit_alt1.nit:83,5--7: Error: expected at most 4 argument(s) for `init(mandatory: Int, optional: nullable Int, optional_b: nullable Int, mandatory_b: Int)`; got 5. See introduction at `standard::Object::init`.
+alt/base_arg_default_autoinit_alt1.nit:86,5--7: Error: expected at least 2 argument(s) for `init(optional_b: nullable Int, mandatory_b: Int, mandatory: Int)`; got 1. See introduction at `standard::Object::init`.
+alt/base_arg_default_autoinit_alt1.nit:95,5--7: Error: expected at most 3 argument(s) for `init(optional_b: nullable Int, mandatory_b: Int, mandatory: Int)`; got 4. See introduction at `standard::Object::init`.
-alt/base_array_lit_typed_alt1.nit:26,14--18: Type error: expected Int, got Bool
+alt/base_array_lit_typed_alt1.nit:26,14--18: Type Error: expected `Int`, got `Bool`.
-alt/base_array_lit_typed_alt2.nit:28,12--15: Type error: class Fail not found in module base_array_lit_typed_alt2.
+alt/base_array_lit_typed_alt2.nit:28,12--15: Error: class `Fail` not found in module `base_array_lit_typed_alt2`.
-base_as_cast.nit:42,1--12: Warning: Expression is already a Object.
-base_as_cast.nit:52,1--12: Warning: Expression is already a Object.
+base_as_cast.nit:42,1--12: Warning: expression is already a `Object`.
+base_as_cast.nit:52,1--12: Warning: expression is already a `Object`.
0
0
0
-alt/base_as_cast_alt1.nit:42,1--12: Warning: Expression is already a Object.
-alt/base_as_cast_alt1.nit:52,1--12: Warning: Expression is already a Object.
+alt/base_as_cast_alt1.nit:42,1--12: Warning: expression is already a `Object`.
+alt/base_as_cast_alt1.nit:52,1--12: Warning: expression is already a `Object`.
Runtime error: Cast failed. Expected `U`, got `A` (alt/base_as_cast_alt1.nit:45)
0
0
-alt/base_as_cast_alt2.nit:42,1--12: Warning: Expression is already a Object.
-alt/base_as_cast_alt2.nit:52,1--12: Warning: Expression is already a Object.
+alt/base_as_cast_alt2.nit:42,1--12: Warning: expression is already a `Object`.
+alt/base_as_cast_alt2.nit:52,1--12: Warning: expression is already a `Object`.
Runtime error: Cast failed. Expected `B`, got `A` (alt/base_as_cast_alt2.nit:46)
0
0
-alt/base_as_cast_alt3.nit:42,1--12: Warning: Expression is already a Object.
-alt/base_as_cast_alt3.nit:52,1--12: Warning: Expression is already a Object.
+alt/base_as_cast_alt3.nit:42,1--12: Warning: expression is already a `Object`.
+alt/base_as_cast_alt3.nit:52,1--12: Warning: expression is already a `Object`.
Runtime error: Cast failed. Expected `Int`, got `A` (alt/base_as_cast_alt3.nit:47)
0
0
-alt/base_as_cast_alt4.nit:42,1--12: Warning: Expression is already a Object.
-alt/base_as_cast_alt4.nit:52,1--12: Warning: Expression is already a Object.
+alt/base_as_cast_alt4.nit:42,1--12: Warning: expression is already a `Object`.
+alt/base_as_cast_alt4.nit:52,1--12: Warning: expression is already a `Object`.
Runtime error: Cast failed. Expected `Comparable`, got `A` (alt/base_as_cast_alt4.nit:48)
0
0
-alt/base_as_cast_alt5.nit:42,1--12: Warning: Expression is already a Object.
-alt/base_as_cast_alt5.nit:52,1--12: Warning: Expression is already a Object.
+alt/base_as_cast_alt5.nit:42,1--12: Warning: expression is already a `Object`.
+alt/base_as_cast_alt5.nit:52,1--12: Warning: expression is already a `Object`.
Runtime error: Cast failed. Expected `Int`, got `B` (alt/base_as_cast_alt5.nit:57)
0
0
-alt/base_as_cast_alt6.nit:42,1--12: Warning: Expression is already a Object.
-alt/base_as_cast_alt6.nit:52,1--12: Warning: Expression is already a Object.
+alt/base_as_cast_alt6.nit:42,1--12: Warning: expression is already a `Object`.
+alt/base_as_cast_alt6.nit:52,1--12: Warning: expression is already a `Object`.
Runtime error: Cast failed. Expected `Comparable`, got `B` (alt/base_as_cast_alt6.nit:58)
0
0
-base_as_notnull.nit:41,6--19: Warning: expression is already not null, since it is a `A`.
-base_as_notnull.nit:42,6--20: Warning: expression is already not null, since it is a `A`.
-base_as_notnull.nit:43,6--19: Warning: expression is already not null, since it is a `B`.
-base_as_notnull.nit:52,6--19: Warning: expression is already not null, since it is a `B`.
+base_as_notnull.nit:41,6: Warning: expression is not null, since it is a `A`.
+base_as_notnull.nit:42,6--7: Warning: expression is not null, since it is a `A`.
+base_as_notnull.nit:43,6: Warning: expression is not null, since it is a `B`.
+base_as_notnull.nit:52,6: Warning: expression is not null, since it is a `B`.
1
2
3
-base_as_notnull2.nit:30,12--25: Warning: expression is already not null, since it is a `Object`.
-base_as_notnull2.nit:50,12--25: Warning: expression is already not null, since it is a `F: Object`.
+base_as_notnull2.nit:30,12: Warning: expression is not null, since it is a `Object`.
+base_as_notnull2.nit:50,12: Warning: expression is not null, since it is a `F: Object`.
1
1
2
-alt/base_as_notnull2_alt1.nit:30,12--25: Warning: expression is already not null, since it is a `Object`.
-alt/base_as_notnull2_alt1.nit:50,12--25: Warning: expression is already not null, since it is a `F: Object`.
-alt/base_as_notnull2_alt1.nit:58,7--10: Type error: expected Object, got null
+alt/base_as_notnull2_alt1.nit:30,12: Warning: expression is not null, since it is a `Object`.
+alt/base_as_notnull2_alt1.nit:50,12: Warning: expression is not null, since it is a `F: Object`.
+alt/base_as_notnull2_alt1.nit:58,7--10: Type Error: expected `Object`, got `null`.
-alt/base_as_notnull2_alt2.nit:30,12--25: Warning: expression is already not null, since it is a `Object`.
-alt/base_as_notnull2_alt2.nit:50,12--25: Warning: expression is already not null, since it is a `F: Object`.
+alt/base_as_notnull2_alt2.nit:30,12: Warning: expression is not null, since it is a `Object`.
+alt/base_as_notnull2_alt2.nit:50,12: Warning: expression is not null, since it is a `F: Object`.
Runtime error: Cast failed (alt/base_as_notnull2_alt2.nit:40)
1
1
-alt/base_as_notnull2_alt3.nit:30,12--25: Warning: expression is already not null, since it is a `Object`.
-alt/base_as_notnull2_alt3.nit:50,12--25: Warning: expression is already not null, since it is a `F: Object`.
-alt/base_as_notnull2_alt3.nit:64,7--10: Type error: expected Int, got null
+alt/base_as_notnull2_alt3.nit:30,12: Warning: expression is not null, since it is a `Object`.
+alt/base_as_notnull2_alt3.nit:50,12: Warning: expression is not null, since it is a `F: Object`.
+alt/base_as_notnull2_alt3.nit:64,7--10: Type Error: expected `Int`, got `null`.
-alt/base_as_notnull_alt1.nit:41,6--19: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt1.nit:42,6--20: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt1.nit:43,6--19: Warning: expression is already not null, since it is a `B`.
-alt/base_as_notnull_alt1.nit:50,6--19: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt1.nit:50,6--19: Type error: expected B, got A
-alt/base_as_notnull_alt1.nit:52,6--19: Warning: expression is already not null, since it is a `B`.
+alt/base_as_notnull_alt1.nit:41,6: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt1.nit:42,6--7: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt1.nit:43,6: Warning: expression is not null, since it is a `B`.
+alt/base_as_notnull_alt1.nit:50,6: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt1.nit:50,6--19: Type Error: expected `B`, got `A`.
+alt/base_as_notnull_alt1.nit:52,6: Warning: expression is not null, since it is a `B`.
-alt/base_as_notnull_alt2.nit:41,6--19: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt2.nit:42,6--20: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt2.nit:43,6--19: Warning: expression is already not null, since it is a `B`.
-alt/base_as_notnull_alt2.nit:51,6--20: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt2.nit:51,6--20: Type error: expected B, got A
-alt/base_as_notnull_alt2.nit:52,6--19: Warning: expression is already not null, since it is a `B`.
+alt/base_as_notnull_alt2.nit:41,6: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt2.nit:42,6--7: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt2.nit:43,6: Warning: expression is not null, since it is a `B`.
+alt/base_as_notnull_alt2.nit:51,6--7: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt2.nit:51,6--20: Type Error: expected `B`, got `A`.
+alt/base_as_notnull_alt2.nit:52,6: Warning: expression is not null, since it is a `B`.
-alt/base_as_notnull_alt3.nit:41,6--19: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt3.nit:42,6--20: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt3.nit:43,6--19: Warning: expression is already not null, since it is a `B`.
-alt/base_as_notnull_alt3.nit:52,6--19: Warning: expression is already not null, since it is a `B`.
-alt/base_as_notnull_alt3.nit:53,6--20: Type error: expected B, got A
+alt/base_as_notnull_alt3.nit:41,6: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt3.nit:42,6--7: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt3.nit:43,6: Warning: expression is not null, since it is a `B`.
+alt/base_as_notnull_alt3.nit:52,6: Warning: expression is not null, since it is a `B`.
+alt/base_as_notnull_alt3.nit:53,6--20: Type Error: expected `B`, got `A`.
-alt/base_as_notnull_alt4.nit:41,6--19: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt4.nit:42,6--20: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt4.nit:43,6--19: Warning: expression is already not null, since it is a `B`.
-alt/base_as_notnull_alt4.nit:52,6--19: Warning: expression is already not null, since it is a `B`.
-alt/base_as_notnull_alt4.nit:54,6--21: Type error: expected B, got A
+alt/base_as_notnull_alt4.nit:41,6: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt4.nit:42,6--7: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt4.nit:43,6: Warning: expression is not null, since it is a `B`.
+alt/base_as_notnull_alt4.nit:52,6: Warning: expression is not null, since it is a `B`.
+alt/base_as_notnull_alt4.nit:54,6--21: Type Error: expected `B`, got `A`.
-alt/base_as_notnull_alt5.nit:41,6--19: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt5.nit:42,6--20: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt5.nit:43,6--19: Warning: expression is already not null, since it is a `B`.
-alt/base_as_notnull_alt5.nit:52,6--19: Warning: expression is already not null, since it is a `B`.
+alt/base_as_notnull_alt5.nit:41,6: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt5.nit:42,6--7: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt5.nit:43,6: Warning: expression is not null, since it is a `B`.
+alt/base_as_notnull_alt5.nit:52,6: Warning: expression is not null, since it is a `B`.
Runtime error: Cast failed (alt/base_as_notnull_alt5.nit:59)
1
2
-alt/base_as_notnull_alt6.nit:41,6--19: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt6.nit:42,6--20: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt6.nit:43,6--19: Warning: expression is already not null, since it is a `B`.
-alt/base_as_notnull_alt6.nit:52,6--19: Warning: expression is already not null, since it is a `B`.
+alt/base_as_notnull_alt6.nit:41,6: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt6.nit:42,6--7: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt6.nit:43,6: Warning: expression is not null, since it is a `B`.
+alt/base_as_notnull_alt6.nit:52,6: Warning: expression is not null, since it is a `B`.
Runtime error: Cast failed (alt/base_as_notnull_alt6.nit:60)
1
2
-alt/base_as_notnull_alt7.nit:41,6--19: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt7.nit:42,6--20: Warning: expression is already not null, since it is a `A`.
-alt/base_as_notnull_alt7.nit:43,6--19: Warning: expression is already not null, since it is a `B`.
-alt/base_as_notnull_alt7.nit:52,6--19: Warning: expression is already not null, since it is a `B`.
-alt/base_as_notnull_alt7.nit:61,1--17: Type error: as(not null) on null
+alt/base_as_notnull_alt7.nit:41,6: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt7.nit:42,6--7: Warning: expression is not null, since it is a `A`.
+alt/base_as_notnull_alt7.nit:43,6: Warning: expression is not null, since it is a `B`.
+alt/base_as_notnull_alt7.nit:52,6: Warning: expression is not null, since it is a `B`.
+alt/base_as_notnull_alt7.nit:61,1--17: Type Error: `as(not null)` on `null`.
-base_as_notnull_int.nit:18,1--14: Warning: expression is already not null, since it is a `Int`.
-base_as_notnull_int.nit:20,1--15: Warning: expression is already not null, since it is a `Object`.
+base_as_notnull_int.nit:18,1: Warning: expression is not null, since it is a `Int`.
+base_as_notnull_int.nit:20,1--2: Warning: expression is not null, since it is a `Object`.
1
1
1
-alt/base_assert2_alt1.nit:33,3--7: Error: Method 'bar' doesn't exists in A.
+alt/base_assert2_alt1.nit:33,5--7: Error: method `bar` does not exists in `A`.
-alt/base_assert2_alt2.nit:50,2--6: Error: Method 'bar' doesn't exists in A.
+alt/base_assert2_alt2.nit:50,4--6: Error: method `bar` does not exists in `A`.
-alt/base_assert_alt2.nit:23,9: Type error: expected Bool, got Int
+alt/base_assert_alt2.nit:23,9: Type Error: expected `Bool`, got `Int`.
-alt/base_attr3_alt1.nit:22,3--8: Error: Method or variable 'a1=' unknown in B.
-alt/base_attr3_alt1.nit:24,3--8: Error: Method or variable 'a2=' unknown in B.
-alt/base_attr3_alt1.nit:25,3--4: Error: Method or variable 'a3' unknown in B.
-alt/base_attr3_alt1.nit:26,3--8: Error: Method or variable 'a3=' unknown in B.
-alt/base_attr3_alt1.nit:31,3--4: Error: Method or variable 'a6' unknown in B.
-alt/base_attr3_alt1.nit:37,3--4: Error: Method or variable 'a9' unknown in B.
-alt/base_attr3_alt1.nit:40,3--9: Error: Method or variable 'a10=' unknown in B.
-alt/base_attr3_alt1.nit:42,3--9: Error: Method or variable 'a11=' unknown in B.
-alt/base_attr3_alt1.nit:43,3--5: Error: Method or variable 'a12' unknown in B.
-alt/base_attr3_alt1.nit:44,3--9: Error: Method or variable 'a12=' unknown in B.
+alt/base_attr3_alt1.nit:22,3--4: Error: method or variable `a1=` unknown in `B`.
+alt/base_attr3_alt1.nit:24,3--4: Error: method or variable `a2=` unknown in `B`.
+alt/base_attr3_alt1.nit:25,3--4: Error: method or variable `a3` unknown in `B`.
+alt/base_attr3_alt1.nit:26,3--4: Error: method or variable `a3=` unknown in `B`.
+alt/base_attr3_alt1.nit:31,3--4: Error: method or variable `a6` unknown in `B`.
+alt/base_attr3_alt1.nit:37,3--4: Error: method or variable `a9` unknown in `B`.
+alt/base_attr3_alt1.nit:40,3--5: Error: method or variable `a10=` unknown in `B`.
+alt/base_attr3_alt1.nit:42,3--5: Error: method or variable `a11=` unknown in `B`.
+alt/base_attr3_alt1.nit:43,3--5: Error: method or variable `a12` unknown in `B`.
+alt/base_attr3_alt1.nit:44,3--5: Error: method or variable `a12=` unknown in `B`.
-alt/base_attr3_alt2.nit:49,3--10: Error: Method 'a1=' doesn't exists in A.
-alt/base_attr3_alt2.nit:50,3--6: Error: Method 'a2' is protected and can only acceded by self.
-alt/base_attr3_alt2.nit:51,3--10: Error: Method 'a2=' doesn't exists in A.
-alt/base_attr3_alt2.nit:52,3--6: Error: Method 'a3' doesn't exists in A.
-alt/base_attr3_alt2.nit:53,3--10: Error: Method 'a3=' doesn't exists in A.
-alt/base_attr3_alt2.nit:56,3--6: Error: Method 'a5' is protected and can only acceded by self.
-alt/base_attr3_alt2.nit:58,3--6: Error: Method 'a6' doesn't exists in A.
-alt/base_attr3_alt2.nit:61,3--10: Error: Method 'a7=' is protected and can only acceded by self.
-alt/base_attr3_alt2.nit:62,3--6: Error: Method 'a8' is protected and can only acceded by self.
-alt/base_attr3_alt2.nit:63,3--10: Error: Method 'a8=' is protected and can only acceded by self.
-alt/base_attr3_alt2.nit:64,3--6: Error: Method 'a9' doesn't exists in A.
-alt/base_attr3_alt2.nit:65,3--10: Error: Method 'a9=' is protected and can only acceded by self.
-alt/base_attr3_alt2.nit:67,3--11: Error: Method 'a10=' doesn't exists in A.
-alt/base_attr3_alt2.nit:68,3--7: Error: Method 'a11' is protected and can only acceded by self.
-alt/base_attr3_alt2.nit:69,3--11: Error: Method 'a11=' doesn't exists in A.
-alt/base_attr3_alt2.nit:70,3--7: Error: Method 'a12' doesn't exists in A.
-alt/base_attr3_alt2.nit:71,3--11: Error: Method 'a12=' doesn't exists in A.
+alt/base_attr3_alt2.nit:49,5--6: Error: method `a1=` does not exists in `A`.
+alt/base_attr3_alt2.nit:50,5--6: Error: method `a2` is protected and can only accessed by `self`.
+alt/base_attr3_alt2.nit:51,5--6: Error: method `a2=` does not exists in `A`.
+alt/base_attr3_alt2.nit:52,5--6: Error: method `a3` does not exists in `A`.
+alt/base_attr3_alt2.nit:53,5--6: Error: method `a3=` does not exists in `A`.
+alt/base_attr3_alt2.nit:56,5--6: Error: method `a5` is protected and can only accessed by `self`.
+alt/base_attr3_alt2.nit:58,5--6: Error: method `a6` does not exists in `A`.
+alt/base_attr3_alt2.nit:61,5--6: Error: method `a7=` is protected and can only accessed by `self`.
+alt/base_attr3_alt2.nit:62,5--6: Error: method `a8` is protected and can only accessed by `self`.
+alt/base_attr3_alt2.nit:63,5--6: Error: method `a8=` is protected and can only accessed by `self`.
+alt/base_attr3_alt2.nit:64,5--6: Error: method `a9` does not exists in `A`.
+alt/base_attr3_alt2.nit:65,5--6: Error: method `a9=` is protected and can only accessed by `self`.
+alt/base_attr3_alt2.nit:67,5--7: Error: method `a10=` does not exists in `A`.
+alt/base_attr3_alt2.nit:68,5--7: Error: method `a11` is protected and can only accessed by `self`.
+alt/base_attr3_alt2.nit:69,5--7: Error: method `a11=` does not exists in `A`.
+alt/base_attr3_alt2.nit:70,5--7: Error: method `a12` does not exists in `A`.
+alt/base_attr3_alt2.nit:71,5--7: Error: method `a12=` does not exists in `A`.
-alt/base_attr3_alt3.nit:80,2--9: Error: Method 'a1=' doesn't exists in A.
-alt/base_attr3_alt3.nit:81,2--5: Error: Method 'a2' is protected and can only acceded by self.
-alt/base_attr3_alt3.nit:82,2--9: Error: Method 'a2=' doesn't exists in A.
-alt/base_attr3_alt3.nit:83,2--5: Error: Method 'a3' doesn't exists in A.
-alt/base_attr3_alt3.nit:84,2--9: Error: Method 'a3=' doesn't exists in A.
-alt/base_attr3_alt3.nit:87,2--5: Error: Method 'a5' is protected and can only acceded by self.
-alt/base_attr3_alt3.nit:89,2--5: Error: Method 'a6' doesn't exists in A.
-alt/base_attr3_alt3.nit:92,2--9: Error: Method 'a7=' is protected and can only acceded by self.
-alt/base_attr3_alt3.nit:93,2--5: Error: Method 'a8' is protected and can only acceded by self.
-alt/base_attr3_alt3.nit:94,2--9: Error: Method 'a8=' is protected and can only acceded by self.
-alt/base_attr3_alt3.nit:95,2--5: Error: Method 'a9' doesn't exists in A.
-alt/base_attr3_alt3.nit:96,2--9: Error: Method 'a9=' is protected and can only acceded by self.
-alt/base_attr3_alt3.nit:98,2--10: Error: Method 'a10=' doesn't exists in A.
-alt/base_attr3_alt3.nit:99,2--6: Error: Method 'a11' is protected and can only acceded by self.
-alt/base_attr3_alt3.nit:100,2--10: Error: Method 'a11=' doesn't exists in A.
-alt/base_attr3_alt3.nit:101,2--6: Error: Method 'a12' doesn't exists in A.
-alt/base_attr3_alt3.nit:102,2--10: Error: Method 'a12=' doesn't exists in A.
+alt/base_attr3_alt3.nit:80,4--5: Error: method `a1=` does not exists in `A`.
+alt/base_attr3_alt3.nit:81,4--5: Error: method `a2` is protected and can only accessed by `self`.
+alt/base_attr3_alt3.nit:82,4--5: Error: method `a2=` does not exists in `A`.
+alt/base_attr3_alt3.nit:83,4--5: Error: method `a3` does not exists in `A`.
+alt/base_attr3_alt3.nit:84,4--5: Error: method `a3=` does not exists in `A`.
+alt/base_attr3_alt3.nit:87,4--5: Error: method `a5` is protected and can only accessed by `self`.
+alt/base_attr3_alt3.nit:89,4--5: Error: method `a6` does not exists in `A`.
+alt/base_attr3_alt3.nit:92,4--5: Error: method `a7=` is protected and can only accessed by `self`.
+alt/base_attr3_alt3.nit:93,4--5: Error: method `a8` is protected and can only accessed by `self`.
+alt/base_attr3_alt3.nit:94,4--5: Error: method `a8=` is protected and can only accessed by `self`.
+alt/base_attr3_alt3.nit:95,4--5: Error: method `a9` does not exists in `A`.
+alt/base_attr3_alt3.nit:96,4--5: Error: method `a9=` is protected and can only accessed by `self`.
+alt/base_attr3_alt3.nit:98,4--6: Error: method `a10=` does not exists in `A`.
+alt/base_attr3_alt3.nit:99,4--6: Error: method `a11` is protected and can only accessed by `self`.
+alt/base_attr3_alt3.nit:100,4--6: Error: method `a11=` does not exists in `A`.
+alt/base_attr3_alt3.nit:101,4--6: Error: method `a12` does not exists in `A`.
+alt/base_attr3_alt3.nit:102,4--6: Error: method `a12=` does not exists in `A`.
-alt/base_attr3_alt4.nit:110,2--9: Error: Method 'a1=' doesn't exists in B.
-alt/base_attr3_alt4.nit:111,2--5: Error: Method 'a2' is protected and can only acceded by self.
-alt/base_attr3_alt4.nit:112,2--9: Error: Method 'a2=' doesn't exists in B.
-alt/base_attr3_alt4.nit:113,2--5: Error: Method 'a3' doesn't exists in B.
-alt/base_attr3_alt4.nit:114,2--9: Error: Method 'a3=' doesn't exists in B.
-alt/base_attr3_alt4.nit:117,2--5: Error: Method 'a5' is protected and can only acceded by self.
-alt/base_attr3_alt4.nit:119,2--5: Error: Method 'a6' doesn't exists in B.
-alt/base_attr3_alt4.nit:122,2--9: Error: Method 'a7=' is protected and can only acceded by self.
-alt/base_attr3_alt4.nit:123,2--5: Error: Method 'a8' is protected and can only acceded by self.
-alt/base_attr3_alt4.nit:124,2--9: Error: Method 'a8=' is protected and can only acceded by self.
-alt/base_attr3_alt4.nit:125,2--5: Error: Method 'a9' doesn't exists in B.
-alt/base_attr3_alt4.nit:126,2--9: Error: Method 'a9=' is protected and can only acceded by self.
-alt/base_attr3_alt4.nit:128,2--10: Error: Method 'a10=' doesn't exists in B.
-alt/base_attr3_alt4.nit:129,2--6: Error: Method 'a11' is protected and can only acceded by self.
-alt/base_attr3_alt4.nit:130,2--10: Error: Method 'a11=' doesn't exists in B.
-alt/base_attr3_alt4.nit:131,2--6: Error: Method 'a12' doesn't exists in B.
-alt/base_attr3_alt4.nit:132,2--10: Error: Method 'a12=' doesn't exists in B.
+alt/base_attr3_alt4.nit:110,4--5: Error: method `a1=` does not exists in `B`.
+alt/base_attr3_alt4.nit:111,4--5: Error: method `a2` is protected and can only accessed by `self`.
+alt/base_attr3_alt4.nit:112,4--5: Error: method `a2=` does not exists in `B`.
+alt/base_attr3_alt4.nit:113,4--5: Error: method `a3` does not exists in `B`.
+alt/base_attr3_alt4.nit:114,4--5: Error: method `a3=` does not exists in `B`.
+alt/base_attr3_alt4.nit:117,4--5: Error: method `a5` is protected and can only accessed by `self`.
+alt/base_attr3_alt4.nit:119,4--5: Error: method `a6` does not exists in `B`.
+alt/base_attr3_alt4.nit:122,4--5: Error: method `a7=` is protected and can only accessed by `self`.
+alt/base_attr3_alt4.nit:123,4--5: Error: method `a8` is protected and can only accessed by `self`.
+alt/base_attr3_alt4.nit:124,4--5: Error: method `a8=` is protected and can only accessed by `self`.
+alt/base_attr3_alt4.nit:125,4--5: Error: method `a9` does not exists in `B`.
+alt/base_attr3_alt4.nit:126,4--5: Error: method `a9=` is protected and can only accessed by `self`.
+alt/base_attr3_alt4.nit:128,4--6: Error: method `a10=` does not exists in `B`.
+alt/base_attr3_alt4.nit:129,4--6: Error: method `a11` is protected and can only accessed by `self`.
+alt/base_attr3_alt4.nit:130,4--6: Error: method `a11=` does not exists in `B`.
+alt/base_attr3_alt4.nit:131,4--6: Error: method `a12` does not exists in `B`.
+alt/base_attr3_alt4.nit:132,4--6: Error: method `a12=` does not exists in `B`.
-alt/base_attr4_alt1.nit:40,1--9: Error: Method 'foo=' doesn't exists in A.
+alt/base_attr4_alt1.nit:40,3--5: Error: method `foo=` does not exists in `A`.
-alt/base_attr4_alt2.nit:43,1--5: Error: Method 'bar' doesn't exists in A.
+alt/base_attr4_alt2.nit:43,3--5: Error: method `bar` does not exists in `A`.
-alt/base_attr5_alt1.nit:34,6--8: Redef error: B::foo is an inherited property. To redefine it, add the redef keyword.
+alt/base_attr5_alt1.nit:34,6--8: Redef Error: `B::foo` is an inherited property. To redefine it, add the `redef` keyword.
-alt/base_attr5_alt11.nit:41,6--8: Redef error: B::bar= is an inherited property. To redefine it, add the redef keyword.
+alt/base_attr5_alt11.nit:41,6--8: Redef Error: `B::bar=` is an inherited property. To redefine it, add the `redef` keyword.
-alt/base_attr5_alt12.nit:42,12--14: Error: No property B::bar is inherited. Remove the redef keyword to define a new property.
+alt/base_attr5_alt12.nit:42,12--14: Error: no property `B::bar` is inherited. Remove the `redef` keyword to define a new property.
-alt/base_attr5_alt13.nit:43,6--8: Redef error: B::bar= is an inherited property. To redefine it, add the redef keyword.
+alt/base_attr5_alt13.nit:43,6--8: Redef Error: `B::bar=` is an inherited property. To redefine it, add the `redef` keyword.
-alt/base_attr5_alt14.nit:44,12--14: Error: No property B::bar is inherited. Remove the redef keyword to define a new property.
+alt/base_attr5_alt14.nit:44,12--14: Error: no property `B::bar` is inherited. Remove the `redef` keyword to define a new property.
-alt/base_attr5_alt16.nit:46,12--14: Error: No property B::bar is inherited. Remove the redef keyword to define a new property.
+alt/base_attr5_alt16.nit:46,12--14: Error: no property `B::bar` is inherited. Remove the `redef` keyword to define a new property.
-alt/base_attr5_alt17.nit:47,12--14: Error: No property B::bar is inherited. Remove the redef keyword to define a new property.
+alt/base_attr5_alt17.nit:47,12--14: Error: no property `B::bar` is inherited. Remove the `redef` keyword to define a new property.
-alt/base_attr5_alt21.nit:48,6--8: Redef error: B::baz is an inherited property. To redefine it, add the redef keyword.
+alt/base_attr5_alt21.nit:48,6--8: Redef Error: `B::baz` is an inherited property. To redefine it, add the `redef` keyword.
-alt/base_attr5_alt23.nit:50,6--8: Redef error: B::baz is an inherited property. To redefine it, add the redef keyword.
+alt/base_attr5_alt23.nit:50,6--8: Redef Error: `B::baz` is an inherited property. To redefine it, add the `redef` keyword.
-alt/base_attr5_alt25.nit:52,6--8: Redef error: B::baz is an inherited property. To redefine it, add the redef keyword.
+alt/base_attr5_alt25.nit:52,6--8: Redef Error: `B::baz` is an inherited property. To redefine it, add the `redef` keyword.
-alt/base_attr5_alt3.nit:36,6--8: Redef error: B::foo is an inherited property. To redefine it, add the redef keyword.
+alt/base_attr5_alt3.nit:36,6--8: Redef Error: `B::foo` is an inherited property. To redefine it, add the `redef` keyword.
-alt/base_attr5_alt5.nit:38,6--8: Redef error: B::foo is an inherited property. To redefine it, add the redef keyword.
+alt/base_attr5_alt5.nit:38,6--8: Redef Error: `B::foo` is an inherited property. To redefine it, add the `redef` keyword.
-alt/base_attr5_alt6.nit:39,12--14: Error: No property B::foo= is inherited. Remove the redef keyword to define a new property.
+alt/base_attr5_alt6.nit:39,12--14: Error: no property `B::foo=` is inherited. Remove the `redef` keyword to define a new property.
-alt/base_attr7_alt1.nit:34,17--20: Redef Error: Wrong return type. found Bool, expected Int.
+alt/base_attr7_alt1.nit:34,17--20: Redef Error: expected `Int` return type; got `Bool`.
-alt/base_attr7_alt2.nit:35,11--14: Redef Error: Wrong type for parameter `bar'. found Bool, expected Int.
+alt/base_attr7_alt2.nit:35,11--14: Redef Error: expected `Int` type for parameter `bar'; got `Bool`.
-alt/base_attr7_alt3.nit:36,17--20: Redef Error: Wrong return type. found Bool, expected Int.
-alt/base_attr7_alt3.nit:36,17--20: Redef Error: Wrong type for parameter `baz'. found Bool, expected Int.
+alt/base_attr7_alt3.nit:36,17--20: Redef Error: expected `Int` return type; got `Bool`.
+alt/base_attr7_alt3.nit:36,17--20: Redef Error: expected `Int` type for parameter `baz'; got `Bool`.
-alt/base_attr_abstract_alt1.nit:19,15--22: Error: `abstract` attributes cannot have an initial value
+alt/base_attr_abstract_alt1.nit:19,15--22: Error: `abstract` attributes cannot have an initial value.
-alt/base_attr_abstract_alt2.nit:20,6: Error: Untyped attribute base_attr_abstract_alt2#Foo#b
-alt/base_attr_abstract_alt2.nit:20,21--30: Error: `noautoinit` attributes cannot be abstract
+alt/base_attr_abstract_alt2.nit:20,6: Error: untyped attribute `base_attr_abstract_alt2#Foo#b`.
+alt/base_attr_abstract_alt2.nit:20,21--30: Error: `noautoinit` attributes cannot be abstract.
-alt/base_attr_init_val_block_alt1.nit:27,3--8: Error: Return without value in a function.
+alt/base_attr_init_val_block_alt1.nit:27,3--8: Error: `return` without value in a function.
-alt/base_attr_init_val_block_alt2.nit:23,6: Control error: Reached end of block (a 'return' with a value was expected).
+alt/base_attr_init_val_block_alt2.nit:23,6: Error: reached end of block; expected `return`.
-alt/base_attr_isset_alt2.nit:80,4--12: Error: isset on a nullable attribute.
+alt/base_attr_isset_alt2.nit:80,10--12: Type Error: `isset` on a nullable attribute.
-alt/base_attr_lazy_alt1.nit:28,20--23: Error: a lazy attribute needs a value
+alt/base_attr_lazy_alt1.nit:28,20--23: Error: `lazy` attributes need a value.
-alt/base_attr_lazy_alt2.nit:29,20--23: Syntax error: `lazy` must be used on attributes.
+alt/base_attr_lazy_alt2.nit:29,20--23: Syntax Error: `lazy` must be used on attributes.
-alt/base_attr_named_setters_alt1.nit:52,1--10: Error: Method 'foo=' doesn't exists in B.
+alt/base_attr_named_setters_alt1.nit:52,3--5: Error: method `foo=` does not exists in `B`.
-alt/base_attr_named_setters_alt2.nit:30,6: Error: A property set_baz is already defined in class B at line 29.
+alt/base_attr_named_setters_alt2.nit:30,6: Error: a property `set_baz` is already defined in class `B` at line 29.
-alt/base_attr_named_setters_alt3.nit:31,6: Redef error: B::zz is an inherited property. To redefine it, add the redef keyword.
+alt/base_attr_named_setters_alt3.nit:31,6: Redef Error: `B::zz` is an inherited property. To redefine it, add the `redef` keyword.
-alt/base_attr_named_setters_alt4.nit:32,9--11: Redef Error: 1 parameters found, 0 expected. Signature is base_attr_named_setters_alt4#B#zz
+alt/base_attr_named_setters_alt4.nit:32,9--11: Redef Error: expected 0 parameter(s) for `zz`; got 1. See introduction at `base_attr_named_setters_alt4::A::zz`.
-alt/base_attr_readonly_alt1.nit:21,3--8: Error: Method or variable 'a1=' unknown in Foo.
+alt/base_attr_readonly_alt1.nit:21,3--4: Error: method or variable `a1=` unknown in `Foo`.
-alt/base_attr_readonly_alt3.nit:25,17--24: Error: a readonly attribute needs a value
+alt/base_attr_readonly_alt3.nit:25,17--24: Error: `readonly` attributes need a value.
--- /dev/null
+1
+true
+true
--- /dev/null
+alt/base_autocast_array_alt1.nit:25,11--12: Type Error: expected `V`, got `Int`.
--- /dev/null
+Runtime error: Cast failed. Expected `Array[V]`, got `Array[Int]` (alt/base_autocast_array_alt2.nit:26)
+10
+10
--- /dev/null
+Runtime error: Cast failed. Expected `V`, got `Int` (alt/base_autocast_array_alt3.nit:23)
+10
+10
-base_classid.nit:47,2--8: Warning: Expression is already a A.
-base_classid.nit:48,2--9: Warning: Expression is already a A.
-base_classid.nit:49,2--8: Warning: Expression is already a A since it is a B.
+base_classid.nit:47,2--8: Warning: expression is already a `A`.
+base_classid.nit:48,2--9: Warning: expression is already a `A`.
+base_classid.nit:49,2--8: Warning: expression is already a `A` since it is a `B`.
true
true
true
-alt/base_combined_assignment_alt1.nit:21,1--6: Error: Method '+' doesn't exists in Object.
+alt/base_combined_assignment_alt1.nit:21,3--4: Error: method `+` does not exists in `Object`.
-alt/base_control_flow_alt1.nit:26,5: Control error: Reached end of function (a 'return' with a value was expected).
-alt/base_control_flow_alt1.nit:34,5: Control error: Reached end of function (a 'return' with a value was expected).
+alt/base_control_flow_alt1.nit:26,5: Error: reached end of function; expected `return` with a value.
+alt/base_control_flow_alt1.nit:34,5: Error: reached end of function; expected `return` with a value.
-alt/base_covar_int2_alt2.nit:41,7--8: Type error: expected Int, got A
+alt/base_covar_int2_alt2.nit:41,7--8: Type Error: expected `Int`, got `A`.
-alt/base_covar_int2_alt4.nit:44,7--8: Type error: expected Int, got A
+alt/base_covar_int2_alt4.nit:44,7--8: Type Error: expected `Int`, got `A`.
-alt/base_covar_int_alt2.nit:36,7--8: Type error: expected Int, got Discrete
+alt/base_covar_int_alt2.nit:36,7--8: Type Error: expected `Int`, got `Discrete`.
-alt/base_covar_int_alt4.nit:39,7--8: Type error: expected Int, got Discrete
+alt/base_covar_int_alt4.nit:39,7--8: Type Error: expected `Int`, got `Discrete`.
-base_deprecated.nit:33,3--5: Deprecation Warning: Method 'foo' is deprecated: Documentation
-base_deprecated.nit:34,3--5: Deprecation Warning: Method 'bar' is deprecated.
+base_deprecated.nit:33,3--5: Deprecation Warning: method `foo` is deprecated: Documentation
+base_deprecated.nit:34,3--5: Deprecation Warning: method `bar` is deprecated.
-base_div_by_zero.nit:17,16--20: Error: Definitely division by zero
+base_div_by_zero.nit:17,16--20: Warning: division by zero.
+0
+5
+inf
+0
-base_eq_null_notnull.nit:36,6--14: Warning: expression is not null, since it is a `A`.
-base_eq_null_notnull.nit:43,2--10: Warning: expression is not null, since it is a `A`.
+base_eq_null_notnull.nit:36,6: Warning: expression is not null, since it is a `A`.
+base_eq_null_notnull.nit:43,2: Warning: expression is not null, since it is a `A`.
true
true
true
-alt/base_error_class_kind2_alt1.nit:34,8--10: Error: interface SubI cannot specialize abstract class AC2
+alt/base_error_class_kind2_alt1.nit:34,8--10: Error: interface `SubI` cannot specialize abstract class `AC2`.
-alt/base_error_class_kind2_alt10.nit:59,8--10: Error: enum SubEn cannot specialize class CC2
+alt/base_error_class_kind2_alt10.nit:59,8--10: Error: enum `SubEn` cannot specialize class `CC2`.
-alt/base_error_class_kind2_alt11.nit:60,8--11: Error: enum SubEn cannot specialize enum EnC2
+alt/base_error_class_kind2_alt11.nit:60,8--11: Error: enum `SubEn` cannot specialize enum `EnC2`.
-alt/base_error_class_kind2_alt12.nit:61,8--11: Error: enum SubEn cannot specialize extern class ExC2
+alt/base_error_class_kind2_alt12.nit:61,8--11: Error: enum `SubEn` cannot specialize extern class `ExC2`.
-alt/base_error_class_kind2_alt13.nit:66,8--10: Error: extern class SubEx cannot specialize abstract class AC2
+alt/base_error_class_kind2_alt13.nit:66,8--10: Error: extern class `SubEx` cannot specialize abstract class `AC2`.
-alt/base_error_class_kind2_alt14.nit:67,8--10: Error: extern class SubEx cannot specialize class CC2
+alt/base_error_class_kind2_alt14.nit:67,8--10: Error: extern class `SubEx` cannot specialize class `CC2`.
-alt/base_error_class_kind2_alt15.nit:68,8--11: Error: extern class SubEx cannot specialize enum EnC2
+alt/base_error_class_kind2_alt15.nit:68,8--11: Error: extern class `SubEx` cannot specialize enum `EnC2`.
-alt/base_error_class_kind2_alt2.nit:35,8--10: Error: interface SubI cannot specialize class CC2
+alt/base_error_class_kind2_alt2.nit:35,8--10: Error: interface `SubI` cannot specialize class `CC2`.
-alt/base_error_class_kind2_alt3.nit:36,8--11: Error: interface SubI cannot specialize enum EnC2
+alt/base_error_class_kind2_alt3.nit:36,8--11: Error: interface `SubI` cannot specialize enum `EnC2`.
-alt/base_error_class_kind2_alt4.nit:37,8--11: Error: interface SubI cannot specialize extern class ExC2
+alt/base_error_class_kind2_alt4.nit:37,8--11: Error: interface `SubI` cannot specialize extern class `ExC2`.
-alt/base_error_class_kind2_alt5.nit:44,8--11: Error: abstract class SubA cannot specialize enum EnC2
+alt/base_error_class_kind2_alt5.nit:44,8--11: Error: abstract class `SubA` cannot specialize enum `EnC2`.
-alt/base_error_class_kind2_alt6.nit:45,8--11: Error: abstract class SubA cannot specialize extern class ExC2
+alt/base_error_class_kind2_alt6.nit:45,8--11: Error: abstract class `SubA` cannot specialize extern class `ExC2`.
-alt/base_error_class_kind2_alt7.nit:52,8--11: Error: class SubC cannot specialize enum EnC2
+alt/base_error_class_kind2_alt7.nit:52,8--11: Error: class `SubC` cannot specialize enum `EnC2`.
-alt/base_error_class_kind2_alt8.nit:53,8--11: Error: class SubC cannot specialize extern class ExC2
+alt/base_error_class_kind2_alt8.nit:53,8--11: Error: class `SubC` cannot specialize extern class `ExC2`.
-alt/base_error_class_kind2_alt9.nit:58,8--10: Error: enum SubEn cannot specialize abstract class AC2
+alt/base_error_class_kind2_alt9.nit:58,8--10: Error: enum `SubEn` cannot specialize abstract class `AC2`.
-alt/base_error_class_kind_alt1.nit:44,8--9: Error: interface SubI cannot specialize abstract class AC
+alt/base_error_class_kind_alt1.nit:44,8--9: Error: interface `SubI` cannot specialize abstract class `AC`.
-alt/base_error_class_kind_alt10.nit:69,8--9: Error: enum SubEn cannot specialize class CC
+alt/base_error_class_kind_alt10.nit:69,8--9: Error: enum `SubEn` cannot specialize class `CC`.
-alt/base_error_class_kind_alt11.nit:70,8--10: Error: enum SubEn cannot specialize enum EnC
+alt/base_error_class_kind_alt11.nit:70,8--10: Error: enum `SubEn` cannot specialize enum `EnC`.
-alt/base_error_class_kind_alt12.nit:71,8--10: Error: enum SubEn cannot specialize extern class ExC
+alt/base_error_class_kind_alt12.nit:71,8--10: Error: enum `SubEn` cannot specialize extern class `ExC`.
-alt/base_error_class_kind_alt13.nit:76,8--9: Error: extern class SubEx cannot specialize abstract class AC
+alt/base_error_class_kind_alt13.nit:76,8--9: Error: extern class `SubEx` cannot specialize abstract class `AC`.
-alt/base_error_class_kind_alt14.nit:77,8--9: Error: extern class SubEx cannot specialize class CC
+alt/base_error_class_kind_alt14.nit:77,8--9: Error: extern class `SubEx` cannot specialize class `CC`.
-alt/base_error_class_kind_alt15.nit:78,8--10: Error: extern class SubEx cannot specialize enum EnC
+alt/base_error_class_kind_alt15.nit:78,8--10: Error: extern class `SubEx` cannot specialize enum `EnC`.
-alt/base_error_class_kind_alt2.nit:45,8--9: Error: interface SubI cannot specialize class CC
+alt/base_error_class_kind_alt2.nit:45,8--9: Error: interface `SubI` cannot specialize class `CC`.
-alt/base_error_class_kind_alt3.nit:46,8--10: Error: interface SubI cannot specialize enum EnC
+alt/base_error_class_kind_alt3.nit:46,8--10: Error: interface `SubI` cannot specialize enum `EnC`.
-alt/base_error_class_kind_alt4.nit:47,8--10: Error: interface SubI cannot specialize extern class ExC
+alt/base_error_class_kind_alt4.nit:47,8--10: Error: interface `SubI` cannot specialize extern class `ExC`.
-alt/base_error_class_kind_alt5.nit:54,8--10: Error: abstract class SubA cannot specialize enum EnC
+alt/base_error_class_kind_alt5.nit:54,8--10: Error: abstract class `SubA` cannot specialize enum `EnC`.
-alt/base_error_class_kind_alt6.nit:55,8--10: Error: abstract class SubA cannot specialize extern class ExC
+alt/base_error_class_kind_alt6.nit:55,8--10: Error: abstract class `SubA` cannot specialize extern class `ExC`.
-alt/base_error_class_kind_alt7.nit:62,8--10: Error: class SubC cannot specialize enum EnC
+alt/base_error_class_kind_alt7.nit:62,8--10: Error: class `SubC` cannot specialize enum `EnC`.
-alt/base_error_class_kind_alt8.nit:63,8--10: Error: class SubC cannot specialize extern class ExC
+alt/base_error_class_kind_alt8.nit:63,8--10: Error: class `SubC` cannot specialize extern class `ExC`.
-alt/base_error_class_kind_alt9.nit:68,8--9: Error: enum SubEn cannot specialize abstract class AC
+alt/base_error_class_kind_alt9.nit:68,8--9: Error: enum `SubEn` cannot specialize abstract class `AC`.
-base_error_doubledef.nit:26,12--14: Error: A property foo is already defined in class B at line 24.
+base_error_doubledef.nit:26,12--14: Error: a property `foo` is already defined in class `B` at line 24.
-base_error_new_abstract.nit:21,9--13: Type Error: Cannot instantiate abstract class A.
+base_error_new_abstract.nit:21,9--13: Type Error: cannot instantiate abstract class `A`.
-base_error_new_interface.nit:21,9--13: Type Error: Cannot instantiate interface A.
+base_error_new_interface.nit:21,9--13: Type Error: cannot instantiate interface `A`.
-alt/base_for_nullable_alt2.nit:21,1--25: Type error: 'for' cannot iterate over 'null'
+alt/base_for_nullable_alt2.nit:21,1--25: Type Error: `for` cannot iterate over `null`.
-base_formal_subtype.nit:48,10--21: Warning: Expression is already a Object.
-base_formal_subtype.nit:50,10--16: Warning: Expression is already a E.
-base_formal_subtype.nit:51,10--21: Warning: Expression is already a Object since it is a E.
-base_formal_subtype.nit:53,10--18: Warning: Expression is already a VE.
-base_formal_subtype.nit:54,10--17: Warning: Expression is already a E since it is a VE.
-base_formal_subtype.nit:55,10--22: Warning: Expression is already a Object since it is a VE.
-base_formal_subtype.nit:57,10--20: Warning: Expression is already a VVE.
-base_formal_subtype.nit:58,10--19: Warning: Expression is already a VE since it is a VVE.
-base_formal_subtype.nit:59,10--18: Warning: Expression is already a E since it is a VVE.
-base_formal_subtype.nit:60,10--23: Warning: Expression is already a Object since it is a VVE.
-base_formal_subtype.nit:62,10--20: Warning: Expression is already a VGE.
-base_formal_subtype.nit:63,10--20: Warning: Expression is already a G[E] since it is a VGE.
-base_formal_subtype.nit:64,10--25: Warning: Expression is already a G[Object] since it is a VGE.
-base_formal_subtype.nit:65,10--23: Warning: Expression is already a Object since it is a VGE.
-base_formal_subtype.nit:67,10--22: Warning: Expression is already a VVGE.
-base_formal_subtype.nit:68,10--21: Warning: Expression is already a VGE since it is a VVGE.
-base_formal_subtype.nit:69,10--21: Warning: Expression is already a G[E] since it is a VVGE.
-base_formal_subtype.nit:70,10--26: Warning: Expression is already a G[Object] since it is a VVGE.
-base_formal_subtype.nit:71,10--24: Warning: Expression is already a Object since it is a VVGE.
-base_formal_subtype.nit:73,10--22: Warning: Expression is already a VGVE.
-base_formal_subtype.nit:74,10--22: Warning: Expression is already a G[VE] since it is a VGVE.
-base_formal_subtype.nit:75,10--21: Warning: Expression is already a G[E] since it is a VGVE.
-base_formal_subtype.nit:76,10--26: Warning: Expression is already a G[Object] since it is a VGVE.
-base_formal_subtype.nit:77,10--24: Warning: Expression is already a Object since it is a VGVE.
-base_formal_subtype.nit:79,10--24: Warning: Expression is already a VGVVE.
-base_formal_subtype.nit:80,10--24: Warning: Expression is already a G[VVE] since it is a VGVVE.
-base_formal_subtype.nit:81,10--23: Warning: Expression is already a G[VE] since it is a VGVVE.
-base_formal_subtype.nit:82,10--22: Warning: Expression is already a G[E] since it is a VGVVE.
-base_formal_subtype.nit:83,10--27: Warning: Expression is already a G[Object] since it is a VGVVE.
-base_formal_subtype.nit:84,10--25: Warning: Expression is already a Object since it is a VGVVE.
+base_formal_subtype.nit:48,10--21: Warning: expression is already a `Object`.
+base_formal_subtype.nit:50,10--16: Warning: expression is already a `E`.
+base_formal_subtype.nit:51,10--21: Warning: expression is already a `Object` since it is a `E`.
+base_formal_subtype.nit:53,10--18: Warning: expression is already a `VE`.
+base_formal_subtype.nit:54,10--17: Warning: expression is already a `E` since it is a `VE`.
+base_formal_subtype.nit:55,10--22: Warning: expression is already a `Object` since it is a `VE`.
+base_formal_subtype.nit:57,10--20: Warning: expression is already a `VVE`.
+base_formal_subtype.nit:58,10--19: Warning: expression is already a `VE` since it is a `VVE`.
+base_formal_subtype.nit:59,10--18: Warning: expression is already a `E` since it is a `VVE`.
+base_formal_subtype.nit:60,10--23: Warning: expression is already a `Object` since it is a `VVE`.
+base_formal_subtype.nit:62,10--20: Warning: expression is already a `VGE`.
+base_formal_subtype.nit:63,10--20: Warning: expression is already a `G[E]` since it is a `VGE`.
+base_formal_subtype.nit:64,10--25: Warning: expression is already a `G[Object]` since it is a `VGE`.
+base_formal_subtype.nit:65,10--23: Warning: expression is already a `Object` since it is a `VGE`.
+base_formal_subtype.nit:67,10--22: Warning: expression is already a `VVGE`.
+base_formal_subtype.nit:68,10--21: Warning: expression is already a `VGE` since it is a `VVGE`.
+base_formal_subtype.nit:69,10--21: Warning: expression is already a `G[E]` since it is a `VVGE`.
+base_formal_subtype.nit:70,10--26: Warning: expression is already a `G[Object]` since it is a `VVGE`.
+base_formal_subtype.nit:71,10--24: Warning: expression is already a `Object` since it is a `VVGE`.
+base_formal_subtype.nit:73,10--22: Warning: expression is already a `VGVE`.
+base_formal_subtype.nit:74,10--22: Warning: expression is already a `G[VE]` since it is a `VGVE`.
+base_formal_subtype.nit:75,10--21: Warning: expression is already a `G[E]` since it is a `VGVE`.
+base_formal_subtype.nit:76,10--26: Warning: expression is already a `G[Object]` since it is a `VGVE`.
+base_formal_subtype.nit:77,10--24: Warning: expression is already a `Object` since it is a `VGVE`.
+base_formal_subtype.nit:79,10--24: Warning: expression is already a `VGVVE`.
+base_formal_subtype.nit:80,10--24: Warning: expression is already a `G[VVE]` since it is a `VGVVE`.
+base_formal_subtype.nit:81,10--23: Warning: expression is already a `G[VE]` since it is a `VGVVE`.
+base_formal_subtype.nit:82,10--22: Warning: expression is already a `G[E]` since it is a `VGVVE`.
+base_formal_subtype.nit:83,10--27: Warning: expression is already a `G[Object]` since it is a `VGVVE`.
+base_formal_subtype.nit:84,10--25: Warning: expression is already a `Object` since it is a `VGVVE`.
-alt/base_gen2_alt1.nit:61,13--17: Type error: 'A' is not a generic class.
+alt/base_gen2_alt1.nit:61,13--17: Type Error: `A` is not a generic class.
-alt/base_gen2_alt2.nit:62,13: Type error: 'B' is a generic class.
+alt/base_gen2_alt2.nit:62,13: Type Error: `B[E: nullable Object]` is a generic class.
-alt/base_gen2_alt3.nit:63,13--22: Type error: 'B' has 1 parameters (2 are provided).
+alt/base_gen2_alt3.nit:63,13--22: Type Error: expected 1 formal argument(s) for `B[E: nullable Object]`; got 2.
-alt/base_gen2_alt4.nit:64,13: Type error: 'C' is a generic class.
+alt/base_gen2_alt4.nit:64,13: Type Error: `C[F: nullable Object, G: nullable Object]` is a generic class.
-alt/base_gen2_alt5.nit:65,13--17: Type error: 'C' has 2 parameters (1 are provided).
+alt/base_gen2_alt5.nit:65,13--17: Type Error: expected 2 formal argument(s) for `C[F: nullable Object, G: nullable Object]`; got 1.
-alt/base_gen_alt1.nit:62,11: Type error: expected B, got A
+alt/base_gen_alt1.nit:62,11: Type Error: expected `B`, got `A`.
-alt/base_gen_bound_alt1.nit:31,10: Type error: expected B, got F
+alt/base_gen_bound_alt1.nit:31,10: Type Error: expected `B`, got `F`.
-alt/base_gen_bound_alt2.nit:32,11: Type error: expected B, got F
+alt/base_gen_bound_alt2.nit:32,11: Type Error: expected `B`, got `F`.
-alt/base_gen_bound_alt3.nit:33,11: Type error: expected B, got F
+alt/base_gen_bound_alt3.nit:33,11: Type Error: expected `B`, got `F`.
-alt/base_gen_bound_alt4.nit:34,13: Type error: expected B, got F
+alt/base_gen_bound_alt4.nit:34,13: Type Error: expected `B`, got `F`.
-alt/base_gen_bound_alt5.nit:39,11: Type error: expected B, got V
+alt/base_gen_bound_alt5.nit:39,11: Type Error: expected `B`, got `V`.
-alt/base_gen_bound_alt6.nit:40,11: Type error: expected B, got V
+alt/base_gen_bound_alt6.nit:40,11: Type Error: expected `B`, got `V`.
-alt/base_gen_bound_alt7.nit:41,13: Type error: expected B, got V
+alt/base_gen_bound_alt7.nit:41,13: Type Error: expected `B`, got `V`.
-alt/base_gen_bound_alt8.nit:44,14: Type error: expected B, got A
+alt/base_gen_bound_alt8.nit:44,14: Type Error: expected `B`, got `A`.
-alt/base_gen_bound_alt9.nit:49,16: Type error: expected B, got A
+alt/base_gen_bound_alt9.nit:49,16: Type Error: expected `B`, got `A`.
-base_gen_final_bound.nit:23,16--18: Warning: Useless formal parameter type since `Int` cannnot have subclasses.
+base_gen_final_bound.nit:23,16--18: Warning: useless formal parameter type since `Int` cannot have subclasses.
-alt/base_gen_int_alt1.nit:56,11: Type error: expected Int, got A
+alt/base_gen_int_alt1.nit:56,11: Type Error: expected `Int`, got `A`.
-alt/base_gen_reassign_alt3.nit:46,11--12: Type error: expected Float, got Int
+alt/base_gen_reassign_alt3.nit:46,11--12: Type Error: expected `Float`, got `Int`.
-alt/base_gen_redef_alt2.nit:17,15: Error: Formal parameter type #0 `X` must be named `E' as in the original definition in module `base_gen2`.
+alt/base_gen_redef_alt2.nit:17,15: Error: formal parameter type #0 `X` must be named `E` as in the original definition in module `base_gen2`.
-alt/base_gen_redef_alt3.nit:17,13: Redef error: Formal parameter arity missmatch; got 2, expected 1.
+alt/base_gen_redef_alt3.nit:17,13: Redef Error: expected 1 formal parameter(s) for B[E: nullable Object]; got 2.
-alt/base_if_expr_alt1.nit:39,10--34: Type Error: ambiguous type A vs Int
+alt/base_if_expr_alt1.nit:39,10--34: Type Error: ambiguous type `A` vs `Int`.
-alt/base_import_alt3.nit:1,8--21: Error: cannot find module fail from project1. tried ., ../lib/standard, ../lib/standard/collection, alt, ../lib
+alt/base_import_alt3.nit:1,8--21: Error: cannot find module `fail` from `project1`. Tried: ., ../lib/standard, ../lib/standard/collection, alt, ../lib.
-alt/base_init_autoinit2_alt1.nit:20,30--39: Error: `noautoinit` attributes cannot have an initial value
+alt/base_init_autoinit2_alt1.nit:20,30--39: Error: `noautoinit` attributes cannot have an initial value.
-alt/base_init_autoinit2_alt2.nit:23,40--43: Error: lazy incompatible with autoinit
+alt/base_init_autoinit2_alt2.nit:23,40--43: Error: `lazy` incompatible with `autoinit`.
-alt/base_init_autoinit3_alt6.nit:40,2--41,9: Syntax error: `autoinit` expects method identifiers, use `noautoinit` to clear all autoinits.
+alt/base_init_autoinit3_alt6.nit:40,2--41,9: Syntax Error: `autoinit` expects method identifiers, use `noautoinit` to clear all autoinits.
alt/base_init_autoinit3_alt7.nit:41,2--9: Error: `autoinit` and `noautoinit` are incompatible.
-alt/base_init_autoinit3_alt7.nit:41,2--9: Syntax error: `autoinit` expects method identifiers, use `noautoinit` to clear all autoinits.
+alt/base_init_autoinit3_alt7.nit:41,2--9: Syntax Error: `autoinit` expects method identifiers, use `noautoinit` to clear all autoinits.
-alt/base_init_autoinit_alt1.nit:53,20--27: Error: `autoinit` cannot be set on redefinitions
+alt/base_init_autoinit_alt1.nit:53,20--27: Error: `autoinit` cannot be set on redefinitions.
-base_init_inherit3.nit:85,12--14: Error: No property Q::foo is inherited. Remove the redef keyword to define a new property.
+base_init_inherit3.nit:85,12--14: Error: no property `Q::foo` is inherited. Remove the `redef` keyword to define a new property.
-base_init_inherit4.nit:84,2--9: Error: Method 'cb' doesn't exists in Q.
+base_init_inherit4.nit:84,8--9: Error: method `cb` does not exists in `Q`.
-alt/base_init_linext2_alt1.nit:100,1--5: Error: No super method to call for initd.
+alt/base_init_linext2_alt1.nit:100,1--5: Error: no super method to call for `initd`.
-alt/base_init_noinit_alt4.nit:30,3--10: Error: Incorrect number of parameters. Got 1, expected 0. Signature is
+alt/base_init_noinit_alt4.nit:30,3--5: Error: expected 0 argument(s) for `init`; got 1. See introduction at `standard::Object::init`.
-alt/base_init_noinit_alt5.nit:26,23--28: Error: `noautoinit` attributes cannot have an initial value
+alt/base_init_noinit_alt5.nit:26,23--28: Error: `noautoinit` attributes cannot have an initial value.
-alt/base_init_nosuper_alt2.nit:27,13--19: Error: nosuper only in `init`
+alt/base_init_nosuper_alt2.nit:27,13--19: Error: `nosuper` only allowed in `init`.
-alt/base_init_nosuper_alt3.nit:24,3--7: Error: method is annotated nosuper but a constructor call is present
+alt/base_init_nosuper_alt3.nit:24,3--7: Error: method is annotated `nosuper` but a super-constructor call is present.
-alt/base_init_simple_alt1.nit:15,13--17: Error: No property B::init3 is inherited. Remove the redef keyword to define a new property.
+alt/base_init_simple_alt1.nit:15,13--17: Error: no property `B::init3` is inherited. Remove the `redef` keyword to define a new property.
-alt/base_init_super_call2_alt1.nit:23,28--32: Error: Not enough implicit arguments to pass. Got 0, expected at least 1. Signature is (i: Int)
+alt/base_init_super_call2_alt1.nit:23,28--32: Error: not enough implicit arguments to pass. Got `0`, expected at least `1`. Signature is `(i: Int)`.
-alt/base_init_super_call2_alt2.nit:33,34--37: Type error: expected Int, got Bool
+alt/base_init_super_call2_alt2.nit:33,34--37: Type Error: expected `Int`, got `Bool`.
-alt/base_init_super_call2_alt3.nit:38,2--5: Error: Cannot do an implicit constructor call to base_init_super_call2_alt3#A#init(i: Int). Expected at least 1 arguments, got 0.
+alt/base_init_super_call2_alt3.nit:38,2--5: Error: cannot do an implicit constructor call to `base_init_super_call2_alt3#A#init(i: Int)`. Expected at least `1` arguments, got `0`.
-alt/base_init_super_call2_alt4.nit:60,3--7: Type error: expected argument #0 of type Int, got implicit argument j of type Bool. Signature is (i: Int)
+alt/base_init_super_call2_alt4.nit:60,3--7: Type Error: expected argument #0 of type `Int`, got implicit argument `j` of type `Bool`. Signature is (i: Int)
-alt/base_init_super_call2_alt5.nit:84,9: Type error: expected Int, got Bool
+alt/base_init_super_call2_alt5.nit:84,9: Type Error: expected `Int`, got `Bool`.
-alt/base_init_super_call2_alt6.nit:105,2--5: Error: Cannot do an implicit constructor call to base_init_super_call2_alt6#A#init(i: Int). Expected argument #0 of type Int, got implicit argument j of type Bool.
+alt/base_init_super_call2_alt6.nit:105,2--5: Error: cannot do an implicit constructor call to `base_init_super_call2_alt6#A#init(i: Int)`. Expected argument #0 of type `Int`, got implicit argument `j` of type `Bool`.
-alt/base_init_super_call_alt1.nit:23,28--32: Error: Not enough implicit arguments to pass. Got 0, expected at least 1. Signature is (i: Int)
+alt/base_init_super_call_alt1.nit:23,28--32: Error: not enough implicit arguments to pass. Got `0`, expected at least `1`. Signature is `(i: Int)`.
-alt/base_init_super_call_alt2.nit:33,34--37: Type error: expected Int, got Bool
+alt/base_init_super_call_alt2.nit:33,34--37: Type Error: expected `Int`, got `Bool`.
-alt/base_init_super_call_alt3.nit:38,2--5: Error: Cannot do an implicit constructor call to base_init_super_call_alt3#A#init(i: Int). Expected at least 1 arguments, got 0.
+alt/base_init_super_call_alt3.nit:38,2--5: Error: cannot do an implicit constructor call to `base_init_super_call_alt3#A#init(i: Int)`. Expected at least `1` arguments, got `0`.
-alt/base_init_super_call_alt4.nit:60,3--7: Type error: expected argument #0 of type Int, got implicit argument j of type Bool. Signature is (i: Int)
+alt/base_init_super_call_alt4.nit:60,3--7: Type Error: expected argument #0 of type `Int`, got implicit argument `j` of type `Bool`. Signature is (i: Int)
-alt/base_init_super_call_alt5.nit:84,9: Type error: expected Int, got Bool
+alt/base_init_super_call_alt5.nit:84,9: Type Error: expected `Int`, got `Bool`.
-alt/base_init_super_call_alt6.nit:105,2--5: Error: Cannot do an implicit constructor call to base_init_super_call_alt6#A#init(i: Int). Expected argument #0 of type Int, got implicit argument j of type Bool.
+alt/base_init_super_call_alt6.nit:105,2--5: Error: cannot do an implicit constructor call to `base_init_super_call_alt6#A#init(i: Int)`. Expected argument #0 of type `Int`, got implicit argument `j` of type `Bool`.
-alt/base_inline_statement_alt1.nit:24,23--25: Syntax error: unexpected keyword 'end'.
+alt/base_inline_statement_alt1.nit:24,23--25: Syntax Error: unexpected keyword 'end'.
-alt/base_inline_statement_alt2.nit:56,59--62: Syntax error: unexpected keyword 'else'.
+alt/base_inline_statement_alt2.nit:56,59--62: Syntax Error: unexpected keyword 'else'.
-alt/base_inline_statement_alt3.nit:60,1--4: Syntax error: unexpected keyword 'else'.
+alt/base_inline_statement_alt3.nit:60,1--4: Syntax Error: unexpected keyword 'else'.
-base_isa.nit:39,2--13: Warning: Expression is already a Object.
-base_isa.nit:49,2--13: Warning: Expression is already a Object.
+base_isa.nit:39,2--13: Warning: expression is already a `Object`.
+base_isa.nit:49,2--13: Warning: expression is already a `Object`.
true
true
true
-base_isa1.nit:56,9--15: Warning: Expression is already a A since it is a G.
-base_isa1.nit:58,9--15: Warning: Expression is already a B since it is a D.
+base_isa1.nit:56,9--15: Warning: expression is already a `A` since it is a `G`.
+base_isa1.nit:58,9--15: Warning: expression is already a `B` since it is a `D`.
true
-base_isa2.nit:21,10--19: Warning: Expression is already a A.
+base_isa2.nit:21,10--19: Warning: expression is already a `A`.
true
-base_isa3.nit:59,8--14: Warning: Expression is already a A since it is a B.
-base_isa3.nit:64,8--14: Warning: Expression is already a A since it is a C.
-base_isa3.nit:69,8--14: Warning: Expression is already a A since it is a D.
-base_isa3.nit:73,8--14: Warning: Expression is already a E since it is a D.
-base_isa3.nit:74,8--14: Warning: Expression is already a E.
-base_isa3.nit:75,8--14: Warning: Expression is already a E.
-base_isa3.nit:76,8--14: Warning: Expression is already a E.
-base_isa3.nit:79,8--14: Warning: Expression is already a A since it is a E.
-base_isa3.nit:84,8--14: Warning: Expression is already a A since it is a F.
-base_isa3.nit:87,8--14: Warning: Expression is already a G since it is a F.
-base_isa3.nit:91,8--14: Warning: Expression is already a A since it is a G.
+base_isa3.nit:59,8--14: Warning: expression is already a `A` since it is a `B`.
+base_isa3.nit:64,8--14: Warning: expression is already a `A` since it is a `C`.
+base_isa3.nit:69,8--14: Warning: expression is already a `A` since it is a `D`.
+base_isa3.nit:73,8--14: Warning: expression is already a `E` since it is a `D`.
+base_isa3.nit:74,8--14: Warning: expression is already a `E`.
+base_isa3.nit:75,8--14: Warning: expression is already a `E`.
+base_isa3.nit:76,8--14: Warning: expression is already a `E`.
+base_isa3.nit:79,8--14: Warning: expression is already a `A` since it is a `E`.
+base_isa3.nit:84,8--14: Warning: expression is already a `A` since it is a `F`.
+base_isa3.nit:87,8--14: Warning: expression is already a `G` since it is a `F`.
+base_isa3.nit:91,8--14: Warning: expression is already a `A` since it is a `G`.
true
-alt/base_isa_cast2_alt1.nit:35,2--10: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast2_alt1.nit:35,4--6: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast2_alt2.nit:37,1--9: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast2_alt2.nit:37,3--5: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast2_alt3.nit:39,1--9: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast2_alt3.nit:39,3--5: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast2_alt4.nit:42,2--10: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast2_alt4.nit:42,4--6: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast2_alt5.nit:52,2--10: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast2_alt5.nit:52,4--6: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast2_alt6.nit:54,1--9: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast2_alt6.nit:54,3--5: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast2_alt7.nit:57,2--10: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast2_alt7.nit:57,4--6: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast3_alt1.nit:34,2--10: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast3_alt1.nit:34,4--6: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast3_alt2.nit:36,1--9: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast3_alt2.nit:36,3--5: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast3_alt3.nit:39,2--10: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast3_alt3.nit:39,4--6: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast3_alt4.nit:43,1--9: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast3_alt4.nit:43,3--5: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast3_alt5.nit:48,2--10: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast3_alt5.nit:48,4--6: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast3_alt6.nit:50,1--9: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast3_alt6.nit:50,3--5: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast3_alt7.nit:53,2--10: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast3_alt7.nit:53,4--6: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast3_alt8.nit:57,1--9: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast3_alt8.nit:57,3--5: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast3_alt9.nit:64,2--10: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast3_alt9.nit:64,4--6: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast4_alt1.nit:40,1--8: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast4_alt1.nit:40,3--5: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast4_alt2.nit:49,1--8: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast4_alt2.nit:49,3--5: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast4_alt3.nit:58,1--8: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast4_alt3.nit:58,3--5: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast4_alt4.nit:74,1--8: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast4_alt4.nit:74,3--5: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast_alt1.nit:43,1--5: Error: Method 'bar' doesn't exists in B.
+alt/base_isa_cast_alt1.nit:43,3--5: Error: method `bar` does not exists in `B`.
-alt/base_isa_cast_alt2.nit:46,1--5: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast_alt2.nit:46,3--5: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast_alt3.nit:48,1--5: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast_alt3.nit:48,3--5: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast_alt4.nit:55,1--5: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast_alt4.nit:55,3--5: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast_alt7.nit:63,1--5: Error: Method 'foo' doesn't exists in A.
+alt/base_isa_cast_alt7.nit:63,3--5: Error: method `foo` does not exists in `A`.
-alt/base_isa_cast_self_alt1.nit:29,1--3: Error: Method or variable 'bar' unknown in B.
+alt/base_isa_cast_self_alt1.nit:29,1--3: Error: method or variable `bar` unknown in `B`.
-alt/base_isa_cast_self_alt2.nit:32,1--3: Error: Method or variable 'foo' unknown in A.
+alt/base_isa_cast_self_alt2.nit:32,1--3: Error: method or variable `foo` unknown in `A`.
-alt/base_isa_cast_self_alt3.nit:34,1--3: Error: Method or variable 'foo' unknown in A.
+alt/base_isa_cast_self_alt3.nit:34,1--3: Error: method or variable `foo` unknown in `A`.
-alt/base_isa_cast_self_alt4.nit:41,1--3: Error: Method or variable 'foo' unknown in A.
+alt/base_isa_cast_self_alt4.nit:41,1--3: Error: method or variable `foo` unknown in `A`.
-base_isa_gen1.nit:62,8--14: Warning: Expression is already a A since it is a F.
-base_isa_gen1.nit:65,8--29: Warning: Expression is already a D[Object, Object] since it is a G[Object].
-base_isa_gen1.nit:66,8--29: Warning: Expression is already a D[Object, Object] since it is a E[F].
+base_isa_gen1.nit:62,8--14: Warning: expression is already a `A` since it is a `F`.
+base_isa_gen1.nit:65,8--29: Warning: expression is already a `D[Object, Object]` since it is a `G[Object]`.
+base_isa_gen1.nit:66,8--29: Warning: expression is already a `D[Object, Object]` since it is a `E[F]`.
true
-base_isa_gen2.nit:39,8--21: Warning: Expression is already a A[Object].
-base_isa_gen2.nit:41,8--21: Warning: Expression is already a A[Object] since it is a B[Object].
-base_isa_gen2.nit:44,8--21: Warning: Expression is already a A[Object] since it is a C[Object].
-base_isa_gen2.nit:48,8--21: Warning: Expression is already a A[Object] since it is a D[Object, Object].
+base_isa_gen2.nit:39,8--21: Warning: expression is already a `A[Object]`.
+base_isa_gen2.nit:41,8--21: Warning: expression is already a `A[Object]` since it is a `B[Object]`.
+base_isa_gen2.nit:44,8--21: Warning: expression is already a `A[Object]` since it is a `C[Object]`.
+base_isa_gen2.nit:48,8--21: Warning: expression is already a `A[Object]` since it is a `D[Object, Object]`.
true
-base_isa_gen3.nit:20,37--48: Warning: Expression is already a Object.
+base_isa_gen3.nit:20,37--48: Warning: expression is already a `Object`.
true
-base_isa_gen4.nit:34,8--15: Warning: Expression is already a A since it is a B[Canard].
-base_isa_gen4.nit:36,8--22: Warning: Expression is already a B[Animal] since it is a B[Canard].
-base_isa_gen4.nit:40,8--24: Warning: Expression is already a B[B[Canard]].
-base_isa_gen4.nit:42,8--24: Warning: Expression is already a B[B[Animal]] since it is a B[B[Canard]].
+base_isa_gen4.nit:34,8--15: Warning: expression is already a `A` since it is a `B[Canard]`.
+base_isa_gen4.nit:36,8--22: Warning: expression is already a `B[Animal]` since it is a `B[Canard]`.
+base_isa_gen4.nit:40,8--24: Warning: expression is already a `B[B[Canard]]`.
+base_isa_gen4.nit:42,8--24: Warning: expression is already a `B[B[Animal]]` since it is a `B[B[Canard]]`.
true
-base_isa_gen5.nit:39,8--15: Warning: Expression is already a A since it is a B[Canard].
-base_isa_gen5.nit:41,8--22: Warning: Expression is already a B[Animal] since it is a B[Canard].
-base_isa_gen5.nit:46,8--24: Warning: Expression is already a B[B[Canard]].
-base_isa_gen5.nit:48,8--24: Warning: Expression is already a B[B[Animal]] since it is a B[B[Canard]].
+base_isa_gen5.nit:39,8--15: Warning: expression is already a `A` since it is a `B[Canard]`.
+base_isa_gen5.nit:41,8--22: Warning: expression is already a `B[Animal]` since it is a `B[Canard]`.
+base_isa_gen5.nit:46,8--24: Warning: expression is already a `B[B[Canard]]`.
+base_isa_gen5.nit:48,8--24: Warning: expression is already a `B[B[Animal]]` since it is a `B[B[Canard]]`.
true
-base_isa_gen8.nit:49,8--17: Warning: Expression is already a A[X].
-base_isa_gen8.nit:50,8--17: Warning: Expression is already a A[Y].
-base_isa_gen8.nit:51,8--17: Warning: Expression is already a A[Z].
-base_isa_gen8.nit:53,8--21: Warning: Expression is already a B[Object] since it is a B[X].
-base_isa_gen8.nit:55,8--21: Warning: Expression is already a C[X, X].
-base_isa_gen8.nit:56,8--21: Warning: Expression is already a C[X, Y].
-base_isa_gen8.nit:57,8--21: Warning: Expression is already a C[X, Z].
-base_isa_gen8.nit:59,8--22: Warning: Expression is already a D[X, Y, Z].
-base_isa_gen8.nit:60,8--28: Warning: Expression is already a E[X, Y, Z, Bool].
+base_isa_gen8.nit:49,8--17: Warning: expression is already a `A[X]`.
+base_isa_gen8.nit:50,8--17: Warning: expression is already a `A[Y]`.
+base_isa_gen8.nit:51,8--17: Warning: expression is already a `A[Z]`.
+base_isa_gen8.nit:53,8--21: Warning: expression is already a `B[Object]` since it is a `B[X]`.
+base_isa_gen8.nit:55,8--21: Warning: expression is already a `C[X, X]`.
+base_isa_gen8.nit:56,8--21: Warning: expression is already a `C[X, Y]`.
+base_isa_gen8.nit:57,8--21: Warning: expression is already a `C[X, Z]`.
+base_isa_gen8.nit:59,8--22: Warning: expression is already a `D[X, Y, Z]`.
+base_isa_gen8.nit:60,8--28: Warning: expression is already a `E[X, Y, Z, Bool]`.
true
-base_isa_nil.nit:33,2--13: Warning: Expression is already a Object.
-base_isa_nil.nit:36,2--22: Warning: Expression is already a nullable Object.
-base_isa_nil.nit:43,2--22: Warning: Expression is already a nullable Object.
+base_isa_nil.nit:33,2--13: Warning: expression is already a `Object`.
+base_isa_nil.nit:36,2--22: Warning: expression is already a `nullable Object`.
+base_isa_nil.nit:43,2--22: Warning: expression is already a `nullable Object`.
true
true
true
-base_isa_nullable1.nit:39,8--15: Warning: Expression is already a A since it is a B[Integer].
-base_isa_nullable1.nit:41,8--24: Warning: Expression is already a B[Discrete] since it is a B[Integer].
-base_isa_nullable1.nit:46,8--25: Warning: Expression is already a B[B[Integer]].
-base_isa_nullable1.nit:48,8--26: Warning: Expression is already a B[B[Discrete]] since it is a B[B[Integer]].
-base_isa_nullable1.nit:50,8--33: Warning: Expression is already a B[nullable Discrete] since it is a B[Discrete].
+base_isa_nullable1.nit:39,8--15: Warning: expression is already a `A` since it is a `B[Integer]`.
+base_isa_nullable1.nit:41,8--24: Warning: expression is already a `B[Discrete]` since it is a `B[Integer]`.
+base_isa_nullable1.nit:46,8--25: Warning: expression is already a `B[B[Integer]]`.
+base_isa_nullable1.nit:48,8--26: Warning: expression is already a `B[B[Discrete]]` since it is a `B[B[Integer]]`.
+base_isa_nullable1.nit:50,8--33: Warning: expression is already a `B[nullable Discrete]` since it is a `B[Discrete]`.
true
-base_isa_nullable2.nit:27,8--23: Warning: Expression is already a nullable A since it is a A.
-base_isa_nullable2.nit:29,8--30: Warning: Expression is already a nullable B[Object] since it is a B[Object].
-base_isa_nullable2.nit:30,8--39: Warning: Expression is already a nullable B[nullable Object] since it is a nullable B[Object].
-base_isa_nullable2.nit:33,8--30: Warning: Expression is already a C[nullable Object].
+base_isa_nullable2.nit:27,8--23: Warning: expression is already a `nullable A` since it is a `A`.
+base_isa_nullable2.nit:29,8--30: Warning: expression is already a `nullable B[Object]` since it is a `B[Object]`.
+base_isa_nullable2.nit:30,8--39: Warning: expression is already a `nullable B[nullable Object]` since it is a `nullable B[Object]`.
+base_isa_nullable2.nit:33,8--30: Warning: expression is already a `C[nullable Object]`.
true
-base_isa_vt_gen1.nit:30,10--34: Warning: Expression is already a Triple[T, U, V].
-base_isa_vt_gen1.nit:54,8--52: Warning: Expression is already a Triple[String, Int, nullable Object].
-base_isa_vt_gen1.nit:57,8--46: Warning: Expression is already a Triple[String, String, String].
-base_isa_vt_gen1.nit:60,8--48: Warning: Expression is already a Triple[String, String, B[String]].
-base_isa_vt_gen1.nit:63,8--46: Warning: Expression is already a Triple[String, String, String].
+base_isa_vt_gen1.nit:30,10--34: Warning: expression is already a `Triple[T, U, V]`.
+base_isa_vt_gen1.nit:54,8--52: Warning: expression is already a `Triple[String, Int, nullable Object]`.
+base_isa_vt_gen1.nit:57,8--46: Warning: expression is already a `Triple[String, String, String]`.
+base_isa_vt_gen1.nit:60,8--48: Warning: expression is already a `Triple[String, String, B[String]]`.
+base_isa_vt_gen1.nit:63,8--46: Warning: expression is already a `Triple[String, String, String]`.
true
-base_iterator3.nit:35,1--25: Type Error: 'for' expects method 'iterator' to return an 'Iterator' or 'MapIterator' type'.
-base_iterator3.nit:39,1--25: Type Error: 'for' expects method 'iterator' to return an 'Iterator' or 'MapIterator' type'.
-base_iterator3.nit:43,1--25: Error: Method 'iterator' doesn't exists in Test3.
-base_iterator3.nit:43,1--25: Type Error: 'for' expects a type providing 'iterator' method, got 'Test3'.
-base_iterator3.nit:46,1--48: Type Error: 'for' expects only one variable when using 'Iterator'.
-base_iterator3.nit:47,1--47: Type Error: 'for' expects two variables when using 'MapIterator'.
+base_iterator3.nit:35,1--25: Type Error: `for` expects the method `iterator` to return an `Iterator` or `MapIterator` type.
+base_iterator3.nit:39,1--25: Type Error: `for` expects the method `iterator` to return an `Iterator` or `MapIterator` type.
+base_iterator3.nit:43,1--25: Error: method `iterator` does not exists in `Test3`.
+base_iterator3.nit:43,1--25: Type Error: `for` expects a type providing an `iterator` method, got `Test3`.
+base_iterator3.nit:46,1--48: Type Error: `for` expects only one variable when using `Iterator`.
+base_iterator3.nit:47,1--47: Type Error: `for` expects two variables when using `MapIterator`.
-alt/base_label_do_alt2.nit:29,9--16: Syntax error: invalid label l3.
+alt/base_label_do_alt2.nit:29,9--16: Syntax Error: invalid label `l3`.
-alt/base_label_do_alt3.nit:30,9--16: Syntax error: invalid label l4.
+alt/base_label_do_alt3.nit:30,9--16: Syntax Error: invalid label `l4`.
-alt/base_label_do_alt6.nit:37,6--13: Syntax error: label l1 already defined.
+alt/base_label_do_alt6.nit:37,6--13: Syntax Error: label `l1` already defined.
-alt/base_label_for_alt2.nit:30,9--16: Syntax error: invalid label l3.
+alt/base_label_for_alt2.nit:30,9--16: Syntax Error: invalid label `l3`.
-alt/base_label_for_alt3.nit:31,9--16: Syntax error: invalid label l4.
+alt/base_label_for_alt3.nit:31,9--16: Syntax Error: invalid label `l4`.
-alt/base_label_for_alt6.nit:38,6--13: Syntax error: label l1 already defined.
+alt/base_label_for_alt6.nit:38,6--13: Syntax Error: label `l1` already defined.
-alt/base_label_loop_alt2.nit:34,9--16: Syntax error: invalid label l3.
+alt/base_label_loop_alt2.nit:34,9--16: Syntax Error: invalid label `l3`.
-alt/base_label_loop_alt3.nit:35,9--16: Syntax error: invalid label l4.
+alt/base_label_loop_alt3.nit:35,9--16: Syntax Error: invalid label `l4`.
-alt/base_label_loop_alt6.nit:43,6--13: Syntax error: label l1 already defined.
+alt/base_label_loop_alt6.nit:43,6--13: Syntax Error: label `l1` already defined.
-alt/base_label_while2_alt6.nit:35,6--10: Syntax error: anonymous label already defined.
+alt/base_label_while2_alt6.nit:35,6--10: Syntax Error: anonymous label already defined.
-alt/base_label_while2_alt7.nit:33,23--27: Syntax error: invalid anonymous label.
+alt/base_label_while2_alt7.nit:33,23--27: Syntax Error: invalid anonymous label.
-alt/base_label_while_alt2.nit:32,9--16: Syntax error: invalid label l3.
+alt/base_label_while_alt2.nit:32,9--16: Syntax Error: invalid label `l3`.
-alt/base_label_while_alt3.nit:33,9--16: Syntax error: invalid label l4.
+alt/base_label_while_alt3.nit:33,9--16: Syntax Error: invalid label `l4`.
-alt/base_label_while_alt6.nit:40,6--13: Syntax error: label l1 already defined.
+alt/base_label_while_alt6.nit:40,6--13: Syntax Error: label `l1` already defined.
-alt/base_meth_call_alt1.nit:36,1--6: Type error: expected expression.
+alt/base_meth_call_alt1.nit:36,1--6: Error: expected an expression.
-alt/base_meth_call_alt2.nit:37,9--14: Type error: expected expression.
+alt/base_meth_call_alt2.nit:37,9--14: Error: expected an expression.
-alt/base_meth_call_alt3.nit:39,5--10: Type error: expected expression.
+alt/base_meth_call_alt3.nit:39,5--10: Error: expected an expression.
-alt/base_meth_call_alt4.nit:41,5--11: Type error: expected expression.
+alt/base_meth_call_alt4.nit:41,5--11: Error: expected an expression.
-alt/base_new_alt1.nit:23,18: Type error: expected A, got Int
+alt/base_new_alt1.nit:23,18: Type Error: expected `A`, got `Int`.
-alt/base_new_alt2.nit:24,6: Control error: Reached end of function (a 'return' with a value was expected).
+alt/base_new_alt2.nit:24,6: Error: reached end of function; expected `return` with a value.
-alt/base_new_alt3.nit:25,18--21: Error: self cannot be used in top-level method.
+alt/base_new_alt3.nit:25,18--21: Error: `self` cannot be used in top-level method.
-alt/base_new_alt4.nit:26,23--31: Error: 'object_id' is not a top-level method, thus need a receiver.
+alt/base_new_alt4.nit:26,23--31: Error: `object_id` is not a top-level method, thus need a receiver.
-alt/base_new_alt5.nit:63,1--9: Error: Method 'i' doesn't exists in A.
+alt/base_new_alt5.nit:63,9: Error: method `i` does not exists in `A`.
-alt/base_new_alt6.nit:65,1--12: Error: Method 'i' doesn't exists in A.
+alt/base_new_alt6.nit:65,12: Error: method `i` does not exists in `A`.
-alt/base_new_alt7.nit:83,2--9: Error: Method 'n2' doesn't exists in C.
+alt/base_new_alt7.nit:83,8--9: Error: method `n2` does not exists in `C`.
-alt/base_new_alt8.nit:91,2--8: Type Error: Cannot instantiate enum Int.
+alt/base_new_alt8.nit:91,2--8: Type Error: cannot instantiate enum `Int`.
-base_no_object.nit:11,9--13: Error: Method 'init' doesn't exists in A.
+base_no_object.nit:11,9--11: Error: method `init` does not exists in `A`.
-alt/base_no_object_alt1.nit:11,9--13: Error: Method 'init' doesn't exists in A.
-alt/base_no_object_alt1.nit:13,4--12: Type Error: missing primitive class `Bool'.
+alt/base_no_object_alt1.nit:11,9--11: Error: method `init` does not exists in `A`.
alt/base_no_object_alt1.nit:13,4--12: Type Error: missing primitive class `Bool'.
--- /dev/null
+base_notnull.nit:25,6: Warning: expression is not null, since it is a `not null E`.
+base_notnull.nit:28,6: Warning: expression is not null, since it is a `not null E`.
+base_notnull.nit:31,7: Warning: expression is not null, since it is a `not null E`.
+base_notnull.nit:32,7: Warning: expression is not null, since it is a `not null E`.
+base_notnull.nit:33,7: Warning: expression is not null, since it is a `not null E`.
+base_notnull.nit:34,7: Warning: expression is not null, since it is a `not null E`.
+base_notnull.nit:35,7: Warning: expression is not null, since it is a `not null E`.
+base_notnull.nit:36,7: Warning: expression is not null, since it is a `not null E`.
+1
+2
+1
+2
+1
+2
+1
+2
+1
+2
--- /dev/null
+alt/base_notnull_1alt1.nit:25,6: Warning: expression is not null, since it is a `not null E`.
+alt/base_notnull_1alt1.nit:28,6: Warning: expression is not null, since it is a `not null E`.
+alt/base_notnull_1alt1.nit:31,7: Warning: expression is not null, since it is a `not null E`.
+alt/base_notnull_1alt1.nit:32,7: Warning: expression is not null, since it is a `not null E`.
+alt/base_notnull_1alt1.nit:33,7: Warning: expression is not null, since it is a `not null E`.
+alt/base_notnull_1alt1.nit:34,7: Warning: expression is not null, since it is a `not null E`.
+alt/base_notnull_1alt1.nit:35,7: Warning: expression is not null, since it is a `not null E`.
+alt/base_notnull_1alt1.nit:36,7: Warning: expression is not null, since it is a `not null E`.
+1
+2
+1
+2
+1
+2
+1
+2
+1
+2
--- /dev/null
+alt/base_notnull_1alt1_alt1.nit:23,7: Type Error: expected `Object`, got `nullable E: nullable Object`.
+alt/base_notnull_1alt1_alt1.nit:24,7: Type Error: expected `Object`, got `nullable E: nullable Object`.
+alt/base_notnull_1alt1_alt1.nit:27,12: Type Error: expected `Object`, got `null`.
+alt/base_notnull_1alt1_alt1.nit:30,12: Type Error: expected `Object`, got `null`.
+alt/base_notnull_1alt1_alt1.nit:35,7--17: Type Error: expected `Object`, got `nullable E: nullable Object`.
+alt/base_notnull_1alt1_alt1.nit:36,7--17: Type Error: expected `Object`, got `nullable E: nullable Object`.
--- /dev/null
+alt/base_notnull_1alt1_alt2.nit:25,6: Warning: expression is not null, since it is a `not null E`.
+alt/base_notnull_1alt1_alt2.nit:28,6: Warning: expression is not null, since it is a `not null E`.
+alt/base_notnull_1alt1_alt2.nit:31,7: Warning: expression is not null, since it is a `not null E`.
+alt/base_notnull_1alt1_alt2.nit:32,7: Warning: expression is not null, since it is a `not null E`.
+alt/base_notnull_1alt1_alt2.nit:33,7: Warning: expression is not null, since it is a `not null E`.
+alt/base_notnull_1alt1_alt2.nit:34,7: Warning: expression is not null, since it is a `not null E`.
+alt/base_notnull_1alt1_alt2.nit:35,7: Warning: expression is not null, since it is a `not null E`.
+alt/base_notnull_1alt1_alt2.nit:36,7: Warning: expression is not null, since it is a `not null E`.
+1
+2
+1
+2
+1
+2
+1
+2
+1
+2
--- /dev/null
+alt/base_notnull_1alt1_alt3.nit:23,7: Type Error: expected `Object`, got `null`.
+alt/base_notnull_1alt1_alt3.nit:24,7: Type Error: expected `Object`, got `null`.
+alt/base_notnull_1alt1_alt3.nit:27,12: Type Error: expected `Object`, got `null`.
+alt/base_notnull_1alt1_alt3.nit:30,12: Type Error: expected `Object`, got `null`.
+alt/base_notnull_1alt1_alt3.nit:31,7--20: Type Error: `as(not null)` on `null`.
+alt/base_notnull_1alt1_alt3.nit:32,7--20: Type Error: `as(not null)` on `null`.
+alt/base_notnull_1alt1_alt3.nit:33,7: Type Error: `or else` on `null`.
+alt/base_notnull_1alt1_alt3.nit:33,7--17: Type Error: expected `Object`, got `nullable Int`.
+alt/base_notnull_1alt1_alt3.nit:34,7: Type Error: `or else` on `null`.
+alt/base_notnull_1alt1_alt3.nit:34,7--17: Type Error: expected `Object`, got `nullable Int`.
+alt/base_notnull_1alt1_alt3.nit:35,7: Type Error: `or else` on `null`.
+alt/base_notnull_1alt1_alt3.nit:35,7--17: Type Error: expected `Object`, got `null`.
+alt/base_notnull_1alt1_alt3.nit:36,7: Type Error: `or else` on `null`.
+alt/base_notnull_1alt1_alt3.nit:36,7--17: Type Error: expected `Object`, got `null`.
--- /dev/null
+alt/base_notnull_1alt1_alt4.nit:23,7: Type Error: expected `Object`, got `nullable E: nullable Object`.
+alt/base_notnull_1alt1_alt4.nit:24,7: Type Error: expected `Object`, got `nullable E: nullable Object`.
+alt/base_notnull_1alt1_alt4.nit:27,12: Type Error: expected `Object`, got `null`.
+alt/base_notnull_1alt1_alt4.nit:30,12: Type Error: expected `Object`, got `null`.
+alt/base_notnull_1alt1_alt4.nit:35,7--17: Type Error: expected `Object`, got `nullable E: nullable Object`.
+alt/base_notnull_1alt1_alt4.nit:36,7--17: Type Error: expected `Object`, got `nullable E: nullable Object`.
--- /dev/null
+alt/base_notnull_alt1.nit:23,7: Type Error: expected `Object`, got `E: nullable Object`.
+alt/base_notnull_alt1.nit:24,7: Type Error: expected `Object`, got `E: nullable Object`.
+alt/base_notnull_alt1.nit:27,12: Type Error: expected `Object`, got `null`.
+alt/base_notnull_alt1.nit:30,12: Type Error: expected `Object`, got `null`.
+alt/base_notnull_alt1.nit:35,7--17: Type Error: expected `Object`, got `nullable E: nullable Object`.
+alt/base_notnull_alt1.nit:36,7--17: Type Error: expected `Object`, got `nullable E: nullable Object`.
--- /dev/null
+alt/base_notnull_alt2.nit:21,10: Warning: expression is not null, since it is a `E: Object`.
+alt/base_notnull_alt2.nit:22,10: Warning: expression is not null, since it is a `E: Object`.
+alt/base_notnull_alt2.nit:25,6: Warning: expression is not null, since it is a `E: Object`.
+alt/base_notnull_alt2.nit:28,6: Warning: expression is not null, since it is a `E: Object`.
+alt/base_notnull_alt2.nit:31,7: Warning: expression is not null, since it is a `E: Object`.
+alt/base_notnull_alt2.nit:32,7: Warning: expression is not null, since it is a `E: Object`.
+alt/base_notnull_alt2.nit:33,7: Warning: expression is not null, since it is a `E: Object`.
+alt/base_notnull_alt2.nit:34,7: Warning: expression is not null, since it is a `E: Object`.
+alt/base_notnull_alt2.nit:35,7: Warning: expression is not null, since it is a `E: Object`.
+alt/base_notnull_alt2.nit:36,7: Warning: expression is not null, since it is a `E: Object`.
+1
+2
+1
+2
+1
+2
+1
+2
+1
+2
--- /dev/null
+alt/base_notnull_alt3.nit:23,7: Type Error: expected `Object`, got `null`.
+alt/base_notnull_alt3.nit:24,7: Type Error: expected `Object`, got `null`.
+alt/base_notnull_alt3.nit:27,12: Type Error: expected `Object`, got `null`.
+alt/base_notnull_alt3.nit:30,12: Type Error: expected `Object`, got `null`.
+alt/base_notnull_alt3.nit:31,7--20: Type Error: `as(not null)` on `null`.
+alt/base_notnull_alt3.nit:32,7--20: Type Error: `as(not null)` on `null`.
+alt/base_notnull_alt3.nit:33,7: Type Error: `or else` on `null`.
+alt/base_notnull_alt3.nit:33,7--17: Type Error: expected `Object`, got `nullable Int`.
+alt/base_notnull_alt3.nit:34,7: Type Error: `or else` on `null`.
+alt/base_notnull_alt3.nit:34,7--17: Type Error: expected `Object`, got `nullable Int`.
+alt/base_notnull_alt3.nit:35,7: Type Error: `or else` on `null`.
+alt/base_notnull_alt3.nit:35,7--17: Type Error: expected `Object`, got `null`.
+alt/base_notnull_alt3.nit:36,7: Type Error: `or else` on `null`.
+alt/base_notnull_alt3.nit:36,7--17: Type Error: expected `Object`, got `null`.
--- /dev/null
+alt/base_notnull_alt4.nit:23,7: Type Error: expected `Object`, got `E: nullable Object`.
+alt/base_notnull_alt4.nit:24,7: Type Error: expected `Object`, got `E: nullable Object`.
+alt/base_notnull_alt4.nit:27,12: Type Error: expected `Object`, got `null`.
+alt/base_notnull_alt4.nit:30,12: Type Error: expected `Object`, got `null`.
+alt/base_notnull_alt4.nit:35,7--17: Type Error: expected `Object`, got `nullable E: nullable Object`.
+alt/base_notnull_alt4.nit:36,7--17: Type Error: expected `Object`, got `nullable E: nullable Object`.
--- /dev/null
+Array[Int]
+156
+Range[Int]
+12345
--- /dev/null
+alt/base_notnull_lit_alt1.nit:27,14: Type Error: expected `Discrete`, got `E: nullable Discrete`.
--- /dev/null
+Runtime error: Assert failed (alt/base_notnull_lit_alt2.nit:19)
-base_null.nit:28,2--13: Warning: expression is not null, since it is a `null`.
-base_null.nit:42,2--13: Warning: expression is not null, since it is a `null`.
false
false
true
-alt/base_nullable_alt1.nit:36,13--14: Type error: expected A, got nullable A
+alt/base_nullable_alt1.nit:36,13--14: Type Error: expected `A`, got `nullable A`.
-alt/base_nullable_alt10.nit:55,18--21: Type error: expected Object, got null
+alt/base_nullable_alt10.nit:55,18--21: Type Error: expected `Object`, got `null`.
-alt/base_nullable_alt2.nit:37,13: Type error: expected A, got Object
+alt/base_nullable_alt2.nit:37,13: Type Error: expected `A`, got `Object`.
-alt/base_nullable_alt3.nit:38,13--14: Type error: expected A, got nullable Object
+alt/base_nullable_alt3.nit:38,13--14: Type Error: expected `A`, got `nullable Object`.
-alt/base_nullable_alt4.nit:41,23: Type error: expected nullable A, got Object
+alt/base_nullable_alt4.nit:41,23: Type Error: expected `nullable A`, got `Object`.
-alt/base_nullable_alt5.nit:42,23--24: Type error: expected nullable A, got nullable Object
+alt/base_nullable_alt5.nit:42,23--24: Type Error: expected `nullable A`, got `nullable Object`.
-alt/base_nullable_alt6.nit:44,18--19: Type error: expected Object, got nullable A
+alt/base_nullable_alt6.nit:44,18--19: Type Error: expected `Object`, got `nullable A`.
-alt/base_nullable_alt7.nit:46,18--19: Type error: expected Object, got nullable Object
+alt/base_nullable_alt7.nit:46,18--19: Type Error: expected `Object`, got `nullable Object`.
-alt/base_nullable_alt8.nit:51,23--39: Type error: cannot instantiate the nullable type nullable A.
+alt/base_nullable_alt8.nit:51,23--39: Type Error: cannot instantiate the nullable type `nullable A`.
-alt/base_nullable_alt9.nit:53,13--16: Type error: expected A, got null
+alt/base_nullable_alt9.nit:53,13--16: Type Error: expected `A`, got `null`.
--- /dev/null
+0
+1
+2
+3
+4
+5
+6
+15
+16
+14
+19
+18
+17
+16
+7
+9
+10
+11
+12
+13
+
+2
+6
+3
+4
+5
+16
+14
+15
+16
+17
+18
-alt/base_orelse_alt1.nit:41,7: Type error: expected A, got nullable A
+alt/base_orelse_alt1.nit:41,7: Type Error: expected `A`, got `nullable A`.
-alt/base_orelse_alt2.nit:47,7: Type error: expected A, got nullable A
+alt/base_orelse_alt2.nit:47,7: Type Error: expected `A`, got `nullable A`.
-alt/base_prot2_alt1.nit:22,12--14: Error: No property B::pri is inherited. Remove the redef keyword to define a new property.
+alt/base_prot2_alt1.nit:22,12--14: Error: no property `B::pri` is inherited. Remove the `redef` keyword to define a new property.
-alt/base_prot2_alt2.nit:26,3--5: Error: Method or variable 'pri' unknown in B.
+alt/base_prot2_alt2.nit:26,3--5: Error: method or variable `pri` unknown in `B`.
-alt/base_prot2_alt3.nit:35,3--7: Error: Method 'pro' is protected and can only acceded by self.
+alt/base_prot2_alt3.nit:35,5--7: Error: method `pro` is protected and can only accessed by `self`.
-alt/base_prot2_alt4.nit:36,3--7: Error: Method 'pri' doesn't exists in B.
+alt/base_prot2_alt4.nit:36,5--7: Error: method `pri` does not exists in `B`.
-alt/base_prot3_alt1.nit:22,12--14: Error: No property C::pri is inherited. Remove the redef keyword to define a new property.
+alt/base_prot3_alt1.nit:22,12--14: Error: no property `C::pri` is inherited. Remove the `redef` keyword to define a new property.
-alt/base_prot3_alt2.nit:26,3--5: Error: Method or variable 'pri' unknown in C.
+alt/base_prot3_alt2.nit:26,3--5: Error: method or variable `pri` unknown in `C`.
-alt/base_prot3_alt3.nit:35,3--7: Error: Method 'pro' doesn't exists in C.
+alt/base_prot3_alt3.nit:35,5--7: Error: method `pro` does not exists in `C`.
-alt/base_prot3_alt4.nit:36,3--7: Error: Method 'pri' doesn't exists in C.
+alt/base_prot3_alt4.nit:36,5--7: Error: method `pri` does not exists in `C`.
-alt/base_prot3_alt5.nit:20,12--14: Error: No property C::pub is inherited. Remove the redef keyword to define a new property.
+alt/base_prot3_alt5.nit:20,12--14: Error: no property `C::pub` is inherited. Remove the `redef` keyword to define a new property.
-alt/base_prot3_alt6.nit:21,12--14: Error: No property C::pro is inherited. Remove the redef keyword to define a new property.
+alt/base_prot3_alt6.nit:21,12--14: Error: no property `C::pro` is inherited. Remove the `redef` keyword to define a new property.
-alt/base_prot3_alt7.nit:24,3--5: Error: Method or variable 'pub' unknown in C.
+alt/base_prot3_alt7.nit:24,3--5: Error: method or variable `pub` unknown in `C`.
-alt/base_prot3_alt8.nit:25,3--5: Error: Method or variable 'pro' unknown in C.
+alt/base_prot3_alt8.nit:25,3--5: Error: method or variable `pro` unknown in `C`.
-alt/base_prot3_alt9.nit:34,3--7: Error: Method 'pub' doesn't exists in C.
+alt/base_prot3_alt9.nit:34,5--7: Error: method `pub` does not exists in `C`.
-alt/base_prot_sig2_alt1.nit:19,14: Error: The public property `pubA` cannot contain the type `A` from the private module `base_prot_sig`
+alt/base_prot_sig2_alt1.nit:19,14: Error: the public property `pubA` cannot contain the type `A` from the private module `base_prot_sig`.
-alt/base_prot_sig2_alt2.nit:20,24: Error: The protected property `proA` cannot contain the type `A` from the private module `base_prot_sig`
+alt/base_prot_sig2_alt2.nit:20,24: Error: the protected property `proA` cannot contain the type `A` from the private module `base_prot_sig`.
-alt/base_prot_sig2_alt3.nit:23,13--22: Error: The public property `vpubA` cannot contain the type `A` from the private module `base_prot_sig`
-alt/base_prot_sig2_alt3.nit:23,13--22: Error: The public property `vpubA=` cannot contain the type `A` from the private module `base_prot_sig`
+alt/base_prot_sig2_alt3.nit:23,13--22: Error: the public property `vpubA` cannot contain the type `A` from the private module `base_prot_sig`.
+alt/base_prot_sig2_alt3.nit:23,13--22: Error: the public property `vpubA=` cannot contain the type `A` from the private module `base_prot_sig`.
-alt/base_prot_sig2_alt4.nit:24,23--32: Error: The protected property `vproA` cannot contain the type `A` from the private module `base_prot_sig`
-alt/base_prot_sig2_alt4.nit:24,23--32: Error: The protected property `vproA=` cannot contain the type `A` from the private module `base_prot_sig`
+alt/base_prot_sig2_alt4.nit:24,23--32: Error: the protected property `vproA` cannot contain the type `A` from the private module `base_prot_sig`.
+alt/base_prot_sig2_alt4.nit:24,23--32: Error: the protected property `vproA=` cannot contain the type `A` from the private module `base_prot_sig`.
-alt/base_prot_sig2_alt5.nit:27,6--11: Error: The public property `vpubA2` cannot contain the type `A` from the private module `base_prot_sig`
-alt/base_prot_sig2_alt5.nit:27,6--11: Error: The public property `vpubA2=` cannot contain the type `A` from the private module `base_prot_sig`
+alt/base_prot_sig2_alt5.nit:27,6--11: Error: the public property `vpubA2` cannot contain the type `A` from the private module `base_prot_sig`.
+alt/base_prot_sig2_alt5.nit:27,6--11: Error: the public property `vpubA2=` cannot contain the type `A` from the private module `base_prot_sig`.
-alt/base_prot_sig2_alt6.nit:28,16--21: Error: The protected property `vproA2` cannot contain the type `A` from the private module `base_prot_sig`
-alt/base_prot_sig2_alt6.nit:28,16--21: Error: The protected property `vproA2=` cannot contain the type `A` from the private module `base_prot_sig`
+alt/base_prot_sig2_alt6.nit:28,16--21: Error: the protected property `vproA2` cannot contain the type `A` from the private module `base_prot_sig`.
+alt/base_prot_sig2_alt6.nit:28,16--21: Error: the protected property `vproA2=` cannot contain the type `A` from the private module `base_prot_sig`.
-alt/base_prot_sig_alt1.nit:29,14: Error: The public property `pubB` cannot contain the private type `B`
+alt/base_prot_sig_alt1.nit:29,14: Error: the public property `pubB` cannot contain the private type `B`.
-alt/base_prot_sig_alt2.nit:30,24: Error: The protected property `proB` cannot contain the private type `B`
+alt/base_prot_sig_alt2.nit:30,24: Error: the protected property `proB` cannot contain the private type `B`.
-alt/base_prot_sig_alt3.nit:33,13--22: Error: The public property `vpubB` cannot contain the private type `B`
-alt/base_prot_sig_alt3.nit:33,13--22: Error: The public property `vpubB=` cannot contain the private type `B`
+alt/base_prot_sig_alt3.nit:33,13--22: Error: the public property `vpubB` cannot contain the private type `B`.
+alt/base_prot_sig_alt3.nit:33,13--22: Error: the public property `vpubB=` cannot contain the private type `B`.
-alt/base_prot_sig_alt4.nit:34,23--32: Error: The protected property `vproB` cannot contain the private type `B`
-alt/base_prot_sig_alt4.nit:34,23--32: Error: The protected property `vproB=` cannot contain the private type `B`
+alt/base_prot_sig_alt4.nit:34,23--32: Error: the protected property `vproB` cannot contain the private type `B`.
+alt/base_prot_sig_alt4.nit:34,23--32: Error: the protected property `vproB=` cannot contain the private type `B`.
-alt/base_prot_sig_alt5.nit:37,6--11: Error: The public property `vpubB2` cannot contain the private type `B`
-alt/base_prot_sig_alt5.nit:37,6--11: Error: The public property `vpubB2=` cannot contain the private type `B`
+alt/base_prot_sig_alt5.nit:37,6--11: Error: the public property `vpubB2` cannot contain the private type `B`.
+alt/base_prot_sig_alt5.nit:37,6--11: Error: the public property `vpubB2=` cannot contain the private type `B`.
-alt/base_prot_sig_alt6.nit:38,16--21: Error: The protected property `vproB2` cannot contain the private type `B`
-alt/base_prot_sig_alt6.nit:38,16--21: Error: The protected property `vproB2=` cannot contain the private type `B`
+alt/base_prot_sig_alt6.nit:38,16--21: Error: the protected property `vproB2` cannot contain the private type `B`.
+alt/base_prot_sig_alt6.nit:38,16--21: Error: the protected property `vproB2=` cannot contain the private type `B`.
-alt/base_prot_sig_alt7.nit:46,2--10: Error: The only legal visibility for properties in a private class is private.
-alt/base_prot_sig_alt7.nit:50,2--10: Error: The only legal visibility for properties in a private class is private.
-alt/base_prot_sig_alt7.nit:50,37--45: Error: The only legal visibility for properties in a private class is private.
-alt/base_prot_sig_alt7.nit:54,2--10: Error: The only legal visibility for properties in a private class is private.
-alt/base_prot_sig_alt7.nit:54,34--42: Error: The only legal visibility for properties in a private class is private.
-alt/base_prot_sig_alt7.nit:58,2--10: Error: The only legal visibility for properties in a private class is private.
-alt/base_prot_sig_alt7.nit:62,2--10: Error: The only legal visibility for properties in a private class is private.
-alt/base_prot_sig_alt7.nit:62,37--45: Error: The only legal visibility for properties in a private class is private.
-alt/base_prot_sig_alt7.nit:66,2--10: Error: The only legal visibility for properties in a private class is private.
-alt/base_prot_sig_alt7.nit:66,34--42: Error: The only legal visibility for properties in a private class is private.
+alt/base_prot_sig_alt7.nit:46,2--10: Error: `private` is the only legal visibility for properties in a private class.
+alt/base_prot_sig_alt7.nit:50,2--10: Error: `private` is the only legal visibility for properties in a private class.
+alt/base_prot_sig_alt7.nit:50,37--45: Error: `private` is the only legal visibility for properties in a private class.
+alt/base_prot_sig_alt7.nit:54,2--10: Error: `private` is the only legal visibility for properties in a private class.
+alt/base_prot_sig_alt7.nit:54,34--42: Error: `private` is the only legal visibility for properties in a private class.
+alt/base_prot_sig_alt7.nit:58,2--10: Error: `private` is the only legal visibility for properties in a private class.
+alt/base_prot_sig_alt7.nit:62,2--10: Error: `private` is the only legal visibility for properties in a private class.
+alt/base_prot_sig_alt7.nit:62,37--45: Error: `private` is the only legal visibility for properties in a private class.
+alt/base_prot_sig_alt7.nit:66,2--10: Error: `private` is the only legal visibility for properties in a private class.
+alt/base_prot_sig_alt7.nit:66,34--42: Error: `private` is the only legal visibility for properties in a private class.
-alt/base_prot_sig_vt_alt1.nit:22,13: Error: The public property `PUBB` cannot contain the private type `B`
-alt/base_prot_sig_vt_alt1.nit:42,17--20: Type error: class PROB not found in module base_prot_sig_vt_alt1.
-alt/base_prot_sig_vt_alt1.nit:43,27--30: Type error: class PROB not found in module base_prot_sig_vt_alt1.
-alt/base_prot_sig_vt_alt1.nit:44,25--28: Type error: class PROB not found in module base_prot_sig_vt_alt1.
+alt/base_prot_sig_vt_alt1.nit:22,13: Error: the public property `PUBB` cannot contain the private type `B`.
+alt/base_prot_sig_vt_alt1.nit:42,17--20: Error: class `PROB` not found in module `base_prot_sig_vt_alt1`.
+alt/base_prot_sig_vt_alt1.nit:43,27--30: Error: class `PROB` not found in module `base_prot_sig_vt_alt1`.
+alt/base_prot_sig_vt_alt1.nit:44,25--28: Error: class `PROB` not found in module `base_prot_sig_vt_alt1`.
-alt/base_prot_sig_vt_alt2.nit:23,23: Error: The protected property `PROB` cannot contain the private type `B`
+alt/base_prot_sig_vt_alt2.nit:23,23: Error: the protected property `PROB` cannot contain the private type `B`.
-alt/base_prot_sig_vt_alt3.nit:30,17--20: Error: The public property `pubPROA` cannot contain the protected type `PROA`
+alt/base_prot_sig_vt_alt3.nit:30,17--20: Error: the public property `pubPROA` cannot contain the protected type `PROA`.
-alt/base_prot_sig_vt_alt4.nit:34,17--20: Error: The public property `pubPRIA` cannot contain the private type `PRIA`
+alt/base_prot_sig_vt_alt4.nit:34,17--20: Error: the public property `pubPRIA` cannot contain the private type `PRIA`.
-alt/base_prot_sig_vt_alt5.nit:35,27--30: Error: The protected property `proPRIA` cannot contain the private type `PRIA`
+alt/base_prot_sig_vt_alt5.nit:35,27--30: Error: the protected property `proPRIA` cannot contain the private type `PRIA`.
-alt/base_prot_sig_vt_alt6.nit:46,17--20: Error: The public property `pubPRIB` cannot contain the private type `PRIB`
+alt/base_prot_sig_vt_alt6.nit:46,17--20: Error: the public property `pubPRIB` cannot contain the private type `PRIB`.
-alt/base_prot_sig_vt_alt7.nit:47,27--30: Error: The protected property `proPRIB` cannot contain the private type `PRIB`
+alt/base_prot_sig_vt_alt7.nit:47,27--30: Error: the protected property `proPRIB` cannot contain the private type `PRIB`.
-alt/base_prot_sig_vt_alt8.nit:53,2--10: Error: The only legal visibility for properties in a private class is private.
-alt/base_prot_sig_vt_alt8.nit:57,2--10: Error: The only legal visibility for properties in a private class is private.
+alt/base_prot_sig_vt_alt8.nit:53,2--10: Error: `private` is the only legal visibility for properties in a private class.
+alt/base_prot_sig_vt_alt8.nit:57,2--10: Error: `private` is the only legal visibility for properties in a private class.
-alt/base_range_alt1.nit:26,10--14: Type error: expected Discrete, got A
-alt/base_range_alt1.nit:26,17--21: Type error: expected Discrete, got A
+alt/base_range_alt1.nit:26,10--14: Type Error: expected `Discrete`, got `A`.
+alt/base_range_alt1.nit:26,17--21: Type Error: expected `Discrete`, got `A`.
-alt/base_range_alt2.nit:28,9--16: Type Error: Cannot create range: Int vs Char
+alt/base_range_alt2.nit:28,9--16: Type Error: cannot create range: `Int` vs `Char`.
-alt/base_self_type_alt1.nit:25,25--29: Type error: expected SELF, got X
+alt/base_self_type_alt1.nit:25,25--29: Type Error: expected `SELF`, got `X`.
-alt/base_self_type_alt3.nit:50,7: Type error: expected Y, got X
+alt/base_self_type_alt3.nit:50,7: Type Error: expected `Y`, got `X`.
-alt/base_sig_inh_alt1.nit:42,24--30: Error: Method 'first' doesn't exists in Int.
+alt/base_sig_inh_alt1.nit:42,26--30: Error: method `first` does not exists in `Int`.
-base_upcast2.nit:26,10: Type error: class T not found in module base_upcast2.
+base_upcast2.nit:26,10: Error: class `T` not found in module `base_upcast2`.
-alt/base_upcast2_1alt1_alt10.nit:36,21: Type error: expected C, got T
+alt/base_upcast2_1alt1_alt10.nit:36,21: Type Error: expected `C`, got `T: A[Int]`.
-alt/base_upcast2_1alt1_alt2.nit:28,21--22: Type error: expected T, got A[Bool]
+alt/base_upcast2_1alt1_alt2.nit:28,21--22: Type Error: expected `T`, got `A[Bool]`.
-alt/base_upcast2_1alt1_alt7.nit:33,22: Type error: expected A[Bool], got T
+alt/base_upcast2_1alt1_alt7.nit:33,22: Type Error: expected `A[Bool]`, got `T: A[Int]`.
-alt/base_upcast2_1alt1_alt8.nit:34,22: Type error: expected B[Int], got T
+alt/base_upcast2_1alt1_alt8.nit:34,22: Type Error: expected `B[Int]`, got `T: A[Int]`.
-alt/base_upcast2_1alt1_alt9.nit:35,22: Type error: expected B[Bool], got T
+alt/base_upcast2_1alt1_alt9.nit:35,22: Type Error: expected `B[Bool]`, got `T: A[Int]`.
-alt/base_upcast2_1alt2_alt1.nit:27,21--22: Type error: expected T, got A[Int]
+alt/base_upcast2_1alt2_alt1.nit:27,21--22: Type Error: expected `T`, got `A[Int]`.
-alt/base_upcast2_1alt2_alt10.nit:36,21: Type error: expected C, got T
+alt/base_upcast2_1alt2_alt10.nit:36,21: Type Error: expected `C`, got `T: A[Bool]`.
-alt/base_upcast2_1alt2_alt3.nit:29,21--22: Type error: expected T, got B[Int]
+alt/base_upcast2_1alt2_alt3.nit:29,21--22: Type Error: expected `T`, got `B[Int]`.
-alt/base_upcast2_1alt2_alt4.nit:30,21--22: Type error: expected T, got B[Bool]
+alt/base_upcast2_1alt2_alt4.nit:30,21--22: Type Error: expected `T`, got `B[Bool]`.
-alt/base_upcast2_1alt2_alt5.nit:31,21: Type error: expected T, got C
+alt/base_upcast2_1alt2_alt5.nit:31,21: Type Error: expected `T`, got `C`.
-alt/base_upcast2_1alt2_alt6.nit:32,22: Type error: expected A[Int], got T
+alt/base_upcast2_1alt2_alt6.nit:32,22: Type Error: expected `A[Int]`, got `T: A[Bool]`.
-alt/base_upcast2_1alt2_alt8.nit:34,22: Type error: expected B[Int], got T
+alt/base_upcast2_1alt2_alt8.nit:34,22: Type Error: expected `B[Int]`, got `T: A[Bool]`.
-alt/base_upcast2_1alt2_alt9.nit:35,22: Type error: expected B[Bool], got T
+alt/base_upcast2_1alt2_alt9.nit:35,22: Type Error: expected `B[Bool]`, got `T: A[Bool]`.
-alt/base_upcast2_1alt3_alt1.nit:27,21--22: Type error: expected T, got A[Int]
+alt/base_upcast2_1alt3_alt1.nit:27,21--22: Type Error: expected `T`, got `A[Int]`.
-alt/base_upcast2_1alt3_alt10.nit:36,21: Type error: expected C, got T
+alt/base_upcast2_1alt3_alt10.nit:36,21: Type Error: expected `C`, got `T: B[Int]`.
-alt/base_upcast2_1alt3_alt2.nit:28,21--22: Type error: expected T, got A[Bool]
+alt/base_upcast2_1alt3_alt2.nit:28,21--22: Type Error: expected `T`, got `A[Bool]`.
-alt/base_upcast2_1alt3_alt4.nit:30,21--22: Type error: expected T, got B[Bool]
+alt/base_upcast2_1alt3_alt4.nit:30,21--22: Type Error: expected `T`, got `B[Bool]`.
-alt/base_upcast2_1alt3_alt5.nit:31,21: Type error: expected T, got C
+alt/base_upcast2_1alt3_alt5.nit:31,21: Type Error: expected `T`, got `C`.
-alt/base_upcast2_1alt3_alt7.nit:33,22: Type error: expected A[Bool], got T
+alt/base_upcast2_1alt3_alt7.nit:33,22: Type Error: expected `A[Bool]`, got `T: B[Int]`.
-alt/base_upcast2_1alt3_alt9.nit:35,22: Type error: expected B[Bool], got T
+alt/base_upcast2_1alt3_alt9.nit:35,22: Type Error: expected `B[Bool]`, got `T: B[Int]`.
-alt/base_upcast2_1alt4_alt1.nit:27,21--22: Type error: expected T, got A[Int]
+alt/base_upcast2_1alt4_alt1.nit:27,21--22: Type Error: expected `T`, got `A[Int]`.
-alt/base_upcast2_1alt4_alt10.nit:36,21: Type error: expected C, got T
+alt/base_upcast2_1alt4_alt10.nit:36,21: Type Error: expected `C`, got `T: B[Bool]`.
-alt/base_upcast2_1alt4_alt2.nit:28,21--22: Type error: expected T, got A[Bool]
+alt/base_upcast2_1alt4_alt2.nit:28,21--22: Type Error: expected `T`, got `A[Bool]`.
-alt/base_upcast2_1alt4_alt3.nit:29,21--22: Type error: expected T, got B[Int]
+alt/base_upcast2_1alt4_alt3.nit:29,21--22: Type Error: expected `T`, got `B[Int]`.
-alt/base_upcast2_1alt4_alt7.nit:33,22: Type error: expected A[Bool], got T
+alt/base_upcast2_1alt4_alt7.nit:33,22: Type Error: expected `A[Bool]`, got `T: B[Bool]`.
-alt/base_upcast2_1alt4_alt8.nit:34,22: Type error: expected B[Int], got T
+alt/base_upcast2_1alt4_alt8.nit:34,22: Type Error: expected `B[Int]`, got `T: B[Bool]`.
-alt/base_upcast2_1alt5_alt1.nit:27,21--22: Type error: expected T, got A[Int]
+alt/base_upcast2_1alt5_alt1.nit:27,21--22: Type Error: expected `T`, got `A[Int]`.
-alt/base_upcast2_1alt5_alt2.nit:28,21--22: Type error: expected T, got A[Bool]
+alt/base_upcast2_1alt5_alt2.nit:28,21--22: Type Error: expected `T`, got `A[Bool]`.
-alt/base_upcast2_1alt5_alt3.nit:29,21--22: Type error: expected T, got B[Int]
+alt/base_upcast2_1alt5_alt3.nit:29,21--22: Type Error: expected `T`, got `B[Int]`.
-alt/base_upcast2_1alt5_alt4.nit:30,21--22: Type error: expected T, got B[Bool]
+alt/base_upcast2_1alt5_alt4.nit:30,21--22: Type Error: expected `T`, got `B[Bool]`.
-alt/base_upcast2_1alt5_alt7.nit:33,22: Type error: expected A[Bool], got T
+alt/base_upcast2_1alt5_alt7.nit:33,22: Type Error: expected `A[Bool]`, got `T: C`.
-alt/base_upcast2_1alt5_alt8.nit:34,22: Type error: expected B[Int], got T
+alt/base_upcast2_1alt5_alt8.nit:34,22: Type Error: expected `B[Int]`, got `T: C`.
-alt/base_upcast2_alt1.nit:26,10: Type error: class T not found in module base_upcast2_alt1.
+alt/base_upcast2_alt1.nit:26,10: Error: class `T` not found in module `base_upcast2_alt1`.
-alt/base_upcast2_alt10.nit:26,10: Type error: class T not found in module base_upcast2_alt10.
+alt/base_upcast2_alt10.nit:26,10: Error: class `T` not found in module `base_upcast2_alt10`.
-alt/base_upcast2_alt2.nit:26,10: Type error: class T not found in module base_upcast2_alt2.
+alt/base_upcast2_alt2.nit:26,10: Error: class `T` not found in module `base_upcast2_alt2`.
-alt/base_upcast2_alt3.nit:26,10: Type error: class T not found in module base_upcast2_alt3.
+alt/base_upcast2_alt3.nit:26,10: Error: class `T` not found in module `base_upcast2_alt3`.
-alt/base_upcast2_alt4.nit:26,10: Type error: class T not found in module base_upcast2_alt4.
+alt/base_upcast2_alt4.nit:26,10: Error: class `T` not found in module `base_upcast2_alt4`.
-alt/base_upcast2_alt5.nit:26,10: Type error: class T not found in module base_upcast2_alt5.
+alt/base_upcast2_alt5.nit:26,10: Error: class `T` not found in module `base_upcast2_alt5`.
-alt/base_upcast2_alt6.nit:26,10: Type error: class T not found in module base_upcast2_alt6.
+alt/base_upcast2_alt6.nit:26,10: Error: class `T` not found in module `base_upcast2_alt6`.
-alt/base_upcast2_alt7.nit:26,10: Type error: class T not found in module base_upcast2_alt7.
+alt/base_upcast2_alt7.nit:26,10: Error: class `T` not found in module `base_upcast2_alt7`.
-alt/base_upcast2_alt8.nit:26,10: Type error: class T not found in module base_upcast2_alt8.
+alt/base_upcast2_alt8.nit:26,10: Error: class `T` not found in module `base_upcast2_alt8`.
-alt/base_upcast2_alt9.nit:26,10: Type error: class T not found in module base_upcast2_alt9.
+alt/base_upcast2_alt9.nit:26,10: Error: class `T` not found in module `base_upcast2_alt9`.
-alt/base_upcast_alt1.nit:26,20--21: Type error: expected A[Int], got A[Bool]
-alt/base_upcast_alt1.nit:28,20--21: Type error: expected A[Int], got B[Bool]
-alt/base_upcast_alt1.nit:33,20--21: Type error: expected A[Bool], got A[Int]
-alt/base_upcast_alt1.nit:35,20--21: Type error: expected A[Bool], got B[Int]
-alt/base_upcast_alt1.nit:37,20--21: Type error: expected A[Bool], got C[Int]
-alt/base_upcast_alt1.nit:38,20--21: Type error: expected A[Bool], got C[Bool]
-alt/base_upcast_alt1.nit:39,20: Type error: expected A[Bool], got D
-alt/base_upcast_alt1.nit:41,20--21: Type error: expected B[Int], got A[Int]
-alt/base_upcast_alt1.nit:42,20--21: Type error: expected B[Int], got A[Bool]
-alt/base_upcast_alt1.nit:44,20--21: Type error: expected B[Int], got B[Bool]
-alt/base_upcast_alt1.nit:49,20--21: Type error: expected B[Bool], got A[Int]
-alt/base_upcast_alt1.nit:50,20--21: Type error: expected B[Bool], got A[Bool]
-alt/base_upcast_alt1.nit:51,20--21: Type error: expected B[Bool], got B[Int]
-alt/base_upcast_alt1.nit:53,20--21: Type error: expected B[Bool], got C[Int]
-alt/base_upcast_alt1.nit:54,20--21: Type error: expected B[Bool], got C[Bool]
-alt/base_upcast_alt1.nit:55,20: Type error: expected B[Bool], got D
-alt/base_upcast_alt1.nit:57,20--21: Type error: expected C[Bool], got A[Int]
-alt/base_upcast_alt1.nit:58,20--21: Type error: expected C[Int], got A[Bool]
-alt/base_upcast_alt1.nit:59,20--21: Type error: expected C[Int], got B[Int]
-alt/base_upcast_alt1.nit:60,20--21: Type error: expected C[Int], got B[Bool]
-alt/base_upcast_alt1.nit:62,20--21: Type error: expected C[Int], got C[Bool]
-alt/base_upcast_alt1.nit:63,20: Type error: expected C[Int], got D
-alt/base_upcast_alt1.nit:65,20--21: Type error: expected C[Bool], got A[Int]
-alt/base_upcast_alt1.nit:66,20--21: Type error: expected C[Bool], got A[Bool]
-alt/base_upcast_alt1.nit:67,20--21: Type error: expected C[Bool], got B[Int]
-alt/base_upcast_alt1.nit:68,20--21: Type error: expected C[Bool], got B[Bool]
-alt/base_upcast_alt1.nit:69,20--21: Type error: expected C[Bool], got C[Int]
-alt/base_upcast_alt1.nit:73,19--20: Type error: expected D, got A[Int]
-alt/base_upcast_alt1.nit:74,19--20: Type error: expected D, got A[Bool]
-alt/base_upcast_alt1.nit:75,19--20: Type error: expected D, got B[Int]
-alt/base_upcast_alt1.nit:76,19--20: Type error: expected D, got B[Bool]
-alt/base_upcast_alt1.nit:77,19--20: Type error: expected D, got C[Int]
-alt/base_upcast_alt1.nit:78,19--20: Type error: expected D, got C[Bool]
+alt/base_upcast_alt1.nit:26,20--21: Type Error: expected `A[Int]`, got `A[Bool]`.
+alt/base_upcast_alt1.nit:28,20--21: Type Error: expected `A[Int]`, got `B[Bool]`.
+alt/base_upcast_alt1.nit:33,20--21: Type Error: expected `A[Bool]`, got `A[Int]`.
+alt/base_upcast_alt1.nit:35,20--21: Type Error: expected `A[Bool]`, got `B[Int]`.
+alt/base_upcast_alt1.nit:37,20--21: Type Error: expected `A[Bool]`, got `C[Int]`.
+alt/base_upcast_alt1.nit:38,20--21: Type Error: expected `A[Bool]`, got `C[Bool]`.
+alt/base_upcast_alt1.nit:39,20: Type Error: expected `A[Bool]`, got `D`.
+alt/base_upcast_alt1.nit:41,20--21: Type Error: expected `B[Int]`, got `A[Int]`.
+alt/base_upcast_alt1.nit:42,20--21: Type Error: expected `B[Int]`, got `A[Bool]`.
+alt/base_upcast_alt1.nit:44,20--21: Type Error: expected `B[Int]`, got `B[Bool]`.
+alt/base_upcast_alt1.nit:49,20--21: Type Error: expected `B[Bool]`, got `A[Int]`.
+alt/base_upcast_alt1.nit:50,20--21: Type Error: expected `B[Bool]`, got `A[Bool]`.
+alt/base_upcast_alt1.nit:51,20--21: Type Error: expected `B[Bool]`, got `B[Int]`.
+alt/base_upcast_alt1.nit:53,20--21: Type Error: expected `B[Bool]`, got `C[Int]`.
+alt/base_upcast_alt1.nit:54,20--21: Type Error: expected `B[Bool]`, got `C[Bool]`.
+alt/base_upcast_alt1.nit:55,20: Type Error: expected `B[Bool]`, got `D`.
+alt/base_upcast_alt1.nit:57,20--21: Type Error: expected `C[Bool]`, got `A[Int]`.
+alt/base_upcast_alt1.nit:58,20--21: Type Error: expected `C[Int]`, got `A[Bool]`.
+alt/base_upcast_alt1.nit:59,20--21: Type Error: expected `C[Int]`, got `B[Int]`.
+alt/base_upcast_alt1.nit:60,20--21: Type Error: expected `C[Int]`, got `B[Bool]`.
+alt/base_upcast_alt1.nit:62,20--21: Type Error: expected `C[Int]`, got `C[Bool]`.
+alt/base_upcast_alt1.nit:63,20: Type Error: expected `C[Int]`, got `D`.
+alt/base_upcast_alt1.nit:65,20--21: Type Error: expected `C[Bool]`, got `A[Int]`.
+alt/base_upcast_alt1.nit:66,20--21: Type Error: expected `C[Bool]`, got `A[Bool]`.
+alt/base_upcast_alt1.nit:67,20--21: Type Error: expected `C[Bool]`, got `B[Int]`.
+alt/base_upcast_alt1.nit:68,20--21: Type Error: expected `C[Bool]`, got `B[Bool]`.
+alt/base_upcast_alt1.nit:69,20--21: Type Error: expected `C[Bool]`, got `C[Int]`.
+alt/base_upcast_alt1.nit:73,19--20: Type Error: expected `D`, got `A[Int]`.
+alt/base_upcast_alt1.nit:74,19--20: Type Error: expected `D`, got `A[Bool]`.
+alt/base_upcast_alt1.nit:75,19--20: Type Error: expected `D`, got `B[Int]`.
+alt/base_upcast_alt1.nit:76,19--20: Type Error: expected `D`, got `B[Bool]`.
+alt/base_upcast_alt1.nit:77,19--20: Type Error: expected `D`, got `C[Int]`.
+alt/base_upcast_alt1.nit:78,19--20: Type Error: expected `D`, got `C[Bool]`.
-base_user_annotation3.nit:15,33--35: Warning: unknown annotation `foo`
+base_user_annotation3.nit:15,33--35: Warning: unknown annotation `foo`.
-base_user_annotation4.nit:16,2--19: Warning: an annotation `foo` is already declared in module `base_user_annotation`
+base_user_annotation4.nit:16,2--19: Warning: an annotation `foo` is already declared in module `base_user_annotation`.
-alt/base_var2_alt1.nit:22,6--7: Error: A variable named `p1' already exists
+alt/base_var2_alt1.nit:22,6--7: Error: a variable named `p1` already exists.
-alt/base_var2_alt2.nit:33,6--7: Error: A variable named `a1' already exists
+alt/base_var2_alt2.nit:33,6--7: Error: a variable named `a1` already exists.
-alt/base_var2_alt3.nit:37,5--6: Error: A variable named `a1' already exists
+alt/base_var2_alt3.nit:37,5--6: Error: a variable named `a1` already exists.
-alt/base_var2_alt4.nit:41,6--7: Error: A variable named `a1' already exists
+alt/base_var2_alt4.nit:41,6--7: Error: a variable named `a1` already exists.
-alt/base_var2_alt5.nit:42,6--7: Error: A variable named `a3' already exists
+alt/base_var2_alt5.nit:42,6--7: Error: a variable named `a3` already exists.
-alt/base_var2_alt6.nit:46,6--7: Error: A variable named `a2' already exists
+alt/base_var2_alt6.nit:46,6--7: Error: a variable named `a2` already exists.
-alt/base_var2_alt7.nit:51,1--2: Error: Method or variable 'a3' unknown in Sys.
+alt/base_var2_alt7.nit:51,1--2: Error: method or variable `a3` unknown in `Sys`.
-alt/base_var2_alt8.nit:52,1--2: Error: Method or variable 'p1' unknown in Sys.
+alt/base_var2_alt8.nit:52,1--2: Error: method or variable `p1` unknown in `Sys`.
-alt/base_var2_alt9.nit:27,18--19: Error: A variable named `p1' already exists
+alt/base_var2_alt9.nit:27,18--19: Error: a variable named `p1` already exists.
-alt/base_var_alt1.nit:26,6--7: Type error: expected Int, got Float
+alt/base_var_alt1.nit:26,6--7: Type Error: expected `Int`, got `Float`.
-alt/base_var_alt2.nit:27,6--7: Type error: expected Float, got Int
+alt/base_var_alt2.nit:27,6--7: Type Error: expected `Float`, got `Int`.
-alt/base_var_alt3.nit:35,6--7: Type error: expected Int, got Float
+alt/base_var_alt3.nit:35,6--7: Type Error: expected `Int`, got `Float`.
-alt/base_var_alt4.nit:36,6--7: Type error: expected Float, got Int
+alt/base_var_alt4.nit:36,6--7: Type Error: expected `Float`, got `Int`.
-alt/base_var_alt5.nit:44,6--7: Type error: expected Int, got Float
+alt/base_var_alt5.nit:44,6--7: Type Error: expected `Int`, got `Float`.
-alt/base_var_alt6.nit:45,6--7: Type error: expected Float, got Int
+alt/base_var_alt6.nit:45,6--7: Type Error: expected `Float`, got `Int`.
-alt/base_var_alt7.nit:53,15--17: Type error: expected expression.
+alt/base_var_alt7.nit:53,15--17: Error: expected an expression.
-alt/base_var_alt8.nit:54,10--12: Type error: expected expression.
+alt/base_var_alt8.nit:54,10--12: Error: expected an expression.
-alt/base_var_assignment_flow_alt1.nit:34,1: Error: variable 'a' is possibly unset.
+alt/base_var_assignment_flow_alt1.nit:34,1: Error: possibly unset variable `a`.
-alt/base_var_assignment_flow_alt2.nit:47,1: Error: variable 'c' is possibly unset.
+alt/base_var_assignment_flow_alt2.nit:47,1: Error: possibly unset variable `c`.
-alt/base_var_assignment_flow_alt3.nit:47,1: Error: variable 'c' is possibly unset.
+alt/base_var_assignment_flow_alt3.nit:47,1: Error: possibly unset variable `c`.
-alt/base_var_assignment_flow_alt4.nit:47,1: Error: variable 'c' is possibly unset.
+alt/base_var_assignment_flow_alt4.nit:47,1: Error: possibly unset variable `c`.
-alt/base_var_assignment_flow_alt5.nit:54,1: Error: variable 'd' is possibly unset.
+alt/base_var_assignment_flow_alt5.nit:54,1: Error: possibly unset variable `d`.
-alt/base_var_assignment_flow_alt6.nit:68,1: Error: variable 'f' is possibly unset.
+alt/base_var_assignment_flow_alt6.nit:68,1: Error: possibly unset variable `f`.
-alt/base_var_null2_1alt3_alt1.nit:22,21--23: Type error: expected nullable Int, got Char
+alt/base_var_null2_1alt3_alt1.nit:22,21--23: Type Error: expected `nullable Int`, got `Char`.
-alt/base_var_null_alt1.nit:28,1--8: Error: Method 'output' call on 'null'.
+alt/base_var_null_alt1.nit:28,3--8: Error: method `output` called on `null`.
-alt/base_var_null_alt10.nit:43,1--6: Error: Attribute '_foo' access on 'null'.
+alt/base_var_null_alt10.nit:43,3--6: Error: attribute `_foo` access on `null`.
-alt/base_var_null_alt11.nit:44,1--10: Error: Attribute '_foo' access on 'null'.
+alt/base_var_null_alt11.nit:44,3--6: Error: attribute `_foo` access on `null`.
-alt/base_var_null_alt12.nit:45,1--6: Error: Method '+' call on 'null'.
+alt/base_var_null_alt12.nit:45,3--4: Error: method `+` called on `null`.
-alt/base_var_null_alt2.nit:29,1--6: Error: Attribute '_foo' access on 'null'.
+alt/base_var_null_alt2.nit:29,3--6: Error: attribute `_foo` access on `null`.
-alt/base_var_null_alt3.nit:30,1--10: Error: Attribute '_foo' access on 'null'.
+alt/base_var_null_alt3.nit:30,3--6: Error: attribute `_foo` access on `null`.
-alt/base_var_null_alt4.nit:31,1--6: Error: Method '+' call on 'null'.
+alt/base_var_null_alt4.nit:31,3--4: Error: method `+` called on `null`.
-alt/base_var_null_alt5.nit:35,1--8: Error: Method 'output' call on 'null'.
+alt/base_var_null_alt5.nit:35,3--8: Error: method `output` called on `null`.
-alt/base_var_null_alt6.nit:36,1--6: Error: Attribute '_foo' access on 'null'.
+alt/base_var_null_alt6.nit:36,3--6: Error: attribute `_foo` access on `null`.
-alt/base_var_null_alt7.nit:37,1--10: Error: Attribute '_foo' access on 'null'.
+alt/base_var_null_alt7.nit:37,3--6: Error: attribute `_foo` access on `null`.
-alt/base_var_null_alt8.nit:38,1--6: Error: Method '+' call on 'null'.
+alt/base_var_null_alt8.nit:38,3--4: Error: method `+` called on `null`.
-alt/base_var_null_alt9.nit:42,1--8: Error: Method 'output' call on 'null'.
+alt/base_var_null_alt9.nit:42,3--8: Error: method `output` called on `null`.
-alt/base_var_type_evolution_alt1.nit:40,1--3: Error: Method 'b' doesn't exists in A.
+alt/base_var_type_evolution_alt1.nit:40,3: Error: method `b` does not exists in `A`.
-alt/base_var_type_evolution_alt2.nit:50,1--3: Error: Method 'b' doesn't exists in A.
+alt/base_var_type_evolution_alt2.nit:50,3: Error: method `b` does not exists in `A`.
-alt/base_var_type_evolution_alt3.nit:50,1--3: Error: Method 'b' doesn't exists in A.
+alt/base_var_type_evolution_alt3.nit:50,3: Error: method `b` does not exists in `A`.
-alt/base_var_type_evolution_alt4.nit:62,1--3: Error: Method 'b' doesn't exists in A.
+alt/base_var_type_evolution_alt4.nit:62,3: Error: method `b` does not exists in `A`.
-alt/base_var_type_evolution_alt5.nit:62,1--3: Error: Method 'b' doesn't exists in A.
+alt/base_var_type_evolution_alt5.nit:62,3: Error: method `b` does not exists in `A`.
-alt/base_var_type_evolution_alt6.nit:73,1--3: Error: Method 'b' doesn't exists in A.
+alt/base_var_type_evolution_alt6.nit:73,3: Error: method `b` does not exists in `A`.
-alt/base_var_type_evolution_alt7.nit:74,1--3: Error: Method 'c' doesn't exists in B.
+alt/base_var_type_evolution_alt7.nit:74,3: Error: method `c` does not exists in `B`.
-alt/base_var_type_evolution_null2_alt1.nit:35,8: Type error: expected A, got null
+alt/base_var_type_evolution_null2_alt1.nit:35,8: Type Error: expected `A`, got `null`.
-alt/base_var_type_evolution_null2_alt2.nit:40,7: Type error: expected A, got nullable A
+alt/base_var_type_evolution_null2_alt2.nit:40,7: Type Error: expected `A`, got `nullable A`.
-base_var_type_evolution_null3.nit:52,5--13: Warning: expression is not null, since it is a `Object`.
+base_var_type_evolution_null3.nit:52,5: Warning: expression is not null, since it is a `Object`.
1
1
5
-alt/base_var_type_evolution_null3_alt1.nit:52,5--13: Warning: expression is not null, since it is a `Object`.
+alt/base_var_type_evolution_null3_alt1.nit:52,5: Warning: expression is not null, since it is a `Object`.
1
1
5
-alt/base_var_type_evolution_null4_alt1.nit:33,8: Type error: expected A, got null
+alt/base_var_type_evolution_null4_alt1.nit:33,8: Type Error: expected `A`, got `null`.
-alt/base_var_type_evolution_null4_alt2.nit:38,7: Type error: expected A, got nullable A
+alt/base_var_type_evolution_null4_alt2.nit:38,7: Type Error: expected `A`, got `nullable A`.
-alt/base_var_type_evolution_null4_alt3.nit:52,7: Type error: expected A, got nullable A
+alt/base_var_type_evolution_null4_alt3.nit:52,7: Type Error: expected `A`, got `nullable A`.
-alt/base_var_type_evolution_null4_alt4.nit:64,7: Type error: expected A, got nullable A
+alt/base_var_type_evolution_null4_alt4.nit:64,7: Type Error: expected `A`, got `nullable A`.
-alt/base_var_type_evolution_null_alt2.nit:42,8: Type error: expected nullable B, got A
+alt/base_var_type_evolution_null_alt2.nit:42,8: Type Error: expected `nullable B`, got `A`.
-alt/base_var_type_evolution_null_alt4.nit:45,7: Type error: expected B, got nullable B
+alt/base_var_type_evolution_null_alt4.nit:45,7: Type Error: expected `B`, got `nullable B`.
-alt/base_var_type_evolution_null_alt5.nit:53,7: Type error: expected A, got nullable A
+alt/base_var_type_evolution_null_alt5.nit:53,7: Type Error: expected `A`, got `nullable A`.
-alt/base_var_type_evolution_null_alt6.nit:54,8: Type error: expected nullable B, got nullable A
+alt/base_var_type_evolution_null_alt6.nit:54,8: Type Error: expected `nullable B`, got `nullable A`.
-alt/base_var_type_evolution_null_alt7.nit:64,7: Type error: expected B, got A
+alt/base_var_type_evolution_null_alt7.nit:64,7: Type Error: expected `B`, got `A`.
-alt/base_var_untyped_alt1.nit:22,1: Error: variable 'a' is possibly unset.
+alt/base_var_untyped_alt1.nit:22,1: Error: possibly unset variable `a`.
-alt/base_var_untyped_alt3.nit:43,1--2: Error: variable 'b3' is possibly unset.
+alt/base_var_untyped_alt3.nit:43,1--2: Error: possibly unset variable `b3`.
-alt/base_var_untyped_alt4.nit:44,1--7: Error: Method '+' doesn't exists in nullable Object.
+alt/base_var_untyped_alt4.nit:44,4--5: Error: method `+` does not exists in `nullable Object`.
-alt/base_var_untyped_alt5.nit:51,3--6: Error: Method '*' doesn't exists in nullable Object.
+alt/base_var_untyped_alt5.nit:51,4: Error: method `*` does not exists in `nullable Object`.
-alt/base_var_untyped_alt6.nit:50,6--7: Error: variable 'b3' is possibly unset.
+alt/base_var_untyped_alt6.nit:50,6--7: Error: possibly unset variable `b3`.
-alt/base_var_untyped_alt7.nit:54,1: Error: variable 'c' is possibly unset.
+alt/base_var_untyped_alt7.nit:54,1: Error: possibly unset variable `c`.
-alt/base_var_untyped_alt8.nit:57,5--8: Error: Method or variable 'fail' unknown in Sys.
+alt/base_var_untyped_alt8.nit:57,5--8: Error: method or variable `fail` unknown in `Sys`.
-alt/base_vararg3_alt1.nit:41,7--13: Type error: expected Int, got Array[Int]
+alt/base_vararg3_alt1.nit:41,7--13: Type Error: expected `Int`, got `Array[Int]`. Is an ellipsis `...` missing on the argument?
-alt/base_vararg3_alt2.nit:42,7: Type error: expected Array[Int], got Int
+alt/base_vararg3_alt2.nit:42,7: Type Error: expected `Array[Int]`, got `Int`.
-alt/base_vararg3_alt3.nit:33,9: Type error: expected Int, got Array[Int]
+alt/base_vararg3_alt3.nit:33,9: Type Error: expected `Int`, got `Array[Int]`. Is an ellipsis `...` missing on the argument?
-alt/base_vararg3_alt4.nit:34,9: Type error: expected Array[Int], got Int
+alt/base_vararg3_alt4.nit:34,9: Type Error: expected `Array[Int]`, got `Int`.
-alt/base_vararg_alt1.nit:51,1--3: Error: arity mismatch; prototype is 'foo(a: Char...)'
+alt/base_vararg_alt1.nit:51,1--3: Error: expected at least 1 argument(s) for `foo(a: Char...)`; got 0. See introduction at `base_vararg_alt1::Sys::foo`.
-alt/base_vararg_alt2.nit:54,1--3: Error: arity mismatch; prototype is 'bar(b: Char, a: Char...)'
+alt/base_vararg_alt2.nit:54,1--3: Error: expected at least 2 argument(s) for `bar(b: Char, a: Char...)`; got 0. See introduction at `base_vararg_alt2::Sys::bar`.
-alt/base_vararg_alt3.nit:55,1--8: Error: arity mismatch; prototype is 'bar(b: Char, a: Char...)'
+alt/base_vararg_alt3.nit:55,1--3: Error: expected at least 2 argument(s) for `bar(b: Char, a: Char...)`; got 1. See introduction at `base_vararg_alt3::Sys::bar`.
-alt/base_vararg_alt4.nit:58,1--3: Error: arity mismatch; prototype is 'baz(a: Char..., b: Char)'
+alt/base_vararg_alt4.nit:58,1--3: Error: expected at least 2 argument(s) for `baz(a: Char..., b: Char)`; got 0. See introduction at `base_vararg_alt4::Sys::baz`.
-alt/base_vararg_alt5.nit:59,1--8: Error: arity mismatch; prototype is 'baz(a: Char..., b: Char)'
+alt/base_vararg_alt5.nit:59,1--3: Error: expected at least 2 argument(s) for `baz(a: Char..., b: Char)`; got 1. See introduction at `base_vararg_alt5::Sys::baz`.
-alt/base_vararg_alt6.nit:62,1--6: Error: arity mismatch; prototype is 'foobar(b: Char, a: Char..., c: Char)'
+alt/base_vararg_alt6.nit:62,1--6: Error: expected at least 3 argument(s) for `foobar(b: Char, a: Char..., c: Char)`; got 0. See introduction at `base_vararg_alt6::Sys::foobar`.
-alt/base_vararg_alt7.nit:63,1--11: Error: arity mismatch; prototype is 'foobar(b: Char, a: Char..., c: Char)'
+alt/base_vararg_alt7.nit:63,1--6: Error: expected at least 3 argument(s) for `foobar(b: Char, a: Char..., c: Char)`; got 1. See introduction at `base_vararg_alt7::Sys::foobar`.
-alt/base_vararg_alt8.nit:64,1--15: Error: arity mismatch; prototype is 'foobar(b: Char, a: Char..., c: Char)'
+alt/base_vararg_alt8.nit:64,1--6: Error: expected at least 3 argument(s) for `foobar(b: Char, a: Char..., c: Char)`; got 2. See introduction at `base_vararg_alt8::Sys::foobar`.
-alt/base_virtual_int2_alt1.nit:37,8: Type error: expected Int, got A
+alt/base_virtual_int2_alt1.nit:37,8: Type Error: expected `Int`, got `A`.
-alt/base_virtual_int2_alt3.nit:40,2--8: Warning: Expression is already a A since it is a Int.
+alt/base_virtual_int2_alt3.nit:40,2--8: Warning: expression is already a `A` since it is a `Int`.
4
4
5
-alt/base_virtual_type2_alt1.nit:46,5--7: Type error: expected nullable U, got nullable T
+alt/base_virtual_type2_alt1.nit:46,5--7: Type Error: expected `nullable U`, got `nullable T`.
-alt/base_virtual_type3_alt1.nit:32,5--15: Type error: expected Int, got T
+alt/base_virtual_type3_alt1.nit:32,5--15: Type Error: expected `Int`, got `T`.
alt/base_virtual_type4_alt1.nit:20,16: Redef Error: a virtual type cannot be refined.
-alt/base_virtual_type4_alt1.nit:24,7--11: Type error: expected nullable U, got T
+alt/base_virtual_type4_alt1.nit:24,7--11: Type Error: expected `nullable U`, got `T`.
-alt/base_virtual_type5_alt1.nit:26,7: Type error: expected nullable U, got Int
+alt/base_virtual_type5_alt1.nit:26,7: Type Error: expected `nullable U`, got `Int`.
-alt/base_virtual_type5_alt2.nit:27,7--11: Type error: expected nullable U, got T
+alt/base_virtual_type5_alt2.nit:27,7--11: Type Error: expected `nullable U`, got `T`.
-base_virtual_type7.nit:20,2--10: Error: circularity of virtual type definition: E -> F -> E
-base_virtual_type7.nit:21,2--10: Error: circularity of virtual type definition: F -> E -> F
+base_virtual_type7.nit:20,2--10: Error: circularity of virtual type definition: E <-> F.
-alt/base_virtual_type_alt1.nit:39,5--7: Type error: expected Int, got nullable T
+alt/base_virtual_type_alt1.nit:39,5--7: Type Error: expected `Int`, got `nullable T`.
-alt/base_virtual_type_alt2.nit:40,7: Type error: expected nullable T, got Int
+alt/base_virtual_type_alt2.nit:40,7: Type Error: expected `nullable T`, got `Int`.
-alt/base_virtual_type_alt3.nit:43,7: Type error: expected nullable T, got B
+alt/base_virtual_type_alt3.nit:43,7: Type Error: expected `nullable T`, got `B`.
-alt/base_virtual_type_check_alt1.nit:65,10--14: Type error: expected K, got J
+alt/base_virtual_type_check_alt1.nit:65,10--14: Type Error: expected `K`, got `J`.
-alt/base_virtual_type_check_alt2.nit:68,10--14: Type error: expected K, got J
+alt/base_virtual_type_check_alt2.nit:68,10--14: Type Error: expected `K`, got `J`.
-alt/base_virtual_type_check_alt3.nit:75,10--14: Type error: expected L, got J
+alt/base_virtual_type_check_alt3.nit:75,10--14: Type Error: expected `L`, got `J`.
-alt/base_virtual_type_check_alt4.nit:76,10--14: Type error: expected L, got K
+alt/base_virtual_type_check_alt4.nit:76,10--14: Type Error: expected `L`, got `K`.
-alt/base_virtual_type_check_alt5.nit:78,10--14: Type error: expected L, got J
+alt/base_virtual_type_check_alt5.nit:78,10--14: Type Error: expected `L`, got `J`.
-alt/base_virtual_type_check_alt6.nit:79,10--14: Type error: expected L, got K
+alt/base_virtual_type_check_alt6.nit:79,10--14: Type Error: expected `L`, got `K`.
-alt/base_virtual_type_check_alt7.nit:85,11--15: Type error: expected K, got J
+alt/base_virtual_type_check_alt7.nit:85,11--15: Type Error: expected `K`, got `J`.
-alt/base_virtual_type_check_alt9.nit:88,11--15: Type error: expected K, got J
+alt/base_virtual_type_check_alt9.nit:88,11--15: Type Error: expected `K`, got `J`.
-alt/base_virtual_type_fixed_alt1.nit:32,15--25: Redef Error: Wrong type for parameter `v'. found Discrete, expected V1 as in base_virtual_type_fixed_alt1#A#v1.
-alt/base_virtual_type_fixed_alt1.nit:32,29--36: Redef Error: Wrong return type. found Discrete, expected V1 as in base_virtual_type_fixed_alt1#A#v1.
+alt/base_virtual_type_fixed_alt1.nit:32,15--25: Redef Error: expected `V1` for parameter `v'; got `Discrete`.
+alt/base_virtual_type_fixed_alt1.nit:32,29--36: Redef Error: expected `V1` for return type; got `Discrete`.
-alt/base_virtual_type_redef_alt1.nit:26,20--25: Redef Error: Wrong bound type. Found Number, expected a subtype of Int, as in base_virtual_type_redef_alt1#Number#OTHE2.
+alt/base_virtual_type_redef_alt1.nit:26,20--25: Redef Error: expected `Int` bound type; got `Number`.
-alt/base_virtual_type_redef_alt2.nit:26,2--27,22: Redef Error: Virtual type OTHE3 is fixed in super-class Number
+alt/base_virtual_type_redef_alt2.nit:26,2--27,22: Redef Error: virtual type `OTHE3` is fixed in super-class `Number`.
-base_virtual_type_self.nit:44,3: Error: Method or variable 'a' unknown in B.
-base_virtual_type_self.nit:45,7: Error: Method or variable 'a' unknown in B.
-base_virtual_type_self.nit:46,3: Error: Method or variable 'a' unknown in B.
-base_virtual_type_self.nit:47,7: Error: Method or variable 'a' unknown in B.
+base_virtual_type_self.nit:44,3: Error: method or variable `a` unknown in `B`.
+base_virtual_type_self.nit:45,7: Error: method or variable `a` unknown in `B`.
+base_virtual_type_self.nit:46,3: Error: method or variable `a` unknown in `B`.
+base_virtual_type_self.nit:47,7: Error: method or variable `a` unknown in `B`.
-alt/base_virtual_type_self_alt1.nit:44,9: Type error: expected Int, got Float
-alt/base_virtual_type_self_alt1.nit:45,7--12: Type error: expected Float, got Int
-alt/base_virtual_type_self_alt1.nit:47,7--12: Type error: expected Float, got A[Int]
+alt/base_virtual_type_self_alt1.nit:44,9: Type Error: expected `Int`, got `Float`.
+alt/base_virtual_type_self_alt1.nit:45,7--12: Type Error: expected `Float`, got `Int`.
+alt/base_virtual_type_self_alt1.nit:47,7--12: Type Error: expected `Float`, got `A[Int]`.
-alt/base_virtual_type_self_alt2.nit:44,9: Type error: expected Int, got Float
-alt/base_virtual_type_self_alt2.nit:45,7--12: Type error: expected Float, got Int
-alt/base_virtual_type_self_alt2.nit:47,7--12: Type error: expected Float, got A[Int]
+alt/base_virtual_type_self_alt2.nit:44,9: Type Error: expected `Int`, got `Float`.
+alt/base_virtual_type_self_alt2.nit:45,7--12: Type Error: expected `Float`, got `Int`.
+alt/base_virtual_type_self_alt2.nit:47,7--12: Type Error: expected `Float`, got `A[Int]`.
-alt/base_virtual_type_self_alt3.nit:44,9: Type error: expected Int, got Float
-alt/base_virtual_type_self_alt3.nit:45,7--12: Type error: expected Float, got Int
-alt/base_virtual_type_self_alt3.nit:47,7--12: Type error: expected Float, got A[Int]
+alt/base_virtual_type_self_alt3.nit:44,9: Type Error: expected `Int`, got `Float`.
+alt/base_virtual_type_self_alt3.nit:45,7--12: Type Error: expected `Float`, got `Int`.
+alt/base_virtual_type_self_alt3.nit:47,7--12: Type Error: expected `Float`, got `A[Int]`.
-alt/base_virtual_type_self_alt4.nit:44,9: Type error: expected A[Int], got Float
-alt/base_virtual_type_self_alt4.nit:45,7--12: Type error: expected Float, got A[Int]
-alt/base_virtual_type_self_alt4.nit:47,7--12: Type error: expected Float, got A[A[Int]]
+alt/base_virtual_type_self_alt4.nit:44,9: Type Error: expected `A[Int]`, got `Float`.
+alt/base_virtual_type_self_alt4.nit:45,7--12: Type Error: expected `Float`, got `A[Int]`.
+alt/base_virtual_type_self_alt4.nit:47,7--12: Type Error: expected `Float`, got `A[A[Int]]`.
-alt/base_virtual_type_self_alt5.nit:44,9: Type error: expected A[U], got Float
-alt/base_virtual_type_self_alt5.nit:45,7--12: Type error: expected Float, got A[U]
-alt/base_virtual_type_self_alt5.nit:47,7--12: Type error: expected Float, got A[A[U]]
+alt/base_virtual_type_self_alt5.nit:44,9: Type Error: expected `A[U]`, got `Float`.
+alt/base_virtual_type_self_alt5.nit:45,7--12: Type Error: expected `Float`, got `A[U]: A[Int]`.
+alt/base_virtual_type_self_alt5.nit:47,7--12: Type Error: expected `Float`, got `A[A[U]]: A[A[Int]]`.
--- /dev/null
+1
+2
+2
+3
+1
+2
+2
+3
+1
+2
+3
--- /dev/null
+1
+2
+2
+3
+1
+2
+2
+3
+1
+2
+3
+1
+2
+3
--- /dev/null
+Eb3, Da7b9, Aa3, Da2b5, Cc6d3, Cc9d9, Da7b1, Da0b2, Aa8, Aa4, Aa1, Eb2, Cc8d6, Bb6, Cc4d9, Bb7, Cc7d4, Eb2, Bb8, Eb0
+Da0b2, Aa1, Da2b5, Bb6, Aa3, Bb7, Bb8, Aa4, Cc4d9, Eb3, Eb2, Eb2, Eb0, Cc6d3, Cc7d4, Da7b1, Da7b9, Cc8d6, Aa8, Cc9d9
-Primes up to 40000 4203
-Primes up to 20000 2262
-Primes up to 10000 1229
+Primes up to 8000 1007
+Primes up to 4000 550
+Primes up to 2000 303
--- /dev/null
+8192
+14336
+22528
+33792
--- /dev/null
+1024
+0
+1024
+0
+0
+0
+1024
+0
+1024
+0
+0
+0
+1024
+0
+1024
+0
+0
+0
+1024
+0
+1024
+0
+0
+0
+1024
+0
+1024
+0
+0
+0
+1024
+0
+1024
+0
+0
+0
+1024
+0
+1024
+0
+0
+0
+1024
+0
+1024
+0
+0
+0
+1024
+0
+1024
+0
+0
+0
+1024
+0
+1024
+0
+0
+0
-((()(()))((())(()(()))))
+(((((((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))))(((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(())))))))((((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))))))((((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(())))))))((((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(())))))))))(((((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))))(((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(())))))))((((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))))))))(((((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(())))))))((((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(())))))))))(((((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))))(((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(())))))))((((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(())))))))))))((((((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))))(((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(())))))))((((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))))))((((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(())))))))((((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(())))))))))(((((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))))(((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(())))))))((((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))((((())(()(())))((()(()))((())(()(())))))(((()(()))((())(()(()))))(((())(()(())))((()(()))((())(()(()))))))))))))))
-1092
-1365
-147447
+17
+21
+2295
-1092
-1365
-147447
+17
+21
+2295
-alt/error_annot_c_compiler_alt1.nit:17,39--44: Syntax error: "cflags" expects at least one argument.
+alt/error_annot_c_compiler_alt1.nit:17,39--44: Syntax Error: `cflags` expects at least one argument.
-alt/error_annot_c_compiler_alt2.nit:18,39--64: Syntax error: "cflags" accepts only calls to `exec` with the command as arguments.
+alt/error_annot_c_compiler_alt2.nit:18,39--64: Syntax Error: `cflags` accepts only calls to `exec` with the command as arguments.
-alt/error_annot_c_compiler_alt3.nit:19,39--75: Syntax error: "cflags" accepts only calls to `exec` with the command as arguments.
+alt/error_annot_c_compiler_alt3.nit:19,39--75: Syntax Error: `cflags` accepts only calls to `exec` with the command as arguments.
-alt/error_annot_c_compiler_alt4.nit:20,39--45: Syntax error: "ldflags" expects at least one argument.
+alt/error_annot_c_compiler_alt4.nit:20,39--45: Syntax Error: `ldflags` expects at least one argument.
-alt/error_annot_c_compiler_alt5.nit:21,46--68: Annotation error: Something went wrong executing the argument of annotation "cflags", make sure the command is valid.
+alt/error_annot_c_compiler_alt5.nit:21,46--68: Error: something went wrong when executing the argument of `cflags`, make sure the command is valid.
-alt/error_annot_c_compiler_alt6.nit:22,39--50: Syntax error: "cflags" accepts only calls to `exec` with the command as arguments.
+alt/error_annot_c_compiler_alt6.nit:22,39--50: Syntax Error: `cflags` accepts only calls to `exec` with the command as arguments.
-alt/error_annot_pkgconfig_alt0.nit:17,48: Syntax error: unexpected ')'.
+alt/error_annot_pkgconfig_alt0.nit:17,48: Syntax Error: unexpected ')'.
-alt/error_annot_pkgconfig_alt1.nit:18,38--61: Error: package "missing-lib" unknown by pkg-config, make sure the development package is be installed.
+alt/error_annot_pkgconfig_alt1.nit:18,38--61: Error: package `missing-lib` unknown by `pkg-config`, make sure the development package is be installed.
-alt/error_annot_pkgconfig_alt2.nit:19,38--68: Syntax error: "pkgconfig" expects its arguments to be the name of the package as String literals.
+alt/error_annot_pkgconfig_alt2.nit:19,38--68: Syntax Error: `pkgconfig` expects its arguments to be the name of the package as String literals.
-alt/error_annot_pkgconfig_alt3.nit:20,38--52: Syntax error: "pkgconfig" expects its arguments to be the name of the package as String literals.
+alt/error_annot_pkgconfig_alt3.nit:20,38--52: Syntax Error: `pkgconfig` expects its arguments to be the name of the package as String literals.
-error_attr_2def.nit:19,6--9: Error: A property toto is already defined in class A at line 18.
+error_attr_2def.nit:19,6--9: Error: a property `toto` is already defined in class `A` at line 18.
-error_attr_assign.nit:21,11--13: Type error: expected Int, got Char
+error_attr_assign.nit:21,11--13: Type Error: expected `Int`, got `Char`.
-error_attr_unk.nit:17,8--12: Error: Attribute _toto doesn't exists in Sys.
+error_attr_unk.nit:17,8--12: Error: attribute `_toto` does not exist in `Sys`.
-error_class_generic.nit:23,1--3: Syntax error: unexpected keyword 'end'.
+error_class_generic.nit:23,1--3: Syntax Error: unexpected keyword 'end'.
-alt/error_class_generic_alt1.nit:25,8--12: Type error: 'Array' is a generic class.
+alt/error_class_generic_alt1.nit:25,8--12: Type Error: `Array[E: nullable Object]` is a generic class.
-alt/error_class_generic_alt2.nit:18,22--26: Warning: Useless formal parameter type since `Float` cannnot have subclasses.
-alt/error_class_generic_alt2.nit:25,8--12: Type error: 'Array' is a generic class.
+alt/error_class_generic_alt2.nit:18,22--26: Warning: useless formal parameter type since `Float` cannot have subclasses.
+alt/error_class_generic_alt2.nit:25,8--12: Type Error: `Array[E: nullable Object]` is a generic class.
-alt/error_class_generic_alt3.nit:19,29--34: Error: A formal parameter type `E' already exists
+alt/error_class_generic_alt3.nit:19,29--34: Error: a formal parameter type `E` already exists.
-alt/error_class_generic_alt4.nit:20,7--11: Redef error: Array is an imported class. Add the redef keyword to refine it.
+alt/error_class_generic_alt4.nit:20,7--11: Redef Error: `Array` is an imported class. Add the `redef` keyword to refine it.
-alt/error_class_generic_alt5.nit:21,7--11: Redef error: Array is an imported class. Add the redef keyword to refine it.
+alt/error_class_generic_alt5.nit:21,7--11: Redef Error: `Array` is an imported class. Add the `redef` keyword to refine it.
-alt/error_class_generic_alt6.nit:22,23--28: Error: A formal parameter type `E' already exists
+alt/error_class_generic_alt6.nit:22,23--28: Error: a formal parameter type `E` already exists.
-../lib/standard/kernel.nit:101,1--117,3: Error: kernel#Sys does not specialize module_0#Object. Possible duplication of the root class `Object`?
+../lib/standard/kernel.nit:97,1--111,3: Error: `kernel#Sys` does not specialize `module_0#Object`. Possible duplication of the root class `Object`?
-error_cons_arity.nit:19,7: Error: A class C is already defined at line 17.
+error_cons_arity.nit:19,7: Error: a class `C` is already defined at line 17.
-error_cons_arity2.nit:20,7: Error: A class A is already defined at line 17.
+error_cons_arity2.nit:20,7: Error: a class `A` is already defined at line 17.
-error_constraint.nit:20,7: Error: A class A is already defined at line 18.
+error_constraint.nit:20,7: Error: a class `A` is already defined at line 18.
-error_decl_type_var.nit:17,14--16: Type error: expected Int, got Char
+error_decl_type_var.nit:17,14--16: Type Error: expected `Int`, got `Char`.
-alt/error_defs2_alt1.nit:20,11--13: Error: bar is not a top level method.
+4
+40
+124
-alt/error_defs2_alt2.nit:21,11--13: Error: No property Object::foo is inherited. Remove the redef keyword to define a new property.
+alt/error_defs2_alt2.nit:21,11--13: Error: no property `Sys::foo` is inherited. Remove the `redef` keyword to define a new property.
-alt/error_defs_alt1.nit:19,7--12: Redef error: Object is an imported class. Add the redef keyword to refine it.
+alt/error_defs_alt1.nit:19,7--12: Redef Error: `Object` is an imported class. Add the `redef` keyword to refine it.
-alt/error_defs_alt2.nit:26,5--7: Error: A property foo is already defined in class A at line 25.
+alt/error_defs_alt2.nit:26,5--7: Error: a property `foo` is already defined in class `A` at line 25.
-alt/error_defs_alt3.nit:28,5--7: Redef error: A::bar is an inherited property. To redefine it, add the redef keyword.
+alt/error_defs_alt3.nit:28,5--7: Redef Error: `A::bar` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_defs_alt4.nit:29,5--7: Error: baz is a top level method.
+alt/error_defs_alt4.nit:27,36--38: Error: expected 1 argument(s) for `baz(c: Char)`; got 0. See introduction at `error_defs_alt4::A::baz`.
+alt/error_defs_alt4.nit:27,36--38: Error: expected an expression.
-alt/error_defs_alt5.nit:30,11--13: Error: baz is a top level method.
+alt/error_defs_alt5.nit:30,11--13: Error: no property `A::baz` is inherited. Remove the `redef` keyword to define a new property.
-alt/error_defs_alt6.nit:35,7: Error: A class A is already defined at line 24.
+alt/error_defs_alt6.nit:35,7: Error: a class `A` is already defined at line 24.
-alt/error_defs_alt7.nit:38,13: Error: A class A is already defined at line 24.
+alt/error_defs_alt7.nit:38,13: Error: a class `A` is already defined at line 24.
-alt/error_defs_alt8.nit:41,13: Error: A class A is already defined at line 24.
+alt/error_defs_alt8.nit:41,13: Error: a class `A` is already defined at line 24.
-alt/error_defs_alt9.nit:46,5--7: Error: A property baz is already defined in class Object at line 45.
+alt/error_defs_alt9.nit:46,5--7: Error: a property `baz` is already defined in class `Sys` at line 45.
-alt/error_defs_init_1alt1_alt1.nit:26,2--5: Error: A property init is already defined in class A at line 18.
+alt/error_defs_init_1alt1_alt1.nit:26,2--5: Error: a property `init` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt1_alt2.nit:27,2--5: Error: A property init is already defined in class A at line 18.
+alt/error_defs_init_1alt1_alt2.nit:27,2--5: Error: a property `init` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt2_alt1.nit:26,2--5: Error: A property init is already defined in class A at line 18.
+alt/error_defs_init_1alt2_alt1.nit:26,2--5: Error: a property `init` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt2_alt2.nit:27,2--5: Error: A property init is already defined in class A at line 18.
+alt/error_defs_init_1alt2_alt2.nit:27,2--5: Error: a property `init` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt3_alt3.nit:28,2--4: Error: A property new is already defined in class A at line 18.
+alt/error_defs_init_1alt3_alt3.nit:28,2--4: Error: a property `new` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt3_alt4.nit:29,2--4: Error: A property new is already defined in class A at line 18.
+alt/error_defs_init_1alt3_alt4.nit:29,2--4: Error: a property `new` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt4_alt3.nit:28,2--4: Error: A property new is already defined in class A at line 18.
+alt/error_defs_init_1alt4_alt3.nit:28,2--4: Error: a property `new` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt4_alt4.nit:29,2--4: Error: A property new is already defined in class A at line 18.
+alt/error_defs_init_1alt4_alt4.nit:29,2--4: Error: a property `new` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt5_alt5.nit:30,7--9: Error: A property foo is already defined in class A at line 18.
+alt/error_defs_init_1alt5_alt5.nit:30,7--9: Error: a property `foo` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt5_alt6.nit:31,6--8: Error: A property foo is already defined in class A at line 18.
+alt/error_defs_init_1alt5_alt6.nit:31,6--8: Error: a property `foo` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt5_alt7.nit:32,6--8: Error: A property foo is already defined in class A at line 18.
+alt/error_defs_init_1alt5_alt7.nit:32,6--8: Error: a property `foo` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt6_alt5.nit:30,7--9: Error: A property foo is already defined in class A at line 18.
+alt/error_defs_init_1alt6_alt5.nit:30,7--9: Error: a property `foo` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt6_alt6.nit:31,6--8: Error: A property foo is already defined in class A at line 18.
+alt/error_defs_init_1alt6_alt6.nit:31,6--8: Error: a property `foo` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt6_alt7.nit:32,6--8: Error: A property foo is already defined in class A at line 18.
+alt/error_defs_init_1alt6_alt7.nit:32,6--8: Error: a property `foo` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt7_alt5.nit:30,7--9: Error: A property foo is already defined in class A at line 18.
+alt/error_defs_init_1alt7_alt5.nit:30,7--9: Error: a property `foo` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt7_alt6.nit:31,6--8: Error: A property foo is already defined in class A at line 18.
+alt/error_defs_init_1alt7_alt6.nit:31,6--8: Error: a property `foo` is already defined in class `A` at line 18.
-alt/error_defs_init_1alt7_alt7.nit:32,6--8: Error: A property foo is already defined in class A at line 18.
+alt/error_defs_init_1alt7_alt7.nit:32,6--8: Error: a property `foo` is already defined in class `A` at line 18.
-error_expr_not_ok.nit:19,18--21: Error: Method or variable 'fail' unknown in A.
-error_expr_not_ok.nit:21,11--14: Error: Method or variable 'fail' unknown in A.
-error_expr_not_ok.nit:22,26--29: Error: Method or variable 'fail' unknown in A.
-error_expr_not_ok.nit:24,8--11: Error: Method or variable 'fail' unknown in A.
-error_expr_not_ok.nit:25,9--12: Error: Method or variable 'fail' unknown in A.
-error_expr_not_ok.nit:40,1--7: Error: Method 'fail' doesn't exists in Int.
-error_expr_not_ok.nit:41,16--19: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:42,7--9: Type error: expected A, got Int
-error_expr_not_ok.nit:43,1--8: Error: Method 'fail' doesn't exists in Int.
-error_expr_not_ok.nit:44,12--15: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:48,1--4: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:49,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:50,1--4: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:51,1--9: Error: Method or variable 'fail=' unknown in Sys.
-error_expr_not_ok.nit:52,6--9: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:53,1--9: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:55,1--12: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:58,2--5: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:60,4--7: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:60,20: Type error: expected A, got Int
-error_expr_not_ok.nit:61,14--17: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:61,24--27: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:62,10--13: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:62,7--27: Type error: expected A, got Int
-error_expr_not_ok.nit:63,27--30: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:64,20--23: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:64,30--33: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:66,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:66,21: Type error: expected A, got Int
-error_expr_not_ok.nit:67,15--18: Error: Method or variable 'fail' unknown in Sys.
+error_expr_not_ok.nit:19,18--21: Error: method or variable `fail` unknown in `A`.
+error_expr_not_ok.nit:21,11--14: Error: method or variable `fail` unknown in `A`.
+error_expr_not_ok.nit:22,26--29: Error: method or variable `fail` unknown in `A`.
+error_expr_not_ok.nit:24,8--11: Error: method or variable `fail` unknown in `A`.
+error_expr_not_ok.nit:25,9--12: Error: method or variable `fail` unknown in `A`.
+error_expr_not_ok.nit:40,4--7: Error: method `fail` does not exists in `Int`.
+error_expr_not_ok.nit:41,16--19: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:42,7--9: Type Error: expected `A`, got `Int`.
+error_expr_not_ok.nit:43,5--8: Error: method `fail` does not exists in `Int`.
+error_expr_not_ok.nit:44,12--15: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:48,1--4: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:49,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:50,1--4: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:51,1--4: Error: method or variable `fail=` unknown in `Sys`.
+error_expr_not_ok.nit:52,6--9: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:53,1--4: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:55,1--4: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:58,2--5: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:60,4--7: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:60,20: Type Error: expected `A`, got `Int`.
+error_expr_not_ok.nit:61,14--17: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:61,24--27: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:62,10--13: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:62,7--27: Type Error: expected `A`, got `Int`.
+error_expr_not_ok.nit:63,27--30: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:64,20--23: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:64,30--33: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:66,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:66,21: Type Error: expected `A`, got `Int`.
+error_expr_not_ok.nit:67,15--18: Error: method or variable `fail` unknown in `Sys`.
error_expr_not_ok.nit:67,1--18: Warning: use `loop` instead of `while true do`.
-error_expr_not_ok.nit:69,10--13: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:70,20--23: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:71,8--11: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:72,12--15: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:73,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:73,7--18: Type error: expected A, got Bool
-error_expr_not_ok.nit:74,15--18: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:74,7--18: Type error: expected A, got Bool
-error_expr_not_ok.nit:75,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:75,15--18: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:75,7--18: Type error: expected A, got Bool
-error_expr_not_ok.nit:76,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:76,7--19: Type error: expected A, got Bool
-error_expr_not_ok.nit:77,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:77,16--19: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:77,7--19: Type error: expected A, got Bool
-error_expr_not_ok.nit:78,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:78,16--19: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:78,7--19: Type error: expected A, got Bool
-error_expr_not_ok.nit:79,11--14: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:79,7--14: Type error: expected A, got Bool
-error_expr_not_ok.nit:80,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:81,12--15: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:81,7--15: Type error: expected A, got Bool
-error_expr_not_ok.nit:82,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:83,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:84,12--15: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:84,7--15: Type error: expected A, got Bool
-error_expr_not_ok.nit:85,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:86,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:87,26--29: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:87,7--30: Type error: expected A, got Bool
-error_expr_not_ok.nit:88,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:89,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:90,11--14: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:90,7--14: Type error: expected A, got Bool
-error_expr_not_ok.nit:91,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:92,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:93,11--14: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:93,7--14: Type error: expected A, got Bool
-error_expr_not_ok.nit:94,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:95,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:96,12--15: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:96,7--15: Type error: expected A, got Bool
-error_expr_not_ok.nit:97,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:98,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:99,12--15: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:99,7--15: Type error: expected A, got Bool
-error_expr_not_ok.nit:100,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:101,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:102,13--16: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:102,7--16: Type error: expected A, got Int
-error_expr_not_ok.nit:103,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:104,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:105,11--14: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:105,7--14: Type error: expected A, got Int
-error_expr_not_ok.nit:106,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:107,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:108,11--14: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:108,7--14: Type error: expected A, got Int
-error_expr_not_ok.nit:109,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:110,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:111,11--14: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:111,7--14: Type error: expected A, got Int
-error_expr_not_ok.nit:112,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:113,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:114,11--14: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:114,7--14: Type error: expected A, got Int
-error_expr_not_ok.nit:115,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:116,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:117,11--14: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:117,7--14: Type error: expected A, got Int
-error_expr_not_ok.nit:118,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:119,8--11: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:122,7--15: Error: Attribute _fail doesn't exists in String.
-error_expr_not_ok.nit:123,1--13: Error: Attribute _fail doesn't exists in String.
-error_expr_not_ok.nit:124,1--14: Error: Attribute _fail doesn't exists in String.
-error_expr_not_ok.nit:126,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:127,1--4: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:128,1--4: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:131,11--14: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:131,7--15: Type error: expected A, got Int
-error_expr_not_ok.nit:132,10--13: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:133,11--14: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:134,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:135,1--4: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:136,1--4: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:137,1--4: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:139,11--14: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:140,8--11: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:141,8--11: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:141,14--17: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:142,11--14: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:143,8--11: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:144,8--11: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:144,14--17: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:145,11--14: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:146,8--11: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:147,8--11: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:149,14--17: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:149,7--24: Type error: expected A, got String
-error_expr_not_ok.nit:150,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:151,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:152,7--10: Error: Method or variable 'fail' unknown in Sys.
-error_expr_not_ok.nit:152,7--18: Type error: expected A, got Bool
+error_expr_not_ok.nit:69,10--13: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:70,20--23: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:71,8--11: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:72,12--15: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:73,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:73,7--18: Type Error: expected `A`, got `Bool`.
+error_expr_not_ok.nit:74,15--18: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:74,7--18: Type Error: expected `A`, got `Bool`.
+error_expr_not_ok.nit:75,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:75,15--18: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:75,7--18: Type Error: expected `A`, got `Bool`.
+error_expr_not_ok.nit:76,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:76,7--19: Type Error: expected `A`, got `Bool`.
+error_expr_not_ok.nit:77,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:77,16--19: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:77,7--19: Type Error: expected `A`, got `Bool`.
+error_expr_not_ok.nit:78,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:78,16--19: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:78,7--19: Type Error: expected `A`, got `Bool`.
+error_expr_not_ok.nit:79,11--14: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:79,7--14: Type Error: expected `A`, got `Bool`.
+error_expr_not_ok.nit:80,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:81,12--15: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:81,7--15: Type Error: expected `A`, got `Bool`.
+error_expr_not_ok.nit:82,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:83,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:84,12--15: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:84,7--15: Type Error: expected `A`, got `Bool`.
+error_expr_not_ok.nit:85,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:86,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:87,26--29: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:87,7--30: Type Error: expected `A`, got `Bool`.
+error_expr_not_ok.nit:88,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:89,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:90,11--14: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:90,7--14: Type Error: expected `A`, got `Bool`.
+error_expr_not_ok.nit:91,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:92,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:93,11--14: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:93,7--14: Type Error: expected `A`, got `Bool`.
+error_expr_not_ok.nit:94,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:95,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:96,12--15: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:96,7--15: Type Error: expected `A`, got `Bool`.
+error_expr_not_ok.nit:97,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:98,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:99,12--15: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:99,7--15: Type Error: expected `A`, got `Bool`.
+error_expr_not_ok.nit:100,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:101,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:102,13--16: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:102,7--16: Type Error: expected `A`, got `Int`.
+error_expr_not_ok.nit:103,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:104,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:105,11--14: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:105,7--14: Type Error: expected `A`, got `Int`.
+error_expr_not_ok.nit:106,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:107,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:108,11--14: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:108,7--14: Type Error: expected `A`, got `Int`.
+error_expr_not_ok.nit:109,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:110,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:111,11--14: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:111,7--14: Type Error: expected `A`, got `Int`.
+error_expr_not_ok.nit:112,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:113,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:114,11--14: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:114,7--14: Type Error: expected `A`, got `Int`.
+error_expr_not_ok.nit:115,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:116,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:117,11--14: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:117,7--14: Type Error: expected `A`, got `Int`.
+error_expr_not_ok.nit:118,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:119,8--11: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:122,11--15: Error: attribute `_fail` does not exist in `String`.
+error_expr_not_ok.nit:123,5--9: Error: attribute `_fail` does not exist in `String`.
+error_expr_not_ok.nit:124,5--9: Error: attribute `_fail` does not exist in `String`.
+error_expr_not_ok.nit:126,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:127,1--4: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:128,1--4: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:131,11--14: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:131,7--15: Type Error: expected `A`, got `Int`.
+error_expr_not_ok.nit:132,10--13: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:133,11--14: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:134,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:135,1--4: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:136,1--4: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:137,1--4: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:139,11--14: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:140,8--11: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:141,8--11: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:141,14--17: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:142,11--14: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:143,8--11: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:144,8--11: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:144,14--17: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:145,11--14: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:146,8--11: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:147,8--11: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:149,14--17: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:149,7--24: Type Error: expected `A`, got `String`.
+error_expr_not_ok.nit:150,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:151,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:152,7--10: Error: method or variable `fail` unknown in `Sys`.
+error_expr_not_ok.nit:152,7--18: Type Error: expected `A`, got `Bool`.
-alt/error_expr_not_ok_alt1.nit:32,11--14: Type error: class Fail not found in module error_expr_not_ok_alt1.
+alt/error_expr_not_ok_alt1.nit:32,11--14: Error: class `Fail` not found in module `error_expr_not_ok_alt1`.
-alt/error_expr_not_ok_alt2.nit:19,18--21: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt2.nit:21,11--14: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt2.nit:22,26--29: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt2.nit:24,8--11: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt2.nit:25,9--12: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt2.nit:33,11--14: Type error: class Fail not found in module error_expr_not_ok_alt2.
-alt/error_expr_not_ok_alt2.nit:40,1--7: Error: Method 'fail' doesn't exists in Int.
-alt/error_expr_not_ok_alt2.nit:42,7--9: Type error: expected A, got Int
-alt/error_expr_not_ok_alt2.nit:43,1--8: Error: Method 'fail' doesn't exists in Int.
-alt/error_expr_not_ok_alt2.nit:60,20: Type error: expected A, got Int
-alt/error_expr_not_ok_alt2.nit:62,7--27: Type error: expected A, got Int
-alt/error_expr_not_ok_alt2.nit:66,21: Type error: expected A, got Int
+alt/error_expr_not_ok_alt2.nit:19,18--21: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt2.nit:21,11--14: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt2.nit:22,26--29: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt2.nit:24,8--11: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt2.nit:25,9--12: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt2.nit:33,11--14: Error: class `Fail` not found in module `error_expr_not_ok_alt2`.
+alt/error_expr_not_ok_alt2.nit:40,4--7: Error: method `fail` does not exists in `Int`.
+alt/error_expr_not_ok_alt2.nit:42,7--9: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt2.nit:43,5--8: Error: method `fail` does not exists in `Int`.
+alt/error_expr_not_ok_alt2.nit:60,20: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt2.nit:62,7--27: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt2.nit:66,21: Type Error: expected `A`, got `Int`.
alt/error_expr_not_ok_alt2.nit:67,1--18: Warning: use `loop` instead of `while true do`.
-alt/error_expr_not_ok_alt2.nit:73,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt2.nit:74,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt2.nit:75,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt2.nit:76,7--19: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt2.nit:77,7--19: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt2.nit:78,7--19: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt2.nit:79,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt2.nit:81,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt2.nit:84,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt2.nit:87,7--30: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt2.nit:90,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt2.nit:93,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt2.nit:96,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt2.nit:99,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt2.nit:102,7--16: Type error: expected A, got Int
-alt/error_expr_not_ok_alt2.nit:105,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt2.nit:108,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt2.nit:111,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt2.nit:114,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt2.nit:117,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt2.nit:122,7--15: Error: Attribute _fail doesn't exists in String.
-alt/error_expr_not_ok_alt2.nit:123,1--13: Error: Attribute _fail doesn't exists in String.
-alt/error_expr_not_ok_alt2.nit:124,1--14: Error: Attribute _fail doesn't exists in String.
-alt/error_expr_not_ok_alt2.nit:131,7--15: Type error: expected A, got Int
-alt/error_expr_not_ok_alt2.nit:149,7--24: Type error: expected A, got String
-alt/error_expr_not_ok_alt2.nit:152,7--18: Type error: expected A, got Bool
+alt/error_expr_not_ok_alt2.nit:73,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt2.nit:74,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt2.nit:75,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt2.nit:76,7--19: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt2.nit:77,7--19: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt2.nit:78,7--19: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt2.nit:79,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt2.nit:81,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt2.nit:84,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt2.nit:87,7--30: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt2.nit:90,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt2.nit:93,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt2.nit:96,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt2.nit:99,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt2.nit:102,7--16: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt2.nit:105,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt2.nit:108,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt2.nit:111,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt2.nit:114,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt2.nit:117,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt2.nit:122,11--15: Error: attribute `_fail` does not exist in `String`.
+alt/error_expr_not_ok_alt2.nit:123,5--9: Error: attribute `_fail` does not exist in `String`.
+alt/error_expr_not_ok_alt2.nit:124,5--9: Error: attribute `_fail` does not exist in `String`.
+alt/error_expr_not_ok_alt2.nit:131,7--15: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt2.nit:149,7--24: Type Error: expected `A`, got `String`.
+alt/error_expr_not_ok_alt2.nit:152,7--18: Type Error: expected `A`, got `Bool`.
-alt/error_expr_not_ok_alt3.nit:19,18--21: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt3.nit:21,11--14: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt3.nit:22,26--29: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt3.nit:24,8--11: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt3.nit:25,9--12: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt3.nit:34,12--18: Error: Method or variable 'fail' unknown in Sys.
-alt/error_expr_not_ok_alt3.nit:40,1--7: Error: Method 'fail' doesn't exists in Int.
-alt/error_expr_not_ok_alt3.nit:42,7--9: Type error: expected A, got Int
-alt/error_expr_not_ok_alt3.nit:43,1--8: Error: Method 'fail' doesn't exists in Int.
-alt/error_expr_not_ok_alt3.nit:60,20: Type error: expected A, got Int
-alt/error_expr_not_ok_alt3.nit:62,7--27: Type error: expected A, got Int
-alt/error_expr_not_ok_alt3.nit:66,21: Type error: expected A, got Int
+alt/error_expr_not_ok_alt3.nit:19,18--21: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt3.nit:21,11--14: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt3.nit:22,26--29: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt3.nit:24,8--11: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt3.nit:25,9--12: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt3.nit:34,12--15: Error: method or variable `fail` unknown in `Sys`.
+alt/error_expr_not_ok_alt3.nit:40,4--7: Error: method `fail` does not exists in `Int`.
+alt/error_expr_not_ok_alt3.nit:42,7--9: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt3.nit:43,5--8: Error: method `fail` does not exists in `Int`.
+alt/error_expr_not_ok_alt3.nit:60,20: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt3.nit:62,7--27: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt3.nit:66,21: Type Error: expected `A`, got `Int`.
alt/error_expr_not_ok_alt3.nit:67,1--18: Warning: use `loop` instead of `while true do`.
-alt/error_expr_not_ok_alt3.nit:73,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt3.nit:74,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt3.nit:75,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt3.nit:76,7--19: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt3.nit:77,7--19: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt3.nit:78,7--19: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt3.nit:79,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt3.nit:81,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt3.nit:84,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt3.nit:87,7--30: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt3.nit:90,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt3.nit:93,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt3.nit:96,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt3.nit:99,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt3.nit:102,7--16: Type error: expected A, got Int
-alt/error_expr_not_ok_alt3.nit:105,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt3.nit:108,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt3.nit:111,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt3.nit:114,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt3.nit:117,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt3.nit:122,7--15: Error: Attribute _fail doesn't exists in String.
-alt/error_expr_not_ok_alt3.nit:123,1--13: Error: Attribute _fail doesn't exists in String.
-alt/error_expr_not_ok_alt3.nit:124,1--14: Error: Attribute _fail doesn't exists in String.
-alt/error_expr_not_ok_alt3.nit:131,7--15: Type error: expected A, got Int
-alt/error_expr_not_ok_alt3.nit:149,7--24: Type error: expected A, got String
-alt/error_expr_not_ok_alt3.nit:152,7--18: Type error: expected A, got Bool
+alt/error_expr_not_ok_alt3.nit:73,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt3.nit:74,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt3.nit:75,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt3.nit:76,7--19: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt3.nit:77,7--19: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt3.nit:78,7--19: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt3.nit:79,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt3.nit:81,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt3.nit:84,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt3.nit:87,7--30: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt3.nit:90,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt3.nit:93,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt3.nit:96,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt3.nit:99,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt3.nit:102,7--16: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt3.nit:105,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt3.nit:108,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt3.nit:111,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt3.nit:114,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt3.nit:117,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt3.nit:122,11--15: Error: attribute `_fail` does not exist in `String`.
+alt/error_expr_not_ok_alt3.nit:123,5--9: Error: attribute `_fail` does not exist in `String`.
+alt/error_expr_not_ok_alt3.nit:124,5--9: Error: attribute `_fail` does not exist in `String`.
+alt/error_expr_not_ok_alt3.nit:131,7--15: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt3.nit:149,7--24: Type Error: expected `A`, got `String`.
+alt/error_expr_not_ok_alt3.nit:152,7--18: Type Error: expected `A`, got `Bool`.
-alt/error_expr_not_ok_alt4.nit:19,18--21: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt4.nit:21,11--14: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt4.nit:22,26--29: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt4.nit:24,8--11: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt4.nit:25,9--12: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt4.nit:40,1--7: Error: Method 'fail' doesn't exists in Int.
-alt/error_expr_not_ok_alt4.nit:41,16--19: Type error: expected Int, got Object
-alt/error_expr_not_ok_alt4.nit:42,7--9: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:43,1--8: Error: Method 'fail' doesn't exists in Int.
-alt/error_expr_not_ok_alt4.nit:45,7--10: Type error: expected A, got Object
-alt/error_expr_not_ok_alt4.nit:46,1--9: Error: Method 'fail' doesn't exists in Object.
-alt/error_expr_not_ok_alt4.nit:49,7--10: Type error: expected A, got Object
-alt/error_expr_not_ok_alt4.nit:50,1--10: Error: cannot call 'trash', a top-level method, with a receiver.
-alt/error_expr_not_ok_alt4.nit:50,1--10: Error: Incorrect number of parameters. Got 0, expected 1. Signature is (x: A)
-alt/error_expr_not_ok_alt4.nit:60,4--7: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt4.nit:60,20: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:62,10--13: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt4.nit:62,7--27: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:63,7--30: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:64,7--33: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:66,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt4.nit:66,21: Type error: expected A, got Int
+alt/error_expr_not_ok_alt4.nit:19,18--21: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt4.nit:21,11--14: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt4.nit:22,26--29: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt4.nit:24,8--11: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt4.nit:25,9--12: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt4.nit:40,4--7: Error: method `fail` does not exists in `Int`.
+alt/error_expr_not_ok_alt4.nit:41,16--19: Type Error: expected `Int`, got `Object`.
+alt/error_expr_not_ok_alt4.nit:42,7--9: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:43,5--8: Error: method `fail` does not exists in `Int`.
+alt/error_expr_not_ok_alt4.nit:45,7--10: Type Error: expected `A`, got `Object`.
+alt/error_expr_not_ok_alt4.nit:46,6--9: Error: method `fail` does not exists in `Object`.
+alt/error_expr_not_ok_alt4.nit:49,7--10: Type Error: expected `A`, got `Object`.
+alt/error_expr_not_ok_alt4.nit:50,6--10: Error: method `trash` does not exists in `Object`.
+alt/error_expr_not_ok_alt4.nit:60,4--7: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:60,20: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:62,10--13: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:62,7--27: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:63,7--30: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:64,7--33: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:66,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:66,21: Type Error: expected `A`, got `Int`.
alt/error_expr_not_ok_alt4.nit:67,1--18: Warning: use `loop` instead of `while true do`.
-alt/error_expr_not_ok_alt4.nit:69,24: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:69,1--25: Type Error: 'for' expects a type providing 'iterator' method, got 'Int'.
-alt/error_expr_not_ok_alt4.nit:69,1--25: Error: Method 'iterator' doesn't exists in Int.
-alt/error_expr_not_ok_alt4.nit:71,8--11: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt4.nit:72,7--15: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:73,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt4.nit:73,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:74,15--18: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt4.nit:74,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:75,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt4.nit:75,15--18: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt4.nit:75,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:76,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt4.nit:76,7--19: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:77,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt4.nit:77,16--19: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt4.nit:77,7--19: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:78,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt4.nit:78,16--19: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt4.nit:78,7--19: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:79,11--14: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt4.nit:79,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:80,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:81,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:82,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:83,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:84,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:85,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:86,7--30: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:87,7--30: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:88,7--33: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:89,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:90,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:91,7--17: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:92,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:93,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:94,7--17: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:95,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:96,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:97,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:98,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:99,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:100,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt4.nit:101,7--16: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:102,7--16: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:103,7--19: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:104,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:105,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:106,7--17: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:107,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:108,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:109,7--17: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:110,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:111,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:112,7--17: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:113,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:114,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:115,7--17: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:116,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:117,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:118,7--17: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:119,7--11: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:122,7--15: Error: Attribute _fail doesn't exists in String.
-alt/error_expr_not_ok_alt4.nit:123,1--13: Error: Attribute _fail doesn't exists in String.
-alt/error_expr_not_ok_alt4.nit:124,1--14: Error: Attribute _fail doesn't exists in String.
-alt/error_expr_not_ok_alt4.nit:126,7--13: Error: Attribute _x doesn't exists in Int.
-alt/error_expr_not_ok_alt4.nit:127,1--11: Error: Attribute _x doesn't exists in Int.
-alt/error_expr_not_ok_alt4.nit:128,1--12: Error: Attribute _x doesn't exists in Int.
-alt/error_expr_not_ok_alt4.nit:131,7--15: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:134,7--13: Error: Method '[]' doesn't exists in Int.
-alt/error_expr_not_ok_alt4.nit:135,1--11: Error: Method '[]=' doesn't exists in Int.
-alt/error_expr_not_ok_alt4.nit:136,1--12: Error: Method '[]' doesn't exists in Int.
-alt/error_expr_not_ok_alt4.nit:137,1--17: Error: Method '[]=' doesn't exists in Int.
-alt/error_expr_not_ok_alt4.nit:139,7--15: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt4.nit:140,7--15: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt4.nit:141,7--18: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt4.nit:142,7--15: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt4.nit:143,7--15: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt4.nit:144,7--18: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt4.nit:145,7--15: Type error: expected A, got Array[Int]
-alt/error_expr_not_ok_alt4.nit:146,7--15: Type error: expected A, got Array[Int]
-alt/error_expr_not_ok_alt4.nit:147,7--18: Type error: expected A, got Array[Int]
-alt/error_expr_not_ok_alt4.nit:149,7--24: Type error: expected A, got String
-alt/error_expr_not_ok_alt4.nit:150,7--18: Warning: Expression is already a Int.
-alt/error_expr_not_ok_alt4.nit:150,7--18: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:151,7--23: Warning: expression is already not null, since it is a `Int`.
-alt/error_expr_not_ok_alt4.nit:151,7--23: Type error: expected A, got Int
-alt/error_expr_not_ok_alt4.nit:152,7--18: Warning: Expression is already a Int.
-alt/error_expr_not_ok_alt4.nit:152,7--18: Type error: expected A, got Bool
+alt/error_expr_not_ok_alt4.nit:69,24: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:69,1--25: Type Error: `for` expects a type providing an `iterator` method, got `Int`.
+alt/error_expr_not_ok_alt4.nit:69,1--25: Error: method `iterator` does not exists in `Int`.
+alt/error_expr_not_ok_alt4.nit:71,8--11: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:72,7--15: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:73,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:73,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:74,15--18: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:74,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:75,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:75,15--18: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:75,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:76,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:76,7--19: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:77,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:77,16--19: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:77,7--19: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:78,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:78,16--19: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:78,7--19: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:79,11--14: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:79,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:80,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:81,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:82,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:83,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:84,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:85,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:86,7--30: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:87,7--30: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:88,7--33: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:89,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:90,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:91,7--17: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:92,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:93,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:94,7--17: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:95,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:96,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:97,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:98,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:99,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:100,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt4.nit:101,7--16: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:102,7--16: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:103,7--19: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:104,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:105,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:106,7--17: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:107,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:108,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:109,7--17: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:110,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:111,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:112,7--17: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:113,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:114,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:115,7--17: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:116,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:117,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:118,7--17: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:119,7--11: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:122,11--15: Error: attribute `_fail` does not exist in `String`.
+alt/error_expr_not_ok_alt4.nit:123,5--9: Error: attribute `_fail` does not exist in `String`.
+alt/error_expr_not_ok_alt4.nit:124,5--9: Error: attribute `_fail` does not exist in `String`.
+alt/error_expr_not_ok_alt4.nit:126,12--13: Error: attribute `_x` does not exist in `Int`.
+alt/error_expr_not_ok_alt4.nit:127,6--7: Error: attribute `_x` does not exist in `Int`.
+alt/error_expr_not_ok_alt4.nit:128,6--7: Error: attribute `_x` does not exist in `Int`.
+alt/error_expr_not_ok_alt4.nit:131,7--15: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:134,7--13: Error: method `[]` does not exists in `Int`.
+alt/error_expr_not_ok_alt4.nit:135,1--11: Error: method `[]=` does not exists in `Int`.
+alt/error_expr_not_ok_alt4.nit:136,1--12: Error: method `[]` does not exists in `Int`.
+alt/error_expr_not_ok_alt4.nit:137,1--17: Error: method `[]=` does not exists in `Int`.
+alt/error_expr_not_ok_alt4.nit:139,7--15: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt4.nit:140,7--15: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt4.nit:141,7--18: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt4.nit:142,7--15: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt4.nit:143,7--15: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt4.nit:144,7--18: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt4.nit:145,7--15: Type Error: expected `A`, got `Array[Int]`.
+alt/error_expr_not_ok_alt4.nit:146,7--15: Type Error: expected `A`, got `Array[Int]`.
+alt/error_expr_not_ok_alt4.nit:147,7--18: Type Error: expected `A`, got `Array[Int]`.
+alt/error_expr_not_ok_alt4.nit:149,7--24: Type Error: expected `A`, got `String`.
+alt/error_expr_not_ok_alt4.nit:150,7--18: Warning: expression is already a `Int`.
+alt/error_expr_not_ok_alt4.nit:150,7--18: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:151,7--10: Warning: expression is not null, since it is a `Int`.
+alt/error_expr_not_ok_alt4.nit:151,7--23: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt4.nit:152,7--18: Warning: expression is already a `Int`.
+alt/error_expr_not_ok_alt4.nit:152,7--18: Type Error: expected `A`, got `Bool`.
-alt/error_expr_not_ok_alt5.nit:19,18--21: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt5.nit:21,11--14: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt5.nit:22,26--29: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt5.nit:24,8--11: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt5.nit:25,9--12: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt5.nit:37,8--15: Error: Method or variable 'fail2' unknown in Sys.
-alt/error_expr_not_ok_alt5.nit:40,1--7: Error: Method 'fail' doesn't exists in Int.
-alt/error_expr_not_ok_alt5.nit:42,7--9: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:43,1--8: Error: Method 'fail' doesn't exists in Int.
-alt/error_expr_not_ok_alt5.nit:60,4--7: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt5.nit:60,20: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:62,10--13: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt5.nit:62,7--27: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:63,7--30: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:64,7--33: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:66,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt5.nit:66,21: Type error: expected A, got Int
+alt/error_expr_not_ok_alt5.nit:19,18--21: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt5.nit:21,11--14: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt5.nit:22,26--29: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt5.nit:24,8--11: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt5.nit:25,9--12: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt5.nit:37,8--12: Error: method or variable `fail2` unknown in `Sys`.
+alt/error_expr_not_ok_alt5.nit:40,4--7: Error: method `fail` does not exists in `Int`.
+alt/error_expr_not_ok_alt5.nit:42,7--9: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:43,5--8: Error: method `fail` does not exists in `Int`.
+alt/error_expr_not_ok_alt5.nit:60,4--7: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:60,20: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:62,10--13: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:62,7--27: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:63,7--30: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:64,7--33: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:66,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:66,21: Type Error: expected `A`, got `Int`.
alt/error_expr_not_ok_alt5.nit:67,1--18: Warning: use `loop` instead of `while true do`.
-alt/error_expr_not_ok_alt5.nit:69,24: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:69,1--25: Type Error: 'for' expects a type providing 'iterator' method, got 'Int'.
-alt/error_expr_not_ok_alt5.nit:69,1--25: Error: Method 'iterator' doesn't exists in Int.
-alt/error_expr_not_ok_alt5.nit:71,8--11: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt5.nit:72,7--15: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:73,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt5.nit:73,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:74,15--18: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt5.nit:74,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:75,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt5.nit:75,15--18: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt5.nit:75,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:76,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt5.nit:76,7--19: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:77,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt5.nit:77,16--19: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt5.nit:77,7--19: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:78,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt5.nit:78,16--19: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt5.nit:78,7--19: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:79,11--14: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt5.nit:79,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:80,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:81,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:82,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:83,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:84,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:85,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:86,7--30: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:87,7--30: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:88,7--33: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:89,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:90,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:91,7--17: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:92,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:93,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:94,7--17: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:95,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:96,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:97,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:98,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:99,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:100,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt5.nit:101,7--16: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:102,7--16: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:103,7--19: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:104,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:105,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:106,7--17: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:107,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:108,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:109,7--17: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:110,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:111,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:112,7--17: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:113,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:114,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:115,7--17: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:116,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:117,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:118,7--17: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:119,7--11: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:122,7--15: Error: Attribute _fail doesn't exists in String.
-alt/error_expr_not_ok_alt5.nit:123,1--13: Error: Attribute _fail doesn't exists in String.
-alt/error_expr_not_ok_alt5.nit:124,1--14: Error: Attribute _fail doesn't exists in String.
-alt/error_expr_not_ok_alt5.nit:126,7--13: Error: Attribute _x doesn't exists in Int.
-alt/error_expr_not_ok_alt5.nit:127,1--11: Error: Attribute _x doesn't exists in Int.
-alt/error_expr_not_ok_alt5.nit:128,1--12: Error: Attribute _x doesn't exists in Int.
-alt/error_expr_not_ok_alt5.nit:131,7--15: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:134,7--13: Error: Method '[]' doesn't exists in Int.
-alt/error_expr_not_ok_alt5.nit:135,1--11: Error: Method '[]=' doesn't exists in Int.
-alt/error_expr_not_ok_alt5.nit:136,1--12: Error: Method '[]' doesn't exists in Int.
-alt/error_expr_not_ok_alt5.nit:137,1--17: Error: Method '[]=' doesn't exists in Int.
-alt/error_expr_not_ok_alt5.nit:139,7--15: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt5.nit:140,7--15: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt5.nit:141,7--18: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt5.nit:142,7--15: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt5.nit:143,7--15: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt5.nit:144,7--18: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt5.nit:145,7--15: Type error: expected A, got Array[Int]
-alt/error_expr_not_ok_alt5.nit:146,7--15: Type error: expected A, got Array[Int]
-alt/error_expr_not_ok_alt5.nit:147,7--18: Type error: expected A, got Array[Int]
-alt/error_expr_not_ok_alt5.nit:149,7--24: Type error: expected A, got String
-alt/error_expr_not_ok_alt5.nit:150,7--18: Warning: Expression is already a Int.
-alt/error_expr_not_ok_alt5.nit:150,7--18: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:151,7--23: Warning: expression is already not null, since it is a `Int`.
-alt/error_expr_not_ok_alt5.nit:151,7--23: Type error: expected A, got Int
-alt/error_expr_not_ok_alt5.nit:152,7--18: Warning: Expression is already a Int.
-alt/error_expr_not_ok_alt5.nit:152,7--18: Type error: expected A, got Bool
+alt/error_expr_not_ok_alt5.nit:69,24: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:69,1--25: Type Error: `for` expects a type providing an `iterator` method, got `Int`.
+alt/error_expr_not_ok_alt5.nit:69,1--25: Error: method `iterator` does not exists in `Int`.
+alt/error_expr_not_ok_alt5.nit:71,8--11: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:72,7--15: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:73,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:73,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:74,15--18: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:74,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:75,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:75,15--18: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:75,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:76,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:76,7--19: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:77,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:77,16--19: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:77,7--19: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:78,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:78,16--19: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:78,7--19: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:79,11--14: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:79,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:80,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:81,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:82,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:83,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:84,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:85,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:86,7--30: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:87,7--30: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:88,7--33: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:89,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:90,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:91,7--17: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:92,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:93,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:94,7--17: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:95,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:96,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:97,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:98,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:99,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:100,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt5.nit:101,7--16: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:102,7--16: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:103,7--19: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:104,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:105,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:106,7--17: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:107,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:108,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:109,7--17: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:110,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:111,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:112,7--17: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:113,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:114,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:115,7--17: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:116,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:117,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:118,7--17: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:119,7--11: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:122,11--15: Error: attribute `_fail` does not exist in `String`.
+alt/error_expr_not_ok_alt5.nit:123,5--9: Error: attribute `_fail` does not exist in `String`.
+alt/error_expr_not_ok_alt5.nit:124,5--9: Error: attribute `_fail` does not exist in `String`.
+alt/error_expr_not_ok_alt5.nit:126,12--13: Error: attribute `_x` does not exist in `Int`.
+alt/error_expr_not_ok_alt5.nit:127,6--7: Error: attribute `_x` does not exist in `Int`.
+alt/error_expr_not_ok_alt5.nit:128,6--7: Error: attribute `_x` does not exist in `Int`.
+alt/error_expr_not_ok_alt5.nit:131,7--15: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:134,7--13: Error: method `[]` does not exists in `Int`.
+alt/error_expr_not_ok_alt5.nit:135,1--11: Error: method `[]=` does not exists in `Int`.
+alt/error_expr_not_ok_alt5.nit:136,1--12: Error: method `[]` does not exists in `Int`.
+alt/error_expr_not_ok_alt5.nit:137,1--17: Error: method `[]=` does not exists in `Int`.
+alt/error_expr_not_ok_alt5.nit:139,7--15: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt5.nit:140,7--15: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt5.nit:141,7--18: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt5.nit:142,7--15: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt5.nit:143,7--15: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt5.nit:144,7--18: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt5.nit:145,7--15: Type Error: expected `A`, got `Array[Int]`.
+alt/error_expr_not_ok_alt5.nit:146,7--15: Type Error: expected `A`, got `Array[Int]`.
+alt/error_expr_not_ok_alt5.nit:147,7--18: Type Error: expected `A`, got `Array[Int]`.
+alt/error_expr_not_ok_alt5.nit:149,7--24: Type Error: expected `A`, got `String`.
+alt/error_expr_not_ok_alt5.nit:150,7--18: Warning: expression is already a `Int`.
+alt/error_expr_not_ok_alt5.nit:150,7--18: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:151,7--10: Warning: expression is not null, since it is a `Int`.
+alt/error_expr_not_ok_alt5.nit:151,7--23: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt5.nit:152,7--18: Warning: expression is already a `Int`.
+alt/error_expr_not_ok_alt5.nit:152,7--18: Type Error: expected `A`, got `Bool`.
-alt/error_expr_not_ok_alt6.nit:19,18--21: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt6.nit:21,11--14: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt6.nit:22,26--29: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt6.nit:24,8--11: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt6.nit:25,9--12: Error: Method or variable 'fail' unknown in A.
-alt/error_expr_not_ok_alt6.nit:40,1--7: Error: Method 'fail' doesn't exists in Int.
-alt/error_expr_not_ok_alt6.nit:41,16--19: Type error: expected Int, got null
-alt/error_expr_not_ok_alt6.nit:42,7--9: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:43,1--8: Error: Method 'fail' doesn't exists in Int.
-alt/error_expr_not_ok_alt6.nit:45,7--10: Type error: expected A, got null
-alt/error_expr_not_ok_alt6.nit:46,1--9: Error: Method 'fail' call on 'null'.
-alt/error_expr_not_ok_alt6.nit:49,7--10: Type error: expected A, got null
-alt/error_expr_not_ok_alt6.nit:50,1--10: Error: Method 'trash' call on 'null'.
-alt/error_expr_not_ok_alt6.nit:60,4--7: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt6.nit:60,20: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:62,10--13: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt6.nit:62,7--27: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:63,7--30: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:64,7--33: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:66,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt6.nit:66,21: Type error: expected A, got Int
+alt/error_expr_not_ok_alt6.nit:19,18--21: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt6.nit:21,11--14: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt6.nit:22,26--29: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt6.nit:24,8--11: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt6.nit:25,9--12: Error: method or variable `fail` unknown in `A`.
+alt/error_expr_not_ok_alt6.nit:40,4--7: Error: method `fail` does not exists in `Int`.
+alt/error_expr_not_ok_alt6.nit:41,16--19: Type Error: expected `Int`, got `null`.
+alt/error_expr_not_ok_alt6.nit:42,7--9: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:43,5--8: Error: method `fail` does not exists in `Int`.
+alt/error_expr_not_ok_alt6.nit:45,7--10: Type Error: expected `A`, got `null`.
+alt/error_expr_not_ok_alt6.nit:46,6--9: Error: method `fail` called on `null`.
+alt/error_expr_not_ok_alt6.nit:49,7--10: Type Error: expected `A`, got `null`.
+alt/error_expr_not_ok_alt6.nit:50,6--10: Error: method `trash` called on `null`.
+alt/error_expr_not_ok_alt6.nit:60,4--7: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:60,20: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:62,10--13: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:62,7--27: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:63,7--30: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:64,7--33: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:66,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:66,21: Type Error: expected `A`, got `Int`.
alt/error_expr_not_ok_alt6.nit:67,1--18: Warning: use `loop` instead of `while true do`.
-alt/error_expr_not_ok_alt6.nit:69,24: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:69,1--25: Type Error: 'for' expects a type providing 'iterator' method, got 'Int'.
-alt/error_expr_not_ok_alt6.nit:69,1--25: Error: Method 'iterator' doesn't exists in Int.
-alt/error_expr_not_ok_alt6.nit:71,8--11: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt6.nit:72,7--15: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:73,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt6.nit:73,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:74,15--18: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt6.nit:74,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:75,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt6.nit:75,15--18: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt6.nit:75,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:76,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt6.nit:76,7--19: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:77,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt6.nit:77,16--19: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt6.nit:77,7--19: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:78,7--10: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt6.nit:78,16--19: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt6.nit:78,7--19: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:79,11--14: Type error: expected Bool, got Int
-alt/error_expr_not_ok_alt6.nit:79,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:80,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:81,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:82,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:83,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:84,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:85,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:86,7--30: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:87,7--30: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:88,7--33: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:89,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:90,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:91,7--17: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:92,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:93,7--14: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:94,7--17: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:95,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:96,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:97,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:98,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:99,7--15: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:100,7--18: Type error: expected A, got Bool
-alt/error_expr_not_ok_alt6.nit:101,7--16: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:102,7--16: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:103,7--19: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:104,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:105,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:106,7--17: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:107,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:108,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:109,7--17: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:110,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:111,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:112,7--17: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:113,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:114,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:115,7--17: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:116,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:117,7--14: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:118,7--17: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:119,7--11: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:122,7--15: Error: Attribute _fail doesn't exists in String.
-alt/error_expr_not_ok_alt6.nit:123,1--13: Error: Attribute _fail doesn't exists in String.
-alt/error_expr_not_ok_alt6.nit:124,1--14: Error: Attribute _fail doesn't exists in String.
-alt/error_expr_not_ok_alt6.nit:126,7--13: Error: Attribute _x doesn't exists in Int.
-alt/error_expr_not_ok_alt6.nit:127,1--11: Error: Attribute _x doesn't exists in Int.
-alt/error_expr_not_ok_alt6.nit:128,1--12: Error: Attribute _x doesn't exists in Int.
-alt/error_expr_not_ok_alt6.nit:131,7--15: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:134,7--13: Error: Method '[]' doesn't exists in Int.
-alt/error_expr_not_ok_alt6.nit:135,1--11: Error: Method '[]=' doesn't exists in Int.
-alt/error_expr_not_ok_alt6.nit:136,1--12: Error: Method '[]' doesn't exists in Int.
-alt/error_expr_not_ok_alt6.nit:137,1--17: Error: Method '[]=' doesn't exists in Int.
-alt/error_expr_not_ok_alt6.nit:139,7--15: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt6.nit:140,7--15: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt6.nit:141,7--18: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt6.nit:142,7--15: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt6.nit:143,7--15: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt6.nit:144,7--18: Type error: expected A, got Range[Int]
-alt/error_expr_not_ok_alt6.nit:145,7--15: Type error: expected A, got Array[Int]
-alt/error_expr_not_ok_alt6.nit:146,7--15: Type error: expected A, got Array[Int]
-alt/error_expr_not_ok_alt6.nit:147,7--18: Type error: expected A, got Array[Int]
-alt/error_expr_not_ok_alt6.nit:149,7--24: Type error: expected A, got String
-alt/error_expr_not_ok_alt6.nit:150,7--18: Warning: Expression is already a Int.
-alt/error_expr_not_ok_alt6.nit:150,7--18: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:151,7--23: Warning: expression is already not null, since it is a `Int`.
-alt/error_expr_not_ok_alt6.nit:151,7--23: Type error: expected A, got Int
-alt/error_expr_not_ok_alt6.nit:152,7--18: Warning: Expression is already a Int.
-alt/error_expr_not_ok_alt6.nit:152,7--18: Type error: expected A, got Bool
+alt/error_expr_not_ok_alt6.nit:69,24: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:69,1--25: Type Error: `for` expects a type providing an `iterator` method, got `Int`.
+alt/error_expr_not_ok_alt6.nit:69,1--25: Error: method `iterator` does not exists in `Int`.
+alt/error_expr_not_ok_alt6.nit:71,8--11: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:72,7--15: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:73,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:73,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:74,15--18: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:74,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:75,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:75,15--18: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:75,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:76,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:76,7--19: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:77,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:77,16--19: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:77,7--19: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:78,7--10: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:78,16--19: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:78,7--19: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:79,11--14: Type Error: expected `Bool`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:79,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:80,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:81,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:82,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:83,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:84,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:85,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:86,7--30: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:87,7--30: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:88,7--33: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:89,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:90,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:91,7--17: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:92,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:93,7--14: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:94,7--17: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:95,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:96,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:97,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:98,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:99,7--15: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:100,7--18: Type Error: expected `A`, got `Bool`.
+alt/error_expr_not_ok_alt6.nit:101,7--16: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:102,7--16: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:103,7--19: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:104,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:105,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:106,7--17: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:107,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:108,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:109,7--17: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:110,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:111,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:112,7--17: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:113,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:114,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:115,7--17: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:116,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:117,7--14: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:118,7--17: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:119,7--11: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:122,11--15: Error: attribute `_fail` does not exist in `String`.
+alt/error_expr_not_ok_alt6.nit:123,5--9: Error: attribute `_fail` does not exist in `String`.
+alt/error_expr_not_ok_alt6.nit:124,5--9: Error: attribute `_fail` does not exist in `String`.
+alt/error_expr_not_ok_alt6.nit:126,12--13: Error: attribute `_x` does not exist in `Int`.
+alt/error_expr_not_ok_alt6.nit:127,6--7: Error: attribute `_x` does not exist in `Int`.
+alt/error_expr_not_ok_alt6.nit:128,6--7: Error: attribute `_x` does not exist in `Int`.
+alt/error_expr_not_ok_alt6.nit:131,7--15: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:134,7--13: Error: method `[]` does not exists in `Int`.
+alt/error_expr_not_ok_alt6.nit:135,1--11: Error: method `[]=` does not exists in `Int`.
+alt/error_expr_not_ok_alt6.nit:136,1--12: Error: method `[]` does not exists in `Int`.
+alt/error_expr_not_ok_alt6.nit:137,1--17: Error: method `[]=` does not exists in `Int`.
+alt/error_expr_not_ok_alt6.nit:139,7--15: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt6.nit:140,7--15: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt6.nit:141,7--18: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt6.nit:142,7--15: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt6.nit:143,7--15: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt6.nit:144,7--18: Type Error: expected `A`, got `Range[Int]`.
+alt/error_expr_not_ok_alt6.nit:145,7--15: Type Error: expected `A`, got `Array[Int]`.
+alt/error_expr_not_ok_alt6.nit:146,7--15: Type Error: expected `A`, got `Array[Int]`.
+alt/error_expr_not_ok_alt6.nit:147,7--18: Type Error: expected `A`, got `Array[Int]`.
+alt/error_expr_not_ok_alt6.nit:149,7--24: Type Error: expected `A`, got `String`.
+alt/error_expr_not_ok_alt6.nit:150,7--18: Warning: expression is already a `Int`.
+alt/error_expr_not_ok_alt6.nit:150,7--18: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:151,7--10: Warning: expression is not null, since it is a `Int`.
+alt/error_expr_not_ok_alt6.nit:151,7--23: Type Error: expected `A`, got `Int`.
+alt/error_expr_not_ok_alt6.nit:152,7--18: Warning: expression is already a `Int`.
+alt/error_expr_not_ok_alt6.nit:152,7--18: Type Error: expected `A`, got `Bool`.
-error_for_coll.nit:17,1--18,3: Error: Method 'iterator' doesn't exists in Int.
-error_for_coll.nit:17,1--18,3: Type Error: 'for' expects a type providing 'iterator' method, got 'Int'.
+error_for_coll.nit:17,1--18,3: Error: method `iterator` does not exists in `Int`.
+error_for_coll.nit:17,1--18,3: Type Error: `for` expects a type providing an `iterator` method, got `Int`.
-error_formal.nit:18,9--13: Type error: formal type T cannot have formal parameters.
+error_formal.nit:18,9--13: Type Error: formal type `T` cannot have formal parameters.
-error_formal_name.nit:17,9--11: Warning: lowercase in the formal parameter type Foo
-error_formal_name.nit:18,7--9: Warning: lowercase in the virtual type Bar
+error_formal_name.nit:17,9--11: Warning: lowercase in the formal parameter type `Foo`.
+error_formal_name.nit:18,7--9: Warning: lowercase in the virtual type `Bar`.
-error_fun_ret.nit:17,5--8: Control error: Reached end of function (a 'return' with a value was expected).
+error_fun_ret.nit:17,5--8: Error: reached end of function; expected `return` with a value.
-error_fun_ret2.nit:17,5--8: Control error: Reached end of function (a 'return' with a value was expected).
+error_fun_ret2.nit:17,5--8: Error: reached end of function; expected `return` with a value.
-error_fun_ret3.nit:17,5--8: Control error: Reached end of function (a 'return' with a value was expected).
+error_fun_ret3.nit:17,5--8: Error: reached end of function; expected `return` with a value.
-error_fun_ret4.nit:17,5--8: Control error: Reached end of function (a 'return' with a value was expected).
+error_fun_ret4.nit:17,5--8: Error: reached end of function; expected `return` with a value.
error_fun_ret4.nit:19,2--22,4: Warning: use `loop` instead of `while true do`.
-error_fun_ret5.nit:17,5--8: Control error: Reached end of function (a 'return' with a value was expected).
+error_fun_ret5.nit:17,5--8: Error: reached end of function; expected `return` with a value.
-base_gen_f.nit:19,14: Type error: class E not found in module base_gen_f.
+base_gen_f.nit:19,14: Error: class `E` not found in module `base_gen_f`.
-error_if_bool.nit:17,4: Type error: expected Bool, got Int
+error_if_bool.nit:17,4: Type Error: expected `Bool`, got `Int`.
-error_inh_clash.nit:17,7: Error: Incompatibles ancestors for A: Array[Int], Array[Char]
+error_inh_clash.nit:17,7: Error: incompatible ancestors for `A`; conflict: `Array[Int]` and `Array[Char]`
-error_inh_clash2.nit:23,7: Error: Incompatibles ancestors for C: Array[Char], Array[Int]
+error_inh_clash2.nit:23,7: Error: incompatible ancestors for `C`; conflict: `Array[Char]` and `Array[Int]`
-error_inh_clash3.nit:23,7: Error: Incompatibles ancestors for C: Sequence[Char], Sequence[Int]
-error_inh_clash3.nit:23,7: Error: Incompatibles ancestors for C: SequenceRead[Char], SequenceRead[Int]
+error_inh_clash3.nit:23,7: Error: incompatible ancestors for `C`; conflict: `Sequence[Char]` and `Sequence[Int]`
+error_inh_clash3.nit:23,7: Error: incompatible ancestors for `C`; conflict: `SequenceRead[Char]` and `SequenceRead[Int]`
-error_inh_clash4.nit:15,7: Error: Incompatibles ancestors for A: Sequence[F], Sequence[E]
-error_inh_clash4.nit:15,7: Error: Incompatibles ancestors for A: SequenceRead[F], SequenceRead[E]
+error_inh_clash4.nit:15,7: Error: incompatible ancestors for `A`; conflict: `Sequence[F]` and `Sequence[E]`
+error_inh_clash4.nit:15,7: Error: incompatible ancestors for `A`; conflict: `SequenceRead[F]` and `SequenceRead[E]`
-error_inh_loop.nit:19,7: Error: Inheritance loop for class A with type B
-error_inh_loop.nit:23,7: Error: Inheritance loop for class B with type C
-error_inh_loop.nit:27,7: Error: Inheritance loop for class C with type A
+error_inh_loop.nit:19,7: Error: inheritance loop for class `A` with type `B`.
+error_inh_loop.nit:23,7: Error: inheritance loop for class `B` with type `C`.
+error_inh_loop.nit:27,7: Error: inheritance loop for class `C` with type `A`.
-error_init_auto.nit:34,5--9: Error: Incorrect number of parameters. Got 0, expected 1. Signature is (x: Int)
-error_init_auto.nit:36,5--15: Error: Incorrect number of parameters. Got 2, expected 1. Signature is (x: Int)
-error_init_auto.nit:37,5--18: Error: Incorrect number of parameters. Got 3, expected 1. Signature is (x: Int)
-error_init_auto.nit:38,5--16: Error: Method 'foo' doesn't exists in A.
+error_init_auto.nit:34,5--7: Error: expected 1 argument(s) for `init(x: Int)`; got 0. See introduction at `standard::Object::init`.
+error_init_auto.nit:36,5--7: Error: expected 1 argument(s) for `init(x: Int)`; got 2. See introduction at `standard::Object::init`.
+error_init_auto.nit:37,5--7: Error: expected 1 argument(s) for `init(x: Int)`; got 3. See introduction at `standard::Object::init`.
+error_init_auto.nit:38,11--13: Error: method `foo` does not exists in `A`.
-alt/error_init_auto_alt1.nit:35,5--12: Error: Incorrect number of parameters. Got 1, expected 0. Signature is
-alt/error_init_auto_alt1.nit:36,5--15: Error: Incorrect number of parameters. Got 2, expected 0. Signature is
-alt/error_init_auto_alt1.nit:37,5--18: Error: Incorrect number of parameters. Got 3, expected 0. Signature is
-alt/error_init_auto_alt1.nit:38,5--16: Error: Method 'foo' doesn't exists in A.
+alt/error_init_auto_alt1.nit:35,5--7: Error: expected 0 argument(s) for `init`; got 1. See introduction at `standard::Object::init`.
+alt/error_init_auto_alt1.nit:36,5--7: Error: expected 0 argument(s) for `init`; got 2. See introduction at `standard::Object::init`.
+alt/error_init_auto_alt1.nit:37,5--7: Error: expected 0 argument(s) for `init`; got 3. See introduction at `standard::Object::init`.
+alt/error_init_auto_alt1.nit:38,11--13: Error: method `foo` does not exists in `A`.
-alt/error_init_auto_alt2.nit:34,5--9: Error: Incorrect number of parameters. Got 0, expected 2. Signature is (x: Int, y: Int)
-alt/error_init_auto_alt2.nit:35,5--12: Error: Incorrect number of parameters. Got 1, expected 2. Signature is (x: Int, y: Int)
-alt/error_init_auto_alt2.nit:37,5--18: Error: Incorrect number of parameters. Got 3, expected 2. Signature is (x: Int, y: Int)
-alt/error_init_auto_alt2.nit:38,5--16: Error: Method 'foo' doesn't exists in A.
+alt/error_init_auto_alt2.nit:34,5--7: Error: expected 2 argument(s) for `init(x: Int, y: Int)`; got 0. See introduction at `standard::Object::init`.
+alt/error_init_auto_alt2.nit:35,5--7: Error: expected 2 argument(s) for `init(x: Int, y: Int)`; got 1. See introduction at `standard::Object::init`.
+alt/error_init_auto_alt2.nit:37,5--7: Error: expected 2 argument(s) for `init(x: Int, y: Int)`; got 3. See introduction at `standard::Object::init`.
+alt/error_init_auto_alt2.nit:38,11--13: Error: method `foo` does not exists in `A`.
-alt/error_init_auto_alt3.nit:34,5--9: Error: Incorrect number of parameters. Got 0, expected 1. Signature is (xx: Int)
-alt/error_init_auto_alt3.nit:36,5--15: Error: Incorrect number of parameters. Got 2, expected 1. Signature is (xx: Int)
-alt/error_init_auto_alt3.nit:37,5--18: Error: Incorrect number of parameters. Got 3, expected 1. Signature is (xx: Int)
-alt/error_init_auto_alt3.nit:38,5--16: Error: Method 'foo' doesn't exists in A.
+alt/error_init_auto_alt3.nit:34,5--7: Error: expected 1 argument(s) for `init(xx: Int)`; got 0. See introduction at `error_init_auto_alt3::A::init`.
+alt/error_init_auto_alt3.nit:36,5--7: Error: expected 1 argument(s) for `init(xx: Int)`; got 2. See introduction at `error_init_auto_alt3::A::init`.
+alt/error_init_auto_alt3.nit:37,5--7: Error: expected 1 argument(s) for `init(xx: Int)`; got 3. See introduction at `error_init_auto_alt3::A::init`.
+alt/error_init_auto_alt3.nit:38,11--13: Error: method `foo` does not exists in `A`.
-alt/error_init_auto_alt4.nit:34,5--9: Error: Incorrect number of parameters. Got 0, expected 1. Signature is (x: Int)
-alt/error_init_auto_alt4.nit:36,5--15: Error: Incorrect number of parameters. Got 2, expected 1. Signature is (x: Int)
-alt/error_init_auto_alt4.nit:37,5--18: Error: Incorrect number of parameters. Got 3, expected 1. Signature is (x: Int)
+alt/error_init_auto_alt4.nit:34,5--7: Error: expected 1 argument(s) for `init(x: Int)`; got 0. See introduction at `standard::Object::init`.
+alt/error_init_auto_alt4.nit:36,5--7: Error: expected 1 argument(s) for `init(x: Int)`; got 2. See introduction at `standard::Object::init`.
+alt/error_init_auto_alt4.nit:37,5--7: Error: expected 1 argument(s) for `init(x: Int)`; got 3. See introduction at `standard::Object::init`.
-error_intern.nit:20,2--8: Fatal error: unknown intern method error_intern::A::foo.
+Runtime error: uncompiled method `foo` called on `A`. NOT YET IMPLEMENTED (error_intern.nit:20)
-error_kern_attr_any.nit:18,6--9: Error: Attempt to define attribute toto in the interface Object.
+error_kern_attr_any.nit:18,6--9: Error: attempt to define attribute `toto` in the interface `Object`.
-error_kern_attr_int.nit:18,6--9: Error: Attempt to define attribute toto in the enum class Int.
+error_kern_attr_int.nit:18,6--9: Error: attempt to define attribute `toto` in the enum `Int`.
-error_left_bool.nit:17,4: Type error: expected Bool, got Int
+error_left_bool.nit:17,4: Type Error: expected `Bool`, got `Int`.
-error_loop_bool_while.nit:17,7: Type error: expected Bool, got Int
+error_loop_bool_while.nit:17,7: Type Error: expected `Bool`, got `Int`.
-error_meth_2def.nit:19,6--9: Error: A property toto is already defined in class A at line 18.
+error_meth_2def.nit:19,6--9: Error: a property `toto` is already defined in class `A` at line 18.
-error_meth_2def2.nit:19,6--9: Error: A property toto is already defined in class A at line 18.
+error_meth_2def2.nit:19,6--9: Error: a property `toto` is already defined in class `A` at line 18.
-error_meth_create.nit:20,9--17: Error: foo is not a constructor.
+error_meth_create.nit:20,9--17: Error: `foo` is not a constructor.
-error_meth_unk1.nit:17,1--4: Error: Method or variable 'blub' unknown in Sys.
+error_meth_unk1.nit:17,1--4: Error: method or variable `blub` unknown in `Sys`.
-error_meth_unk2.nit:17,1--9: Error: Method or variable 'tabul=' unknown in Sys.
+error_meth_unk2.nit:17,1--5: Error: method or variable `tabul=` unknown in `Sys`.
-error_mod_unk.nit:17,8--11: Error: cannot find module dfgd from error_mod_unk. tried ., ../lib/standard, ../lib/standard/collection, alt, ../lib
+error_mod_unk.nit:17,8--11: Error: cannot find module `dfgd` from `error_mod_unk`. Tried: ., ../lib/standard, ../lib/standard/collection, alt, ../lib.
-alt/error_needed_method_alt1.nit:46,9--14: Error: Method 'with_capacity' doesn't exists in Array[Int].
-alt/error_needed_method_alt1.nit:46,9--14: Error: Method 'push' doesn't exists in Array[Int].
+alt/error_needed_method_alt1.nit:46,9--14: Error: method `with_capacity` does not exists in `Array[Int]`.
+alt/error_needed_method_alt1.nit:46,9--14: Error: method `push` does not exists in `Array[Int]`.
-alt/error_needed_method_alt2.nit:47,10--27: Type Error: Cannot instantiate interface Collection[Int].
+alt/error_needed_method_alt2.nit:47,10--27: Type Error: cannot instantiate interface `Collection[Int]`.
-alt/error_needed_method_alt3.nit:48,9--13: Fatal Error: NativeString must have a property named to_s_with_length.
+alt/error_needed_method_alt3.nit:48,9--13: Fatal Error: `NativeString` must have a property named `to_s_with_length`.
-Fatal Error: no primitive class NativeArray
+Fatal Error: no primitive class NativeArray in error_needed_method_alt4
-alt/error_needed_method_alt6.nit:51,9--15: Error: Method 'without_last' doesn't exists in Range[Int].
+alt/error_needed_method_alt6.nit:51,9--15: Error: method `without_last` does not exists in `Range[Int]`.
-Fatal Error: no primitive class NativeArray
+Fatal Error: no primitive class NativeArray in error_needed_method_alt7
-alt/error_needed_types_alt8.nit:21,1--22,3: Error: Method 'iterator' doesn't exists in L.
-alt/error_needed_types_alt8.nit:21,1--22,3: Type Error: 'for' expects a type providing 'iterator' method, got 'L'.
+alt/error_needed_types_alt8.nit:21,1--22,3: Error: method `iterator` does not exists in `L`.
+alt/error_needed_types_alt8.nit:21,1--22,3: Type Error: `for` expects a type providing an `iterator` method, got `L`.
--- /dev/null
+error_operators.nit:17,6: Error: mandatory return type for `unary +`.
+error_operators.nit:18,6: Error: mandatory return type for `+`.
+error_operators.nit:19,6: Error: mandatory return type for `unary -`.
+error_operators.nit:20,6: Error: mandatory return type for `-`.
+error_operators.nit:21,6: Error: mandatory return type for `*`.
+error_operators.nit:22,6: Error: mandatory return type for `/`.
+error_operators.nit:23,6: Error: mandatory return type for `%`.
+error_operators.nit:24,6: Error: mandatory return type for `<`.
+error_operators.nit:25,6: Error: mandatory return type for `>`.
+error_operators.nit:26,6--7: Error: mandatory return type for `<=`.
+error_operators.nit:27,6--7: Error: mandatory return type for `>=`.
+error_operators.nit:28,6--8: Error: mandatory return type for `<=>`.
+error_operators.nit:29,6--7: Error: mandatory return type for `<<`.
+error_operators.nit:30,6--7: Error: mandatory return type for `>>`.
+error_operators.nit:32,6--7: Error: mandatory return type for `[]`.
+error_operators.nit:40,9: Syntax Error: binary operator `*` requires exactly one parameter; got 0.
+error_operators.nit:41,9: Syntax Error: binary operator `/` requires exactly one parameter; got 0.
+error_operators.nit:42,9: Syntax Error: binary operator `%` requires exactly one parameter; got 0.
+error_operators.nit:43,9: Syntax Error: binary operator `<` requires exactly one parameter; got 0.
+error_operators.nit:44,9: Syntax Error: binary operator `>` requires exactly one parameter; got 0.
+error_operators.nit:45,10: Syntax Error: binary operator `<=` requires exactly one parameter; got 0.
+error_operators.nit:46,10: Syntax Error: binary operator `>=` requires exactly one parameter; got 0.
+error_operators.nit:47,11: Syntax Error: binary operator `<=>` requires exactly one parameter; got 0.
+error_operators.nit:48,10: Syntax Error: binary operator `<<` requires exactly one parameter; got 0.
+error_operators.nit:49,10: Syntax Error: binary operator `>>` requires exactly one parameter; got 0.
+error_operators.nit:50,14: Syntax Error: `foo=` requires at least 1 parameter(s); got 0.
+error_operators.nit:51,10: Syntax Error: `[]` requires at least 1 parameter(s); got 0.
+error_operators.nit:52,9--14: Syntax Error: `[]=` requires at least 2 parameter(s); got 1.
+error_operators.nit:57,7--18: Syntax Error: binary operator `+` requires exactly one parameter; got 3.
+error_operators.nit:58,7--18: Syntax Error: binary operator `-` requires exactly one parameter; got 3.
+error_operators.nit:59,7--18: Syntax Error: binary operator `*` requires exactly one parameter; got 3.
+error_operators.nit:60,7--18: Syntax Error: binary operator `/` requires exactly one parameter; got 3.
+error_operators.nit:61,7--18: Syntax Error: binary operator `%` requires exactly one parameter; got 3.
+error_operators.nit:62,7--18: Syntax Error: binary operator `<` requires exactly one parameter; got 3.
+error_operators.nit:63,7--18: Syntax Error: binary operator `>` requires exactly one parameter; got 3.
+error_operators.nit:64,8--19: Syntax Error: binary operator `<=` requires exactly one parameter; got 3.
+error_operators.nit:65,8--19: Syntax Error: binary operator `>=` requires exactly one parameter; got 3.
+error_operators.nit:66,9--20: Syntax Error: binary operator `<=>` requires exactly one parameter; got 3.
+error_operators.nit:67,8--19: Syntax Error: binary operator `<<` requires exactly one parameter; got 3.
+error_operators.nit:68,8--19: Syntax Error: binary operator `>>` requires exactly one parameter; got 3.
+error_operators.nit:76,8--13: Error: illegal variadic parameter `a: A...` for `+`.
+error_operators.nit:77,8--13: Error: illegal variadic parameter `a: A...` for `-`.
+error_operators.nit:78,8--13: Error: illegal variadic parameter `a: A...` for `*`.
+error_operators.nit:79,8--13: Error: illegal variadic parameter `a: A...` for `/`.
+error_operators.nit:80,8--13: Error: illegal variadic parameter `a: A...` for `%`.
+error_operators.nit:81,8--13: Error: illegal variadic parameter `a: A...` for `<`.
+error_operators.nit:82,8--13: Error: illegal variadic parameter `a: A...` for `>`.
+error_operators.nit:83,9--14: Error: illegal variadic parameter `a: A...` for `<=`.
+error_operators.nit:84,9--14: Error: illegal variadic parameter `a: A...` for `>=`.
+error_operators.nit:85,10--15: Error: illegal variadic parameter `a: A...` for `<=>`.
+error_operators.nit:86,9--14: Error: illegal variadic parameter `a: A...` for `<<`.
+error_operators.nit:87,9--14: Error: illegal variadic parameter `a: A...` for `>>`.
+error_operators.nit:88,20--25: Error: illegal variadic parameter `d: A...` for `foo=`.
+error_operators.nit:90,19--24: Error: illegal variadic parameter `d: A...` for `[]=`.
-error_parser_oneline_bad_char.nit:1,1--2: Syntax error: unexpected malformed character 'h.
+error_parser_oneline_bad_char.nit:1,1--2: Syntax Error: unexpected malformed character 'h.
-error_parser_oneline_bad_char_empty.nit:1,1--2: Syntax error: unexpected malformed character ''.
+error_parser_oneline_bad_char_empty.nit:1,1--2: Syntax Error: unexpected malformed character ''.
-error_parser_oneline_bad_char_full.nit:1,1--2: Syntax error: unexpected malformed character 'h.
+error_parser_oneline_bad_char_full.nit:1,1--2: Syntax Error: unexpected malformed character 'h.
-error_parser_oneline_bad_char_noeol.nit:1,1--2: Syntax error: unexpected malformed character 'h.
+error_parser_oneline_bad_char_noeol.nit:1,1--2: Syntax Error: unexpected malformed character 'h.
-error_parser_oneline_bad_string.nit:1,1--6: Syntax error: unexpected malformed string "hello.
+error_parser_oneline_bad_string.nit:1,1--6: Syntax Error: unexpected malformed string "hello.
-error_parser_oneline_bad_string_noeol.nit:1,1--6: Syntax error: unexpected malformed string "hello.
+error_parser_oneline_bad_string_noeol.nit:1,1--6: Syntax Error: unexpected malformed string "hello.
-error_parser_oneline_char.nit:1,4--2,0: Syntax error: unexpected end of line.
+error_parser_oneline_char.nit:1,4--2,0: Syntax Error: unexpected end of line.
-error_parser_oneline_char_noeol.nit:1,4: Syntax error: unexpected end of file.
+error_parser_oneline_char_noeol.nit:1,4: Syntax Error: unexpected end of file.
-error_parser_oneline_string.nit:1,8--2,0: Syntax error: unexpected end of line.
+error_parser_oneline_string.nit:1,8--2,0: Syntax Error: unexpected end of line.
-error_parser_oneline_string_noeol.nit:1,8: Syntax error: unexpected end of file.
+error_parser_oneline_string_noeol.nit:1,8: Syntax Error: unexpected end of file.
-error_parser_oneline_string_start.nit:2,1: Syntax error: unexpected end of file.
+error_parser_oneline_string_start.nit:2,1: Syntax Error: unexpected end of file.
-error_parser_oneline_string_start_noeol.nit:1,8: Syntax error: unexpected end of file.
+error_parser_oneline_string_start_noeol.nit:1,8: Syntax Error: unexpected end of file.
-alt/error_prop_loc_alt1.nit:38,1--12: Warning: conflicting property definitions for property toto in D: error_prop_loc_alt1#B#toto error_prop_loc_alt1#C#toto
+alt/error_prop_loc_alt1.nit:38,9--12: Warning: conflicting property definitions for property `toto` in `D`: error_prop_loc_alt1#B#toto error_prop_loc_alt1#C#toto
1
2
3
-alt/error_prop_name_alt1.nit:34,1--5: Ambigous property name 'foo' for A; conflict between error_prop_name_m1::A::foo and error_prop_name_m2::B::foo
+alt/error_prop_name_alt1.nit:34,3--5: Error: ambiguous property name `foo` for `A`; conflict between error_prop_name_m1::A::foo and error_prop_name_m2::B::foo.
-alt/error_prop_name_alt2.nit:37,1--5: Ambigous property name 'bar' for A; conflict between error_prop_name_m1::A::bar and error_prop_name_alt2::C::bar
+alt/error_prop_name_alt2.nit:37,3--5: Error: ambiguous property name `bar` for `A`; conflict between error_prop_name_m1::A::bar and error_prop_name_alt2::C::bar.
-alt/error_prop_name_alt3.nit:27,12--14: Ambigous property name 'foo' for A; conflict between error_prop_name_m1::A::foo and error_prop_name_m2::B::foo
+alt/error_prop_name_alt3.nit:27,12--14: Error: ambiguous property name `foo` for `A`; conflict between error_prop_name_m1::A::foo and error_prop_name_m2::B::foo.
-alt/error_prop_name_alt4.nit:28,12--14: Ambigous property name 'bar' for A; conflict between error_prop_name_m1::A::bar and error_prop_name_alt4::C::bar
+alt/error_prop_name_alt4.nit:28,12--14: Error: ambiguous property name `bar` for `A`; conflict between error_prop_name_m1::A::bar and error_prop_name_alt4::C::bar.
-alt/error_redef2_1alt1_alt1.nit:26,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt1_alt1.nit:26,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt1_alt2.nit:27,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt1_alt2.nit:27,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt1_alt3.nit:28,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt1_alt3.nit:28,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt1_alt4.nit:29,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt1_alt4.nit:29,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt1_alt5.nit:30,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt1_alt5.nit:30,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt1_alt6.nit:31,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt1_alt6.nit:31,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt1_alt7.nit:32,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt1_alt7.nit:32,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt1_alt8.nit:33,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt1_alt8.nit:33,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt1_alt9.nit:34,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt1_alt9.nit:34,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt2_alt1.nit:26,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt2_alt1.nit:26,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt2_alt2.nit:27,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt2_alt2.nit:27,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt2_alt3.nit:28,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt2_alt3.nit:28,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt2_alt4.nit:29,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt2_alt4.nit:29,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt2_alt5.nit:30,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt2_alt5.nit:30,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt2_alt6.nit:31,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt2_alt6.nit:31,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt2_alt7.nit:32,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt2_alt7.nit:32,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt2_alt8.nit:33,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt2_alt8.nit:33,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt2_alt9.nit:34,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt2_alt9.nit:34,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt3_alt1.nit:26,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt3_alt1.nit:26,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt3_alt2.nit:27,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt3_alt2.nit:27,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt3_alt3.nit:28,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt3_alt3.nit:28,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt3_alt4.nit:29,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt3_alt4.nit:29,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt3_alt5.nit:30,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt3_alt5.nit:30,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt3_alt6.nit:31,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt3_alt6.nit:31,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt3_alt7.nit:32,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt3_alt7.nit:32,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt3_alt8.nit:33,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt3_alt8.nit:33,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt3_alt9.nit:34,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt3_alt9.nit:34,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt4_alt1.nit:26,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt4_alt1.nit:26,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt4_alt2.nit:27,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt4_alt2.nit:27,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt4_alt3.nit:28,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt4_alt3.nit:28,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt4_alt4.nit:29,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt4_alt4.nit:29,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt4_alt5.nit:30,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt4_alt5.nit:30,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt4_alt6.nit:31,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt4_alt6.nit:31,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt4_alt7.nit:32,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt4_alt7.nit:32,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt4_alt8.nit:33,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt4_alt8.nit:33,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_1alt4_alt9.nit:34,6--7: Redef error: B::f1 is an inherited property. To redefine it, add the redef keyword.
+alt/error_redef2_1alt4_alt9.nit:34,6--7: Redef Error: `B::f1` is an inherited property. To redefine it, add the `redef` keyword.
-alt/error_redef2_alt3.nit:28,9: Error: Untyped parameter `i'.
+alt/error_redef2_alt3.nit:28,9: Error: untyped parameter `i'.
-alt/error_redef2_alt4.nit:29,12--19: Error: Return with value in a procedure.
+alt/error_redef2_alt4.nit:29,19: Error: `return` with value in a procedure.
-alt/error_redef2_alt5.nit:30,20--31: Error: Return with value in a procedure.
+alt/error_redef2_alt5.nit:30,27--31: Error: `return` with value in a procedure.
-alt/error_redef2_alt6.nit:31,9: Error: Untyped parameter `i'.
+alt/error_redef2_alt6.nit:31,9: Error: untyped parameter `i'.
-alt/error_redef2_alt9.nit:34,9: Error: Untyped parameter `i'.
+alt/error_redef2_alt9.nit:34,9: Error: untyped parameter `i'.
-error_redef3.nit:16,7: Error: A class A is already defined at line 15.
+error_redef3.nit:16,7: Error: a class `A` is already defined at line 15.
-error_redef4.nit:18,13: Error: A class A is already defined at line 17.
+error_redef4.nit:18,13: Error: a class `A` is already defined at line 17.
-alt/error_redef_1alt1_alt2.nit:27,14--21: Redef error: error_redef_1alt1_alt2#B#f1 redefines error_redef_1alt1_alt2#A#f1 with 1 parameter(s), 0 expected. Signature is error_redef_1alt1_alt2#B#f1
+alt/error_redef_1alt1_alt2.nit:27,14--21: Redef Error: expected 0 parameter(s) for `f1`; got 1. See introduction at `error_redef_1alt1_alt2::A::f1`.
-alt/error_redef_1alt1_alt3.nit:28,14--16: Redef error: error_redef_1alt1_alt3#B#f1 redefines error_redef_1alt1_alt3#A#f1 with 1 parameter(s), 0 expected. Signature is error_redef_1alt1_alt3#B#f1
+alt/error_redef_1alt1_alt3.nit:28,14--16: Redef Error: expected 0 parameter(s) for `f1`; got 1. See introduction at `error_redef_1alt1_alt3::A::f1`.
-alt/error_redef_1alt1_alt4.nit:29,18--25: Error: Return with value in a procedure.
+alt/error_redef_1alt1_alt4.nit:29,25: Error: `return` with value in a procedure.
-alt/error_redef_1alt1_alt5.nit:30,14--21: Redef error: error_redef_1alt1_alt5#B#f1 redefines error_redef_1alt1_alt5#A#f1 with 1 parameter(s), 0 expected. Signature is error_redef_1alt1_alt5#B#f1
+alt/error_redef_1alt1_alt5.nit:30,14--21: Redef Error: expected 0 parameter(s) for `f1`; got 1. See introduction at `error_redef_1alt1_alt5::A::f1`.
-alt/error_redef_1alt1_alt6.nit:31,14--16: Redef error: error_redef_1alt1_alt6#B#f1 redefines error_redef_1alt1_alt6#A#f1 with 1 parameter(s), 0 expected. Signature is error_redef_1alt1_alt6#B#f1
+alt/error_redef_1alt1_alt6.nit:31,14--16: Redef Error: expected 0 parameter(s) for `f1`; got 1. See introduction at `error_redef_1alt1_alt6::A::f1`.
-alt/error_redef_1alt1_alt7.nit:32,16--18: Redef Error: f1 is a procedure, not a function.
+alt/error_redef_1alt1_alt7.nit:32,16--18: Redef Error: `f1` is a procedure, not a function.
-alt/error_redef_1alt1_alt8.nit:33,14--26: Redef error: error_redef_1alt1_alt8#B#f1 redefines error_redef_1alt1_alt8#A#f1 with 1 parameter(s), 0 expected. Signature is error_redef_1alt1_alt8#B#f1
+alt/error_redef_1alt1_alt8.nit:33,14--26: Redef Error: expected 0 parameter(s) for `f1`; got 1. See introduction at `error_redef_1alt1_alt8::A::f1`.
-alt/error_redef_1alt1_alt9.nit:34,14--21: Redef error: error_redef_1alt1_alt9#B#f1 redefines error_redef_1alt1_alt9#A#f1 with 1 parameter(s), 0 expected. Signature is error_redef_1alt1_alt9#B#f1
+alt/error_redef_1alt1_alt9.nit:34,14--21: Redef Error: expected 0 parameter(s) for `f1`; got 1. See introduction at `error_redef_1alt1_alt9::A::f1`.
-alt/error_redef_1alt2_alt1.nit:26,18: Redef error: error_redef_1alt2_alt1#B#f1 redefines error_redef_1alt2_alt1#A#f1 with 0 parameter(s), 1 expected. Signature is error_redef_1alt2_alt1#B#f1(i: Int)
+alt/error_redef_1alt2_alt1.nit:26,18: Redef Error: expected 1 parameter(s) for `f1(i: Int)`; got 0. See introduction at `error_redef_1alt2_alt1::A::f1`.
-alt/error_redef_1alt2_alt4.nit:29,18: Redef error: error_redef_1alt2_alt4#B#f1 redefines error_redef_1alt2_alt4#A#f1 with 0 parameter(s), 1 expected. Signature is error_redef_1alt2_alt4#B#f1(i: Int)
+alt/error_redef_1alt2_alt4.nit:29,18: Redef Error: expected 1 parameter(s) for `f1(i: Int)`; got 0. See introduction at `error_redef_1alt2_alt4::A::f1`.
-alt/error_redef_1alt2_alt5.nit:30,26--37: Error: Return with value in a procedure.
+alt/error_redef_1alt2_alt5.nit:30,33--37: Error: `return` with value in a procedure.
-alt/error_redef_1alt2_alt6.nit:31,21--32: Error: Return with value in a procedure.
+alt/error_redef_1alt2_alt6.nit:31,28--32: Error: `return` with value in a procedure.
-alt/error_redef_1alt2_alt7.nit:32,16--18: Redef error: error_redef_1alt2_alt7#B#f1 redefines error_redef_1alt2_alt7#A#f1 with 0 parameter(s), 1 expected. Signature is error_redef_1alt2_alt7#B#f1(i: Int)
+alt/error_redef_1alt2_alt7.nit:32,16--18: Redef Error: expected 1 parameter(s) for `f1(i: Int)`; got 0. See introduction at `error_redef_1alt2_alt7::A::f1`.
-alt/error_redef_1alt2_alt8.nit:33,24--26: Redef Error: f1 is a procedure, not a function.
+alt/error_redef_1alt2_alt8.nit:33,24--26: Redef Error: `f1` is a procedure, not a function.
-alt/error_redef_1alt2_alt9.nit:34,19--21: Redef Error: f1 is a procedure, not a function.
+alt/error_redef_1alt2_alt9.nit:34,19--21: Redef Error: `f1` is a procedure, not a function.
-alt/error_redef_1alt3_alt1.nit:26,12--13: Control error: Reached end of function (a 'return' with a value was expected).
+alt/error_redef_1alt3_alt1.nit:26,12--13: Error: reached end of function; expected `return` with a value.
-alt/error_redef_1alt3_alt2.nit:27,14--21: Redef error: error_redef_1alt3_alt2#B#f1 redefines error_redef_1alt3_alt2#A#f1 with 1 parameter(s), 0 expected. Signature is error_redef_1alt3_alt2#B#f1: Int
+alt/error_redef_1alt3_alt2.nit:27,14--21: Redef Error: expected 0 parameter(s) for `f1: Int`; got 1. See introduction at `error_redef_1alt3_alt2::A::f1`.
-alt/error_redef_1alt3_alt3.nit:28,14--16: Redef error: error_redef_1alt3_alt3#B#f1 redefines error_redef_1alt3_alt3#A#f1 with 1 parameter(s), 0 expected. Signature is error_redef_1alt3_alt3#B#f1: Int
+alt/error_redef_1alt3_alt3.nit:28,14--16: Redef Error: expected 0 parameter(s) for `f1: Int`; got 1. See introduction at `error_redef_1alt3_alt3::A::f1`.
-alt/error_redef_1alt3_alt5.nit:30,14--21: Redef error: error_redef_1alt3_alt5#B#f1 redefines error_redef_1alt3_alt5#A#f1 with 1 parameter(s), 0 expected. Signature is error_redef_1alt3_alt5#B#f1: Int
+alt/error_redef_1alt3_alt5.nit:30,14--21: Redef Error: expected 0 parameter(s) for `f1: Int`; got 1. See introduction at `error_redef_1alt3_alt5::A::f1`.
-alt/error_redef_1alt3_alt6.nit:31,14--16: Redef error: error_redef_1alt3_alt6#B#f1 redefines error_redef_1alt3_alt6#A#f1 with 1 parameter(s), 0 expected. Signature is error_redef_1alt3_alt6#B#f1: Int
+alt/error_redef_1alt3_alt6.nit:31,14--16: Redef Error: expected 0 parameter(s) for `f1: Int`; got 1. See introduction at `error_redef_1alt3_alt6::A::f1`.
-alt/error_redef_1alt3_alt8.nit:33,14--26: Redef error: error_redef_1alt3_alt8#B#f1 redefines error_redef_1alt3_alt8#A#f1 with 1 parameter(s), 0 expected. Signature is error_redef_1alt3_alt8#B#f1: Int
+alt/error_redef_1alt3_alt8.nit:33,14--26: Redef Error: expected 0 parameter(s) for `f1: Int`; got 1. See introduction at `error_redef_1alt3_alt8::A::f1`.
-alt/error_redef_1alt3_alt9.nit:34,14--21: Redef error: error_redef_1alt3_alt9#B#f1 redefines error_redef_1alt3_alt9#A#f1 with 1 parameter(s), 0 expected. Signature is error_redef_1alt3_alt9#B#f1: Int
+alt/error_redef_1alt3_alt9.nit:34,14--21: Redef Error: expected 0 parameter(s) for `f1: Int`; got 1. See introduction at `error_redef_1alt3_alt9::A::f1`.
-alt/error_redef_1alt4_alt1.nit:26,18: Redef error: error_redef_1alt4_alt1#B#f1 redefines error_redef_1alt4_alt1#A#f1 with 0 parameter(s), 1 expected. Signature is error_redef_1alt4_alt1#B#f1(i: Int): Int
+alt/error_redef_1alt4_alt1.nit:26,18: Redef Error: expected 1 parameter(s) for `f1(i: Int): Int`; got 0. See introduction at `error_redef_1alt4_alt1::A::f1`.
-alt/error_redef_1alt4_alt2.nit:27,12--13: Control error: Reached end of function (a 'return' with a value was expected).
+alt/error_redef_1alt4_alt2.nit:27,12--13: Error: reached end of function; expected `return` with a value.
-alt/error_redef_1alt4_alt3.nit:28,12--13: Control error: Reached end of function (a 'return' with a value was expected).
+alt/error_redef_1alt4_alt3.nit:28,12--13: Error: reached end of function; expected `return` with a value.
-alt/error_redef_1alt4_alt4.nit:29,18: Redef error: error_redef_1alt4_alt4#B#f1 redefines error_redef_1alt4_alt4#A#f1 with 0 parameter(s), 1 expected. Signature is error_redef_1alt4_alt4#B#f1(i: Int): Int
+alt/error_redef_1alt4_alt4.nit:29,18: Redef Error: expected 1 parameter(s) for `f1(i: Int): Int`; got 0. See introduction at `error_redef_1alt4_alt4::A::f1`.
-alt/error_redef_1alt4_alt7.nit:32,16--18: Redef error: error_redef_1alt4_alt7#B#f1 redefines error_redef_1alt4_alt7#A#f1 with 0 parameter(s), 1 expected. Signature is error_redef_1alt4_alt7#B#f1(i: Int): Int
+alt/error_redef_1alt4_alt7.nit:32,16--18: Redef Error: expected 1 parameter(s) for `f1(i: Int): Int`; got 0. See introduction at `error_redef_1alt4_alt7::A::f1`.
-alt/error_redef_alt1.nit:26,12--13: Error: No property B::f1 is inherited. Remove the redef keyword to define a new property.
+alt/error_redef_alt1.nit:26,12--13: Error: no property `B::f1` is inherited. Remove the `redef` keyword to define a new property.
-alt/error_redef_alt2.nit:27,12--13: Error: No property B::f1 is inherited. Remove the redef keyword to define a new property.
+alt/error_redef_alt2.nit:27,12--13: Error: no property `B::f1` is inherited. Remove the `redef` keyword to define a new property.
-alt/error_redef_alt3.nit:28,12--13: Error: No property B::f1 is inherited. Remove the redef keyword to define a new property.
-alt/error_redef_alt3.nit:28,15: Error: Untyped parameter `i'.
+alt/error_redef_alt3.nit:28,12--13: Error: no property `B::f1` is inherited. Remove the `redef` keyword to define a new property.
+alt/error_redef_alt3.nit:28,15: Error: untyped parameter `i'.
-alt/error_redef_alt4.nit:29,12--13: Error: No property B::f1 is inherited. Remove the redef keyword to define a new property.
+alt/error_redef_alt4.nit:29,12--13: Error: no property `B::f1` is inherited. Remove the `redef` keyword to define a new property.
-alt/error_redef_alt5.nit:30,12--13: Error: No property B::f1 is inherited. Remove the redef keyword to define a new property.
+alt/error_redef_alt5.nit:30,12--13: Error: no property `B::f1` is inherited. Remove the `redef` keyword to define a new property.
-alt/error_redef_alt6.nit:31,12--13: Error: No property B::f1 is inherited. Remove the redef keyword to define a new property.
-alt/error_redef_alt6.nit:31,15: Error: Untyped parameter `i'.
+alt/error_redef_alt6.nit:31,12--13: Error: no property `B::f1` is inherited. Remove the `redef` keyword to define a new property.
+alt/error_redef_alt6.nit:31,15: Error: untyped parameter `i'.
-alt/error_redef_alt7.nit:32,12--13: Error: No property B::f1 is inherited. Remove the redef keyword to define a new property.
+alt/error_redef_alt7.nit:32,12--13: Error: no property `B::f1` is inherited. Remove the `redef` keyword to define a new property.
-alt/error_redef_alt8.nit:33,12--13: Error: No property B::f1 is inherited. Remove the redef keyword to define a new property.
+alt/error_redef_alt8.nit:33,12--13: Error: no property `B::f1` is inherited. Remove the `redef` keyword to define a new property.
-alt/error_redef_alt9.nit:34,12--13: Error: No property B::f1 is inherited. Remove the redef keyword to define a new property.
-alt/error_redef_alt9.nit:34,15: Error: Untyped parameter `i'.
+alt/error_redef_alt9.nit:34,12--13: Error: no property `B::f1` is inherited. Remove the `redef` keyword to define a new property.
+alt/error_redef_alt9.nit:34,15: Error: untyped parameter `i'.
-error_redef_class.nit:17,13--16: Redef error: No imported class Fail to refine.
+error_redef_class.nit:17,13--16: Redef Error: no imported class `Fail` to refine.
-error_ref_attr.nit:20,15--17: Redef Error: Wrong return type. found Int, expected B.
+error_ref_attr.nit:20,15--17: Redef Error: expected `B` return type; got `Int`.
-error_ref_fun.nit:20,12: Control error: Reached end of function (a 'return' with a value was expected).
+error_ref_fun.nit:20,12: Error: reached end of function; expected `return` with a value.
-error_ref_param.nit:20,14--17: Redef Error: Wrong type for parameter `x'. found C, expected B as in module_simple#C#r.
+error_ref_param.nit:20,14--17: Redef Error: expected `B` for parameter `x'; got `C`.
-error_ref_proc.nit:20,21: Redef Error: r is a procedure, not a function.
+error_ref_proc.nit:20,21: Redef Error: `r` is a procedure, not a function.
-error_ref_ret.nit:20,15--17: Redef Error: Wrong return type. found Int, expected B as in module_simple#C#s.
+error_ref_ret.nit:20,15--17: Redef Error: expected `B` for return type; got `Int`.
-error_req_loop0.nit:15,8--22: Error: Dependency loop in module error_req_loop0.
+error_req_loop0.nit:15,8--22: Error: dependency loop in module error_req_loop0.
-error_req_loop1.nit:17,8--22: Error: Dependency loop between modules error_req_loop1 and error_req_loop2.
+error_req_loop1.nit:17,8--22: Error: dependency loop between modules error_req_loop1 and error_req_loop2.
-error_req_loop2.nit:17,8--22: Error: Dependency loop between modules error_req_loop2 and error_req_loop1.
+error_req_loop2.nit:17,8--22: Error: dependency loop between modules error_req_loop2 and error_req_loop1.
-error_ret_fun.nit:19,2--7: Error: Return without value in a function.
+error_ret_fun.nit:19,2--7: Error: `return` without value in a function.
-error_ret_proc.nit:19,2--9: Error: Return with value in a procedure.
+error_ret_proc.nit:19,9: Error: `return` with value in a procedure.
-error_ret_type.nit:19,9--11: Type error: expected Int, got Char
+error_ret_type.nit:19,9--11: Type Error: expected `Int`, got `Char`.
-error_right_bool.nit:17,12: Type error: expected Bool, got Int
+error_right_bool.nit:17,12: Type Error: expected `Bool`, got `Int`.
-error_signature.nit:18,11--14: Type error: class Fail not found in module error_signature.
+error_signature.nit:18,11--14: Error: class `Fail` not found in module `error_signature`.
-error_spe_attr.nit:22,15--20: Redef Error: Wrong return type. found Object, expected Int.
-error_spe_attr.nit:22,15--20: Redef Error: Wrong type for parameter `a'. found Object, expected Int.
+error_spe_attr.nit:22,15--20: Redef Error: expected `Int` return type; got `Object`.
+error_spe_attr.nit:22,15--20: Redef Error: expected `Int` type for parameter `a'; got `Object`.
-error_spe_fun.nit:23,11--14: Control error: Reached end of function (a 'return' with a value was expected).
+error_spe_fun.nit:23,11--14: Error: reached end of function; expected `return` with a value.
-error_spe_param.nit:24,16--24: Redef Error: Wrong type for parameter `c'. found Object, expected Int as in error_spe_param#A#toto.
+error_spe_param.nit:24,16--24: Redef Error: expected `Int` for parameter `c'; got `Object`.
-error_spe_param2.nit:24,16--22: Redef Error: Wrong type for parameter `c'. found Char, expected Int as in error_spe_param2#A#toto.
+error_spe_param2.nit:24,16--22: Redef Error: expected `Int` for parameter `c'; got `Char`.
-error_spe_proc.nit:23,17--19: Redef Error: toto is a procedure, not a function.
+error_spe_proc.nit:23,17--19: Redef Error: `toto` is a procedure, not a function.
-error_spe_ret.nit:23,17--20: Redef Error: Wrong return type. found Char, expected Int as in error_spe_ret#A#toto.
+error_spe_ret.nit:23,17--20: Redef Error: expected `Int` for return type; got `Char`.
-error_star_type.nit:18,8--10: Type error: expected Int, got Char
+error_star_type.nit:18,8--10: Type Error: expected `Int`, got `Char`.
-error_super_none.nit:21,3--7: Error: No super method to call for foo.
+error_super_none.nit:21,3--7: Error: no super method to call for `foo`.
-alt/error_superclass_superfluous_alt1.nit:22,8: Warning: superfluous super-class A in class D.
+alt/error_superclass_superfluous_alt1.nit:22,8: Warning: superfluous super-class `A` in class `D`.
-alt/error_superclass_superfluous_alt2.nit:23,8: Warning: duplicated super-class B in class D.
+alt/error_superclass_superfluous_alt2.nit:23,8: Warning: duplicated super-class `B` in class `D`.
-alt/error_superclass_superfluous_alt3.nit:7,8--13: Warning: superfluous super-class Object in class X.
+alt/error_superclass_superfluous_alt3.nit:7,8--13: Warning: superfluous super-class `Object` in class `X`.
-alt/error_superclass_superfluous_alt4.nit:24,8: Warning: superfluous super-class X in class D.
+alt/error_superclass_superfluous_alt4.nit:24,8: Warning: superfluous super-class `X` in class `D`.
-alt/error_superclass_superfluous_alt5.nit:19,11: Error: Inheritance loop for class D with type D
+alt/error_superclass_superfluous_alt5.nit:19,11: Error: inheritance loop for class `D` with type `D`.
-error_syntax.nit:19,2: Syntax error: unknown token ?.
+error_syntax.nit:19,2: Syntax Error: unknown token `?`.
-error_syntax2.nit:1,1: Syntax error: unknown token &.
+error_syntax2.nit:1,1: Syntax Error: unknown token ``&`.
-error_syntax3.nit:1,1--4: Syntax error: unexpected keyword 'else'.
+error_syntax3.nit:1,1--4: Syntax Error: unexpected keyword 'else'.
-alt/error_syntax_alt1.nit:18,2--5: Syntax error: unexpected keyword 'once'.
+alt/error_syntax_alt1.nit:18,2--5: Syntax Error: unexpected keyword 'once'.
-alt/error_toplevel_alt1.nit:25,3--10: Error: cannot call 'bar', a top-level method, with a receiver.
+alt/error_toplevel_alt1.nit:25,5--7: Error: method `bar` does not exists in `Int`.
-alt/error_toplevel_alt2.nit:35,2--5: Error: self cannot be used in top-level method.
+1
+0
+5
+0
+10
+20
+50
-alt/error_toplevel_alt3.nit:36,6--9: Error: self cannot be used in top-level method.
+1
+0
+5
+0
+10
+S50
-alt/error_toplevel_alt4.nit:37,2--10: Error: cannot call 'bar', a top-level method, with a receiver.
+alt/error_toplevel_alt4.nit:37,4--6: Error: method `bar` does not exists in `Int`.
-alt/error_toplevel_alt5.nit:40,2--4: Error: 'baz' is not a top-level method, thus need a receiver.
+1
+0
+5
+0
+10
+50
+S
\ No newline at end of file
-error_type_not_ok.nit:21,8--11: Type error: class Fail not found in module error_type_not_ok.
+error_type_not_ok.nit:21,8--11: Error: class `Fail` not found in module `error_type_not_ok`.
-error_type_not_ok2.nit:21,14--17: Type error: class Fail not found in module error_type_not_ok2.
+error_type_not_ok2.nit:21,14--17: Error: class `Fail` not found in module `error_type_not_ok2`.
-alt/error_type_not_ok2_alt1.nit:21,14--17: Type error: 'Fail' is a generic class.
+alt/error_type_not_ok2_alt1.nit:21,14--17: Type Error: `Fail[E: nullable Object]` is a generic class.
-error_type_not_ok3.nit:20,12--15: Type error: class Fail not found in module error_type_not_ok3.
-error_type_not_ok3.nit:23,18--21: Type error: class Fail not found in module error_type_not_ok3.
+error_type_not_ok3.nit:20,12--15: Error: class `Fail` not found in module `error_type_not_ok3`.
+error_type_not_ok3.nit:23,18--21: Error: class `Fail` not found in module `error_type_not_ok3`.
-alt/error_type_not_ok3_alt1.nit:20,12--15: Type error: 'Fail' is a generic class.
-alt/error_type_not_ok3_alt1.nit:23,18--21: Type error: 'Fail' is a generic class.
+alt/error_type_not_ok3_alt1.nit:20,12--15: Type Error: `Fail[E: nullable Object]` is a generic class.
+alt/error_type_not_ok3_alt1.nit:23,18--21: Type Error: `Fail[E: nullable Object]` is a generic class.
-error_type_not_ok4.nit:21,10--13: Type error: class Fail not found in module error_type_not_ok4.
-error_type_not_ok4.nit:25,16--19: Type error: class Fail not found in module error_type_not_ok4.
-error_type_not_ok4.nit:29,9--12: Type error: class Fail not found in module error_type_not_ok4.
-error_type_not_ok4.nit:30,12--15: Type error: class Fail not found in module error_type_not_ok4.
-error_type_not_ok4.nit:31,18--21: Type error: class Fail not found in module error_type_not_ok4.
-error_type_not_ok4.nit:32,10--13: Type error: class Fail not found in module error_type_not_ok4.
-error_type_not_ok4.nit:33,16--19: Type error: class Fail not found in module error_type_not_ok4.
+error_type_not_ok4.nit:21,10--13: Error: class `Fail` not found in module `error_type_not_ok4`.
+error_type_not_ok4.nit:25,16--19: Error: class `Fail` not found in module `error_type_not_ok4`.
+error_type_not_ok4.nit:29,9--12: Error: class `Fail` not found in module `error_type_not_ok4`.
+error_type_not_ok4.nit:30,12--15: Error: class `Fail` not found in module `error_type_not_ok4`.
+error_type_not_ok4.nit:31,18--21: Error: class `Fail` not found in module `error_type_not_ok4`.
+error_type_not_ok4.nit:32,10--13: Error: class `Fail` not found in module `error_type_not_ok4`.
+error_type_not_ok4.nit:33,16--19: Error: class `Fail` not found in module `error_type_not_ok4`.
-alt/error_type_not_ok4_alt1.nit:21,10--13: Type error: 'Fail' is a generic class.
-alt/error_type_not_ok4_alt1.nit:25,16--19: Type error: 'Fail' is a generic class.
-alt/error_type_not_ok4_alt1.nit:29,9--12: Type error: 'Fail' is a generic class.
-alt/error_type_not_ok4_alt1.nit:30,12--15: Type error: 'Fail' is a generic class.
-alt/error_type_not_ok4_alt1.nit:31,18--21: Type error: 'Fail' is a generic class.
-alt/error_type_not_ok4_alt1.nit:32,10--13: Type error: 'Fail' is a generic class.
-alt/error_type_not_ok4_alt1.nit:33,16--19: Type error: 'Fail' is a generic class.
+alt/error_type_not_ok4_alt1.nit:21,10--13: Type Error: `Fail[E: nullable Object]` is a generic class.
+alt/error_type_not_ok4_alt1.nit:25,16--19: Type Error: `Fail[E: nullable Object]` is a generic class.
+alt/error_type_not_ok4_alt1.nit:29,9--12: Type Error: `Fail[E: nullable Object]` is a generic class.
+alt/error_type_not_ok4_alt1.nit:30,12--15: Type Error: `Fail[E: nullable Object]` is a generic class.
+alt/error_type_not_ok4_alt1.nit:31,18--21: Type Error: `Fail[E: nullable Object]` is a generic class.
+alt/error_type_not_ok4_alt1.nit:32,10--13: Type Error: `Fail[E: nullable Object]` is a generic class.
+alt/error_type_not_ok4_alt1.nit:33,16--19: Type Error: `Fail[E: nullable Object]` is a generic class.
-error_type_not_ok5.nit:23,8--11: Type error: class Fail not found in module error_type_not_ok5.
-error_type_not_ok5.nit:25,9--21: Type error: class Fail not found in module error_type_not_ok5.
-error_type_not_ok5.nit:28,14--17: Type error: class Fail not found in module error_type_not_ok5.
-error_type_not_ok5.nit:28,7--17: Type error: expected Char, got Bool
-error_type_not_ok5.nit:29,11--14: Type error: class Fail not found in module error_type_not_ok5.
-error_type_not_ok5.nit:30,11--14: Type error: class Fail not found in module error_type_not_ok5.
-error_type_not_ok5.nit:31,13--16: Type error: class Fail not found in module error_type_not_ok5.
+error_type_not_ok5.nit:23,8--11: Error: class `Fail` not found in module `error_type_not_ok5`.
+error_type_not_ok5.nit:25,9--21: Error: class `Fail` not found in module `error_type_not_ok5`.
+error_type_not_ok5.nit:28,14--17: Error: class `Fail` not found in module `error_type_not_ok5`.
+error_type_not_ok5.nit:28,7--17: Type Error: expected `Char`, got `Bool`.
+error_type_not_ok5.nit:29,11--14: Error: class `Fail` not found in module `error_type_not_ok5`.
+error_type_not_ok5.nit:30,11--14: Error: class `Fail` not found in module `error_type_not_ok5`.
+error_type_not_ok5.nit:31,13--16: Error: class `Fail` not found in module `error_type_not_ok5`.
-alt/error_type_not_ok5_alt1.nit:23,8--11: Type error: 'Fail' is a generic class.
-alt/error_type_not_ok5_alt1.nit:25,9--21: Type error: 'Fail' is a generic class.
-alt/error_type_not_ok5_alt1.nit:28,14--17: Type error: 'Fail' is a generic class.
-alt/error_type_not_ok5_alt1.nit:28,7--17: Type error: expected Char, got Bool
-alt/error_type_not_ok5_alt1.nit:29,11--14: Type error: 'Fail' is a generic class.
-alt/error_type_not_ok5_alt1.nit:30,11--14: Type error: 'Fail' is a generic class.
-alt/error_type_not_ok5_alt1.nit:31,13--16: Type error: 'Fail' is a generic class.
+alt/error_type_not_ok5_alt1.nit:23,8--11: Type Error: `Fail[E: nullable Object]` is a generic class.
+alt/error_type_not_ok5_alt1.nit:25,9--21: Type Error: `Fail[E: nullable Object]` is a generic class.
+alt/error_type_not_ok5_alt1.nit:28,14--17: Type Error: `Fail[E: nullable Object]` is a generic class.
+alt/error_type_not_ok5_alt1.nit:28,7--17: Type Error: expected `Char`, got `Bool`.
+alt/error_type_not_ok5_alt1.nit:29,11--14: Type Error: `Fail[E: nullable Object]` is a generic class.
+alt/error_type_not_ok5_alt1.nit:30,11--14: Type Error: `Fail[E: nullable Object]` is a generic class.
+alt/error_type_not_ok5_alt1.nit:31,13--16: Type Error: `Fail[E: nullable Object]` is a generic class.
-alt/error_type_not_ok_alt1.nit:21,8--11: Type error: 'Fail' is a generic class.
+alt/error_type_not_ok_alt1.nit:21,8--11: Type Error: `Fail[E: nullable Object]` is a generic class.
-error_type_unk.nit:22,17--20: Type error: class Fail not found in module error_type_unk.
-error_type_unk.nit:23,7--11: Error: Method '+' doesn't exists in Bool.
+error_type_unk.nit:22,17--20: Error: class `Fail` not found in module `error_type_unk`.
+error_type_unk.nit:23,9: Error: method `+` does not exists in `Bool`.
-alt/error_type_unk_alt1.nit:6,12--15: Type error: class Fail not found in module error_type_unk_alt1.
+alt/error_type_unk_alt1.nit:6,12--15: Error: class `Fail` not found in module `error_type_unk_alt1`.
-alt/error_type_unk_alt2.nit:9,8--11: Type error: class Fail not found in module error_type_unk_alt2.
-alt/error_type_unk_alt2.nit:11,8--13: Type error: class Fail not found in module error_type_unk_alt2.
+alt/error_type_unk_alt2.nit:9,8--11: Error: class `Fail` not found in module `error_type_unk_alt2`.
+alt/error_type_unk_alt2.nit:11,8--13: Error: class `Fail` not found in module `error_type_unk_alt2`.
-alt/error_type_unk_alt3.nit:10,10--13: Type error: class Fail not found in module error_type_unk_alt3.
+alt/error_type_unk_alt3.nit:10,10--13: Error: class `Fail` not found in module `error_type_unk_alt3`.
-alt/error_type_unk_alt4.nit:13,9--12: Type error: class Fail not found in module error_type_unk_alt4.
-alt/error_type_unk_alt4.nit:14,11--14: Type error: class Fail not found in module error_type_unk_alt4.
+alt/error_type_unk_alt4.nit:13,9--12: Error: class `Fail` not found in module `error_type_unk_alt4`.
+alt/error_type_unk_alt4.nit:14,11--14: Error: class `Fail` not found in module `error_type_unk_alt4`.
-alt/error_type_unk_alt5.nit:15,9--12: Type error: class Fail not found in module error_type_unk_alt5.
-alt/error_type_unk_alt5.nit:16,11--14: Type error: class Fail not found in module error_type_unk_alt5.
-alt/error_type_unk_alt5.nit:33,15--18: Type error: class Fail not found in module error_type_unk_alt5.
-alt/error_type_unk_alt5.nit:34,17--20: Type error: class Fail not found in module error_type_unk_alt5.
+alt/error_type_unk_alt5.nit:15,9--12: Error: class `Fail` not found in module `error_type_unk_alt5`.
+alt/error_type_unk_alt5.nit:16,11--14: Error: class `Fail` not found in module `error_type_unk_alt5`.
+alt/error_type_unk_alt5.nit:33,15--18: Error: class `Fail` not found in module `error_type_unk_alt5`.
+alt/error_type_unk_alt5.nit:34,17--20: Error: class `Fail` not found in module `error_type_unk_alt5`.
-alt/error_type_unk_alt6.nit:19,10--13: Type error: class Fail not found in module error_type_unk_alt6.
-alt/error_type_unk_alt6.nit:22,17--20: Type error: class Fail not found in module error_type_unk_alt6.
-alt/error_type_unk_alt6.nit:23,7--11: Error: Method '+' doesn't exists in Bool.
+alt/error_type_unk_alt6.nit:19,10--13: Error: class `Fail` not found in module `error_type_unk_alt6`.
+alt/error_type_unk_alt6.nit:22,17--20: Error: class `Fail` not found in module `error_type_unk_alt6`.
+alt/error_type_unk_alt6.nit:23,9: Error: method `+` does not exists in `Bool`.
-alt/error_type_unk_alt7.nit:20,15--18: Type error: class Fail not found in module error_type_unk_alt7.
-alt/error_type_unk_alt7.nit:22,17--20: Type error: class Fail not found in module error_type_unk_alt7.
-alt/error_type_unk_alt7.nit:23,7--11: Error: Method '+' doesn't exists in Bool.
+alt/error_type_unk_alt7.nit:20,15--18: Error: class `Fail` not found in module `error_type_unk_alt7`.
+alt/error_type_unk_alt7.nit:22,17--20: Error: class `Fail` not found in module `error_type_unk_alt7`.
+alt/error_type_unk_alt7.nit:23,9: Error: method `+` does not exists in `Bool`.
-error_unk_class.nit:17,13--18: Type error: class Canard not found in module error_unk_class.
+error_unk_class.nit:17,13--18: Error: class `Canard` not found in module `error_unk_class`.
-error_var_args.nit:18,1--4: Error: t is variable, not a function.
+error_var_args.nit:18,1--4: Error: `t` is a variable, not a method.
-error_var_args2.nit:18,1--9: Error: t is variable, not a function.
+error_var_args2.nit:18,1--9: Error: `t` is a variable, not a method.
error_var_args3.nit:18,2--3: Warning: superfluous parentheses.
-error_var_args3.nit:18,1--3: Error: t is variable, not a function.
+error_var_args3.nit:18,1--3: Error: `t` is a variable, not a method.
error_var_args4.nit:18,2--3: Warning: superfluous parentheses.
-error_var_args4.nit:18,1--8: Error: t is variable, not a function.
+error_var_args4.nit:18,1--8: Error: `t` is a variable, not a method.
-error_var_assign.nit:18,5--7: Type error: expected Int, got Char
+error_var_assign.nit:18,5--7: Type Error: expected `Int`, got `Char`.
--- /dev/null
+error_virtual_type2.nit:40,17--26: Redef Error: expected `G[T]` bound type; got `G[Discrete]`.
--- /dev/null
+alt/error_virtual_type2_alt1.nit:22,2--24,13: Error: circularity of virtual type definition: GT -> T <-> T.
+alt/error_virtual_type2_alt1.nit:25,2--10: Error: circularity of virtual type definition: T <-> T.
+alt/error_virtual_type2_alt1.nit:38,23: Redef Error: expected `Comparable` for return type; got `T`.
+alt/error_virtual_type2_alt1.nit:40,17--26: Redef Error: expected `null` bound type; got `G[Discrete]`.
+alt/error_virtual_type2_alt1.nit:42,23: Redef Error: expected `Comparable` for return type; got `T`.
--- /dev/null
+alt/error_virtual_type2_alt2.nit:22,2--24,13: Error: circularity of virtual type definition: GT -> T <-> nullable T.
+alt/error_virtual_type2_alt2.nit:25,2--26,19: Error: circularity of virtual type definition: T <-> nullable T.
+alt/error_virtual_type2_alt2.nit:38,23: Redef Error: expected `Comparable` for return type; got `T`.
+alt/error_virtual_type2_alt2.nit:40,17--26: Redef Error: expected `null` bound type; got `G[Discrete]`.
+alt/error_virtual_type2_alt2.nit:42,23: Redef Error: expected `Comparable` for return type; got `T`.
--- /dev/null
+alt/error_virtual_type2_alt3.nit:22,2--24,13: Error: circularity of virtual type definition: GT -> G[T] <-> T.
+alt/error_virtual_type2_alt3.nit:25,2--27,12: Error: circularity of virtual type definition: T <-> G[T].
+alt/error_virtual_type2_alt3.nit:38,23: Redef Error: expected `Comparable` for return type; got `T`.
+alt/error_virtual_type2_alt3.nit:40,17--26: Redef Error: expected `null` bound type; got `G[Discrete]`.
+alt/error_virtual_type2_alt3.nit:42,23: Redef Error: expected `Comparable` for return type; got `T`.
--- /dev/null
+alt/error_virtual_type2_alt4.nit:29,10--13: Error: class `FAIL` not found in module `error_virtual_type2_alt4`.
+alt/error_virtual_type2_alt4.nit:38,23: Redef Error: expected `Comparable` for return type; got `T`.
+alt/error_virtual_type2_alt4.nit:40,17--26: Redef Error: expected `null` bound type; got `G[Discrete]`.
+alt/error_virtual_type2_alt4.nit:42,23: Redef Error: expected `Comparable` for return type; got `T`.
--- /dev/null
+alt/error_virtual_type2_alt5.nit:22,2--24,13: Error: circularity of virtual type definition: GT -> T <-> U.
+alt/error_virtual_type2_alt5.nit:25,2--30,10: Error: circularity of virtual type definition: T <-> U.
+alt/error_virtual_type2_alt5.nit:38,23: Redef Error: expected `Comparable` for return type; got `T`.
+alt/error_virtual_type2_alt5.nit:40,17--26: Redef Error: expected `null` bound type; got `G[Discrete]`.
+alt/error_virtual_type2_alt5.nit:42,23: Redef Error: expected `Comparable` for return type; got `T`.
--- /dev/null
+alt/error_virtual_type2_alt6.nit:40,17--26: Redef Error: expected `G[T]` bound type; got `G[Discrete]`.
+alt/error_virtual_type2_alt6.nit:41,2--22: Error: a property `GT` is already defined in class `B` at line 39.
--- /dev/null
+alt/error_virtual_type_alt1.nit:22,2--23,10: Error: circularity of virtual type definition: T <-> T.
--- /dev/null
+alt/error_virtual_type_alt2.nit:22,2--24,19: Error: circularity of virtual type definition: T <-> nullable T.
--- /dev/null
+alt/error_virtual_type_alt3.nit:25,12: Type Error: expected `Object`, got `T`.
+alt/error_virtual_type_alt3.nit:22,2--25,12: Error: circularity of virtual type definition: T <-> G[T].
--- /dev/null
+alt/error_virtual_type_alt4.nit:27,10--13: Error: class `FAIL` not found in module `error_virtual_type_alt4`.
--- /dev/null
+alt/error_virtual_type_alt5.nit:22,2--28,10: Error: circularity of virtual type definition: T <-> U.
-alt/error_visibility_protected_alt9.nit:20,2--8: Error: intrude is not a legal visibility for properties.
+alt/error_visibility_protected_alt9.nit:20,2--8: Error: `intrude` is not a legal visibility for properties.
-base_gen_f.nit:19,14: Type error: class E not found in module base_gen_f.
+base_gen_f.nit:19,14: Error: class `E` not found in module `base_gen_f`.
-1
-2
-3
-4
-4
-5
-6
-6
-7
-7
-8
-8
+alt/base_isa_cast4_alt5.nit:89,3--5: Error: method `foo` does not exists in `A`.
-test_paire.nit:45,7--10: Error: A class Pair is already defined at line 17.
-test_paire.nit:54,7--10: Error: A class Pair is already defined at line 17.
+test_paire.nit:45,7--10: Error: a class `Pair` is already defined at line 17.
+test_paire.nit:54,7--10: Error: a class `Pair` is already defined at line 17.
--- /dev/null
+out/hello_ios.bin
+out/hello_ios.bin/Info.plist
+out/hello_ios.bin/PkgInfo
+out/hello_ios.bin/hello_ios
--- /dev/null
+1
+2
+2
+3
+1
+2
+2
+3
+1
+2
+3
+1
+2
--- /dev/null
+Runtime error: Cast failed (alt/base_autocast_array_alt2.nit:45)
+10
+10
-base_isa_gen1.nit:62,8--14: Warning: Expression is already a A since it is a F.
-base_isa_gen1.nit:65,8--29: Warning: Expression is already a D[Object, Object] since it is a G[Object].
-base_isa_gen1.nit:66,8--29: Warning: Expression is already a D[Object, Object] since it is a E[F].
+base_isa_gen1.nit:62,8--14: Warning: expression is already a `A` since it is a `F`.
+base_isa_gen1.nit:65,8--29: Warning: expression is already a `D[Object, Object]` since it is a `G[Object]`.
+base_isa_gen1.nit:66,8--29: Warning: expression is already a `D[Object, Object]` since it is a `E[F]`.
Runtime error: Assert failed (base_isa_gen1.nit:68)
-base_isa_gen4.nit:34,8--15: Warning: Expression is already a A since it is a B[Canard].
-base_isa_gen4.nit:36,8--22: Warning: Expression is already a B[Animal] since it is a B[Canard].
-base_isa_gen4.nit:40,8--24: Warning: Expression is already a B[B[Canard]].
-base_isa_gen4.nit:42,8--24: Warning: Expression is already a B[B[Animal]] since it is a B[B[Canard]].
+base_isa_gen4.nit:34,8--15: Warning: expression is already a `A` since it is a `B[Canard]`.
+base_isa_gen4.nit:36,8--22: Warning: expression is already a `B[Animal]` since it is a `B[Canard]`.
+base_isa_gen4.nit:40,8--24: Warning: expression is already a `B[B[Canard]]`.
+base_isa_gen4.nit:42,8--24: Warning: expression is already a `B[B[Animal]]` since it is a `B[B[Canard]]`.
Runtime error: Assert failed (base_isa_gen4.nit:37)
-base_isa_gen5.nit:39,8--15: Warning: Expression is already a A since it is a B[Canard].
-base_isa_gen5.nit:41,8--22: Warning: Expression is already a B[Animal] since it is a B[Canard].
-base_isa_gen5.nit:46,8--24: Warning: Expression is already a B[B[Canard]].
-base_isa_gen5.nit:48,8--24: Warning: Expression is already a B[B[Animal]] since it is a B[B[Canard]].
+base_isa_gen5.nit:39,8--15: Warning: expression is already a `A` since it is a `B[Canard]`.
+base_isa_gen5.nit:41,8--22: Warning: expression is already a `B[Animal]` since it is a `B[Canard]`.
+base_isa_gen5.nit:46,8--24: Warning: expression is already a `B[B[Canard]]`.
+base_isa_gen5.nit:48,8--24: Warning: expression is already a `B[B[Animal]]` since it is a `B[B[Canard]]`.
Runtime error: Assert failed (base_isa_gen5.nit:42)
-base_isa_nullable1.nit:39,8--15: Warning: Expression is already a A since it is a B[Integer].
-base_isa_nullable1.nit:41,8--24: Warning: Expression is already a B[Discrete] since it is a B[Integer].
-base_isa_nullable1.nit:46,8--25: Warning: Expression is already a B[B[Integer]].
-base_isa_nullable1.nit:48,8--26: Warning: Expression is already a B[B[Discrete]] since it is a B[B[Integer]].
-base_isa_nullable1.nit:50,8--33: Warning: Expression is already a B[nullable Discrete] since it is a B[Discrete].
+base_isa_nullable1.nit:39,8--15: Warning: expression is already a `A` since it is a `B[Integer]`.
+base_isa_nullable1.nit:41,8--24: Warning: expression is already a `B[Discrete]` since it is a `B[Integer]`.
+base_isa_nullable1.nit:46,8--25: Warning: expression is already a `B[B[Integer]]`.
+base_isa_nullable1.nit:48,8--26: Warning: expression is already a `B[B[Discrete]]` since it is a `B[B[Integer]]`.
+base_isa_nullable1.nit:50,8--33: Warning: expression is already a `B[nullable Discrete]` since it is a `B[Discrete]`.
Runtime error: Assert failed (base_isa_nullable1.nit:42)
-base_isa_nullable2.nit:27,8--23: Warning: Expression is already a nullable A since it is a A.
-base_isa_nullable2.nit:29,8--30: Warning: Expression is already a nullable B[Object] since it is a B[Object].
-base_isa_nullable2.nit:30,8--39: Warning: Expression is already a nullable B[nullable Object] since it is a nullable B[Object].
-base_isa_nullable2.nit:33,8--30: Warning: Expression is already a C[nullable Object].
+base_isa_nullable2.nit:27,8--23: Warning: expression is already a `nullable A` since it is a `A`.
+base_isa_nullable2.nit:29,8--30: Warning: expression is already a `nullable B[Object]` since it is a `B[Object]`.
+base_isa_nullable2.nit:30,8--39: Warning: expression is already a `nullable B[nullable Object]` since it is a `nullable B[Object]`.
+base_isa_nullable2.nit:33,8--30: Warning: expression is already a `C[nullable Object]`.
Runtime error: Assert failed (base_isa_nullable2.nit:32)
--- /dev/null
+Array
+156
+Range
+12345
-Runtime error: Cast failed. Expected `OTHER`, got `Float` (../lib/standard/kernel.nit:432)
+Runtime error: Cast failed. Expected `OTHER`, got `Float` (../lib/standard/kernel.nit:426)
11
21
31
-Runtime error: Cast failed. Expected `OTHER`, got `Float` (../lib/standard/kernel.nit:432)
+Runtime error: Cast failed. Expected `OTHER`, got `Float` (../lib/standard/kernel.nit:426)
11
21
31
-Runtime error: Cast failed. Expected `OTHER`, got `Float` (../lib/standard/kernel.nit:432)
+Runtime error: Cast failed. Expected `OTHER`, got `Float` (../lib/standard/kernel.nit:426)
11
21
31
-Fatal error: limitation in the rapidtype analysis engine: a type depth of 256 is too important, the problematic type is G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[Int]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]].
+Fatal Error: limitation in the rapidtype analysis engine: a type depth of 256 is too important, the problematic type is `G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[Int]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]`.
+++ /dev/null
-<A i: <Int> s: <FlatString>>
-i=5 s=Hello
-<A>
-
-true
-true
-true
-
-<B i: <Int> s: <FlatString> a: <A i: <Int> s: <FlatString>>>
-i=100 s=World a=<A>
-<B>
-
-true
-true
-true
-Fatal error: limitation in the rapidtype analysis engine: a type depth of 256 is too important, the problematic type is G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[Int]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]].
+Fatal Error: limitation in the rapidtype analysis engine: a type depth of 256 is too important, the problematic type is `G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[Int]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]`.
-Fatal error: limitation in the rapidtype analysis engine: a type depth of 256 is too important, the problematic type is G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[Int]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]].
+Fatal Error: limitation in the rapidtype analysis engine: a type depth of 256 is too important, the problematic type is `G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[G[Int]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]`.
-alt/error_needed_method_alt4.nit:49,10--14: Fatal Error: NativeString must have a property named to_s_with_length.
+alt/error_needed_method_alt4.nit:49,10--14: Fatal Error: `NativeString` must have a property named `to_s_with_length`.
</span></span><span class="line" id="L16">
</span><span class="line" id="L17"><span class="nc_k">import</span> <span class="nc_k">end</span>
</span><span class="line" id="L18">
-</span><span class="nc_cdef foldable" id="base_simple3#Object"><span class="line" id="L19"><span class="nc_k">interface</span> <span class="nc_def nc_t popupable" title="class Object" data-title="<a href="base_simple3.html#base_simple3#Object">class Object</a>" data-content="<div><b>class</b> <span>Object</span><br/><div class="dropdown"> <a data-toggle="dropdown" href="#"><b>hier</b> sub-classes<span class="caret"></span></a><ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"><li><a href="base_simple3.html#base_simple3#Bool">Bool</a></li><li><a href="base_simple3.html#base_simple3#Int">Int</a></li><li><a href="base_simple3.html#base_simple3#A">A</a></li><li><a href="base_simple3.html#base_simple3#B">B</a></li><li><a href="base_simple3.html#base_simple3#C">C</a></li><li><a href="base_simple3.html#base_simple3#Sys">Sys</a></li></ul></div></div>" data-toggle="popover">Object</span>
+</span><span class="nc_cdef foldable" id="base_simple3#Object"><span class="line" id="L19"><span class="nc_k">interface</span> <span class="nc_def nc_t">Object</span>
</span><span class="line" id="L20"><span class="nc_k">end</span>
</span></span><span class="line" id="L21">
-</span><span class="nc_cdef foldable" id="base_simple3#Bool"><span class="line" id="L22"><span class="nc_k">enum</span> <span class="nc_def nc_t popupable" title="class Bool" data-title="<a href="base_simple3.html#base_simple3#Bool">class Bool</a>" data-content="<div><b>class</b> <span>Bool</span><br/><div class="dropdown"> <a data-toggle="dropdown" href="#"><b>hier</b> super-classes<span class="caret"></span></a><ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"><li><a href="base_simple3.html#base_simple3#Object">Object</a></li></ul></div></div>" data-toggle="popover">Bool</span>
+</span><span class="nc_cdef foldable" id="base_simple3#Bool"><span class="line" id="L22"><span class="nc_k">enum</span> <span class="nc_def nc_t">Bool</span>
</span><span class="line" id="L23"><span class="nc_k">end</span>
</span></span><span class="line" id="L24">
-</span><span class="nc_cdef foldable" id="base_simple3#Int"><span class="line" id="L25"><span class="nc_k">enum</span> <span class="nc_def nc_t popupable" title="class Int" data-title="<a href="base_simple3.html#base_simple3#Int">class Int</a>" data-content="<div><b>class</b> <span>Int</span><br/><div class="dropdown"> <a data-toggle="dropdown" href="#"><b>hier</b> super-classes<span class="caret"></span></a><ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"><li><a href="base_simple3.html#base_simple3#Object">Object</a></li></ul></div></div>" data-toggle="popover">Int</span>
+</span><span class="nc_cdef foldable" id="base_simple3#Int"><span class="line" id="L25"><span class="nc_k">enum</span> <span class="nc_def nc_t">Int</span>
</span><span class="nc_pdef foldable" id="base_simple3#Int#output"><span class="line" id="L26"> <span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3#Int#output" data-title="<a href="base_simple3.html#base_simple3#Int#output">base_simple3#Int#output</a>" data-content="<div><b>fun</b> <span>output<span></span></span><br/></div>" data-toggle="popover"><span class="nc_i">output</span></span> <span class="nc_k">is</span> <span class="nc_i">intern</span>
</span></span><span class="line" id="L27"><span class="nc_k">end</span>
</span></span><span class="line" id="L28">
-</span><span class="nc_cdef foldable" id="base_simple3#A"><span class="line" id="L29"><span class="nc_k">class</span> <span class="nc_def nc_t popupable" title="class A" data-title="<a href="base_simple3.html#base_simple3#A">class A</a>" data-content="<div><b>class</b> <span>A</span><br/><div class="dropdown"> <a data-toggle="dropdown" href="#"><b>hier</b> super-classes<span class="caret"></span></a><ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"><li><a href="base_simple3.html#base_simple3#Object">Object</a></li></ul></div></div>" data-toggle="popover">A</span>
-</span><span class="nc_pdef foldable" id="base_simple3#A#init"><span class="line" id="L30"> <span class="nc_k">init</span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">5</span><span>.</span><span class="nc_i popupable" title="call base_simple3#Int#output" data-title="<a href="base_simple3.html#base_simple3#Int#output">call base_simple3#Int#output</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#Int#output">output</a><span></span></span><br/></div>" data-toggle="popover">output</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3#A#run"><span class="line" id="L31"> <span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3#A#run" data-title="<a href="base_simple3.html#base_simple3#A#run">base_simple3#A#run</a>" data-content="<div><b>fun</b> <span>run<span></span></span><br/></div>" data-toggle="popover"><span class="nc_i">run</span></span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">6</span><span>.</span><span class="nc_i popupable" title="call base_simple3#Int#output" data-title="<a href="base_simple3.html#base_simple3#Int#output">call base_simple3#Int#output</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#Int#output">output</a><span></span></span><br/></div>" data-toggle="popover">output</span>
+</span><span class="nc_cdef foldable" id="base_simple3#A"><span class="line" id="L29"><span class="nc_k">class</span> <span class="nc_def nc_t">A</span>
+</span><span class="nc_pdef foldable" id="base_simple3#A#init"><span class="line" id="L30"> <span class="nc_k">init</span> <span class="nc_k">do</span> <span class="nc_l">5</span><span>.</span><span class="nc_i">output</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3#A#run"><span class="line" id="L31"> <span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3#A#run" data-title="<a href="base_simple3.html#base_simple3#A#run">base_simple3#A#run</a>" data-content="<div><b>fun</b> <span>run<span></span></span><br/></div>" data-toggle="popover"><span class="nc_i">run</span></span> <span class="nc_k">do</span> <span class="nc_l">6</span><span>.</span><span class="nc_i">output</span>
</span></span><span class="line" id="L32"><span class="nc_k">end</span>
</span></span><span class="line" id="L33">
-</span><span class="nc_cdef foldable" id="base_simple3#B"><span class="line" id="L34"><span class="nc_k">class</span> <span class="nc_def nc_t popupable" title="class B" data-title="<a href="base_simple3.html#base_simple3#B">class B</a>" data-content="<div><b>class</b> <span>B</span><br/><div class="dropdown"> <a data-toggle="dropdown" href="#"><b>hier</b> super-classes<span class="caret"></span></a><ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"><li><a href="base_simple3.html#base_simple3#Object">Object</a></li></ul></div></div>" data-toggle="popover">B</span>
-</span><span class="nc_pdef foldable" id="base_simple3#B#_val"><a id="base_simple3#B#val"></a><a id="base_simple3#B#val="></a><span class="line" id="L35"> <span class="nc_k">var</span> <span class="nc_def nc_i popupable" title="base_simple3#B#val" data-title="<a href="base_simple3.html#base_simple3#B#val">base_simple3#B#val</a>" data-content="<div><b>fun</b> <span>val<span>: <a href="base_simple3.html#base_simple3#Int">Int</a></span></span><br/></div>" data-toggle="popover">val</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">Int</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3#B#init"><span class="line" id="L36"> <span class="nc_k">init</span><span>(</span><span class="nc_v nc_i popupable" title="v: Int" data-content="<div><b>local var</b> <span>v:<a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">v</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">Int</span><span>)</span>
+</span><span class="nc_cdef foldable" id="base_simple3#B"><span class="line" id="L34"><span class="nc_k">class</span> <span class="nc_def nc_t">B</span>
+</span><span class="nc_pdef foldable" id="base_simple3#B#_val"><a id="base_simple3#B#val"></a><a id="base_simple3#B#val="></a><span class="line" id="L35"> <span class="nc_k">var</span> <span class="nc_def nc_i">val</span><span>:</span> <span class="nc_t">Int</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3#B#init"><span class="line" id="L36"> <span class="nc_k">init</span><span>(</span><span class="nc_v nc_i">v</span><span>:</span> <span class="nc_t">Int</span><span>)</span>
</span><span class="line" id="L37"> <span class="nc_k">do</span>
-</span><span class="line" id="L38"> <span class="nc_l popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">7</span><span>.</span><span class="nc_i popupable" title="call base_simple3#Int#output" data-title="<a href="base_simple3.html#base_simple3#Int#output">call base_simple3#Int#output</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#Int#output">output</a><span></span></span><br/></div>" data-toggle="popover">output</span>
-</span><span class="line" id="L39"> <span class="nc_k">self</span><span>.</span><span class="nc_i popupable" title="call base_simple3#B#val=" data-title="<a href="base_simple3.html#base_simple3#B#val=">call base_simple3#B#val=</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#B#val=">val=</a><span>(val: <a href="base_simple3.html#base_simple3#Int">Int</a>)</span></span><br/></div>" data-toggle="popover">val</span> <span>=</span> <span class="nc_v nc_i popupable" title="v: Int" data-content="<div><b>local var</b> <span>v:<a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">v</span>
+</span><span class="line" id="L38"> <span class="nc_l">7</span><span>.</span><span class="nc_i">output</span>
+</span><span class="line" id="L39"> <span class="nc_k">self</span><span>.</span><span class="nc_i">val</span> <span>=</span> <span class="nc_v nc_i">v</span>
</span><span class="line" id="L40"> <span class="nc_k">end</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3#B#run"><span class="line" id="L41"> <span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3#B#run" data-title="<a href="base_simple3.html#base_simple3#B#run">base_simple3#B#run</a>" data-content="<div><b>fun</b> <span>run<span></span></span><br/></div>" data-toggle="popover"><span class="nc_i">run</span></span> <span class="nc_k">do</span> <span class="nc_i popupable" title="call base_simple3#B#val" data-title="<a href="base_simple3.html#base_simple3#B#val">call base_simple3#B#val</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#B#val">val</a><span>: <a href="base_simple3.html#base_simple3#Int">Int</a></span></span><br/></div>" data-toggle="popover">val</span><span>.</span><span class="nc_i popupable" title="call base_simple3#Int#output" data-title="<a href="base_simple3.html#base_simple3#Int#output">call base_simple3#Int#output</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#Int#output">output</a><span></span></span><br/></div>" data-toggle="popover">output</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3#B#run"><span class="line" id="L41"> <span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3#B#run" data-title="<a href="base_simple3.html#base_simple3#B#run">base_simple3#B#run</a>" data-content="<div><b>fun</b> <span>run<span></span></span><br/></div>" data-toggle="popover"><span class="nc_i">run</span></span> <span class="nc_k">do</span> <span class="nc_i">val</span><span>.</span><span class="nc_i">output</span>
</span></span><span class="line" id="L42"><span class="nc_k">end</span>
</span></span><span class="line" id="L43">
-</span><span class="nc_cdef foldable" id="base_simple3#C"><span class="line" id="L44"><span class="nc_k">class</span> <span class="nc_def nc_t popupable" title="class C" data-title="<a href="base_simple3.html#base_simple3#C">class C</a>" data-content="<div><b>class</b> <span>C</span><br/><div class="dropdown"> <a data-toggle="dropdown" href="#"><b>hier</b> super-classes<span class="caret"></span></a><ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"><li><a href="base_simple3.html#base_simple3#Object">Object</a></li></ul></div></div>" data-toggle="popover">C</span>
-</span><span class="nc_pdef foldable" id="base_simple3#C#_val1"><a id="base_simple3#C#val1"></a><a id="base_simple3#C#val1="></a><span class="line" id="L45"> <span class="nc_k">var</span> <span class="nc_def nc_i popupable" title="base_simple3#C#val1" data-title="<a href="base_simple3.html#base_simple3#C#val1">base_simple3#C#val1</a>" data-content="<div><b>fun</b> <span>val1<span>: <a href="base_simple3.html#base_simple3#Int">Int</a></span></span><br/></div>" data-toggle="popover">val1</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">Int</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3#C#_val2"><a id="base_simple3#C#val2"></a><a id="base_simple3#C#val2="></a><span class="line" id="L46"> <span class="nc_k">var</span> <span class="nc_def nc_i popupable" title="base_simple3#C#val2" data-title="<a href="base_simple3.html#base_simple3#C#val2">base_simple3#C#val2</a>" data-content="<div><b>fun</b> <span>val2<span>: <a href="base_simple3.html#base_simple3#Int">Int</a></span></span><br/></div>" data-toggle="popover">val2</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">Int</span> <span>=</span> <span class="nc_l popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">10</span>
+</span><span class="nc_cdef foldable" id="base_simple3#C"><span class="line" id="L44"><span class="nc_k">class</span> <span class="nc_def nc_t">C</span>
+</span><span class="nc_pdef foldable" id="base_simple3#C#_val1"><a id="base_simple3#C#val1"></a><a id="base_simple3#C#val1="></a><span class="line" id="L45"> <span class="nc_k">var</span> <span class="nc_def nc_i">val1</span><span>:</span> <span class="nc_t">Int</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3#C#_val2"><a id="base_simple3#C#val2"></a><a id="base_simple3#C#val2="></a><span class="line" id="L46"> <span class="nc_k">var</span> <span class="nc_def nc_i">val2</span><span>:</span> <span class="nc_t">Int</span> <span>=</span> <span class="nc_l">10</span>
</span></span><span class="line" id="L47"><span class="nc_k">end</span>
</span></span><span class="line" id="L48">
-</span><span class="nc_pdef foldable" id="base_simple3#Object#foo"><span class="line" id="L49"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3#Object#foo" data-title="<a href="base_simple3.html#base_simple3#Object#foo">base_simple3#Object#foo</a>" data-content="<div><b>fun</b> <span>foo<span></span></span><br/></div>" data-toggle="popover"><span class="nc_i">foo</span></span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">2</span><span>.</span><span class="nc_i popupable" title="call base_simple3#Int#output" data-title="<a href="base_simple3.html#base_simple3#Int#output">call base_simple3#Int#output</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#Int#output">output</a><span></span></span><br/></div>" data-toggle="popover">output</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3#Object#bar"><span class="line" id="L50"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3#Object#bar" data-title="<a href="base_simple3.html#base_simple3#Object#bar">base_simple3#Object#bar</a>" data-content="<div><b>fun</b> <span>bar<span>(i: <a href="base_simple3.html#base_simple3#Int">Int</a>)</span></span><br/></div>" data-toggle="popover"><span class="nc_i">bar</span></span><span>(</span><span class="nc_v nc_i popupable" title="i: Int" data-content="<div><b>local var</b> <span>i:<a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">i</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">Int</span><span>)</span> <span class="nc_k">do</span> <span class="nc_v nc_i popupable" title="i: Int" data-content="<div><b>local var</b> <span>i:<a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">i</span><span>.</span><span class="nc_i popupable" title="call base_simple3#Int#output" data-title="<a href="base_simple3.html#base_simple3#Int#output">call base_simple3#Int#output</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#Int#output">output</a><span></span></span><br/></div>" data-toggle="popover">output</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3#Object#baz"><span class="line" id="L51"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3#Object#baz" data-title="<a href="base_simple3.html#base_simple3#Object#baz">base_simple3#Object#baz</a>" data-content="<div><b>fun</b> <span>baz<span>: <a href="base_simple3.html#base_simple3#Int">Int</a></span></span><br/></div>" data-toggle="popover"><span class="nc_i">baz</span></span><span>:</span> <span class="nc_t popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">Int</span> <span class="nc_k">do</span> <span class="nc_k">return</span> <span class="nc_l popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">4</span>
+</span><span class="nc_pdef foldable" id="base_simple3#Sys#foo"><span class="line" id="L49"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3#Sys#foo" data-title="<a href="base_simple3.html#base_simple3#Sys#foo">base_simple3#Sys#foo</a>" data-content="<div><b>fun</b> <span>foo<span></span></span><br/></div>" data-toggle="popover"><span class="nc_i">foo</span></span> <span class="nc_k">do</span> <span class="nc_l">2</span><span>.</span><span class="nc_i">output</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3#Sys#bar"><span class="line" id="L50"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3#Sys#bar" data-title="<a href="base_simple3.html#base_simple3#Sys#bar">base_simple3#Sys#bar</a>" data-content="<div><b>fun</b> <span>bar<span>(i: <a href="base_simple3.html#base_simple3#Int">Int</a>)</span></span><br/></div>" data-toggle="popover"><span class="nc_i">bar</span></span><span>(</span><span class="nc_v nc_i">i</span><span>:</span> <span class="nc_t">Int</span><span>)</span> <span class="nc_k">do</span> <span class="nc_v nc_i">i</span><span>.</span><span class="nc_i">output</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3#Sys#baz"><span class="line" id="L51"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3#Sys#baz" data-title="<a href="base_simple3.html#base_simple3#Sys#baz">base_simple3#Sys#baz</a>" data-content="<div><b>fun</b> <span>baz<span>: <a href="base_simple3.html#base_simple3#Int">Int</a></span></span><br/></div>" data-toggle="popover"><span class="nc_i">baz</span></span><span>:</span> <span class="nc_t">Int</span> <span class="nc_k">do</span> <span class="nc_k">return</span> <span class="nc_l">4</span>
</span></span><span class="line" id="L52">
-</span><span class="nc_pdef foldable" id="base_simple3#Sys#main"><span class="line" id="L53"><span class="nc_l popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">1</span><span>.</span><span class="nc_i popupable" title="call base_simple3#Int#output" data-title="<a href="base_simple3.html#base_simple3#Int#output">call base_simple3#Int#output</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#Int#output">output</a><span></span></span><br/></div>" data-toggle="popover">output</span>
-</span><span class="line" id="L54"><span class="nc_i popupable" title="call base_simple3#Object#foo" data-title="<a href="base_simple3.html#base_simple3#Object#foo">call base_simple3#Object#foo</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#Object#foo">foo</a><span></span></span><br/></div>" data-toggle="popover">foo</span>
-</span><span class="line" id="L55"><span class="nc_i popupable" title="call base_simple3#Object#bar" data-title="<a href="base_simple3.html#base_simple3#Object#bar">call base_simple3#Object#bar</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#Object#bar">bar</a><span>(i: <a href="base_simple3.html#base_simple3#Int">Int</a>)</span></span><br/></div>" data-toggle="popover">bar</span><span>(</span><span class="nc_l popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">3</span><span>)</span>
-</span><span class="line" id="L56"><span class="nc_i popupable" title="call base_simple3#Object#baz" data-title="<a href="base_simple3.html#base_simple3#Object#baz">call base_simple3#Object#baz</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#Object#baz">baz</a><span>: <a href="base_simple3.html#base_simple3#Int">Int</a></span></span><br/></div>" data-toggle="popover">baz</span><span>.</span><span class="nc_i popupable" title="call base_simple3#Int#output" data-title="<a href="base_simple3.html#base_simple3#Int#output">call base_simple3#Int#output</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#Int#output">output</a><span></span></span><br/></div>" data-toggle="popover">output</span>
+</span><span class="nc_pdef foldable" id="base_simple3#Sys#main"><span class="line" id="L53"><span class="nc_l">1</span><span>.</span><span class="nc_i">output</span>
+</span><span class="line" id="L54"><span class="nc_i">foo</span>
+</span><span class="line" id="L55"><span class="nc_i">bar</span><span>(</span><span class="nc_l">3</span><span>)</span>
+</span><span class="line" id="L56"><span class="nc_i">baz</span><span>.</span><span class="nc_i">output</span>
</span><span class="line" id="L57">
-</span><span class="line" id="L58"><span class="nc_k">var</span> <span class="nc_v nc_i popupable" title="a: A" data-content="<div><b>local var</b> <span>a:<a href="base_simple3.html#base_simple3#A">A</a></span><br/></div>" data-toggle="popover">a</span> <span>=</span> <span class="nc_k">new</span> <span class="nc_t popupable" title="A" data-title="<a href="base_simple3.html#base_simple3#A">A</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#A">A</a></span><br/></div>" data-toggle="popover">A</span>
-</span><span class="line" id="L59"><span class="nc_v nc_i popupable" title="a: A" data-content="<div><b>local var</b> <span>a:<a href="base_simple3.html#base_simple3#A">A</a></span><br/></div>" data-toggle="popover">a</span><span>.</span><span class="nc_i popupable" title="call base_simple3#A#run" data-title="<a href="base_simple3.html#base_simple3#A#run">call base_simple3#A#run</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#A#run">run</a><span></span></span><br/></div>" data-toggle="popover">run</span>
+</span><span class="line" id="L58"><span class="nc_k">var</span> <span class="nc_v nc_i">a</span> <span>=</span> <span class="nc_k">new</span> <span class="nc_t">A</span>
+</span><span class="line" id="L59"><span class="nc_v nc_i">a</span><span>.</span><span class="nc_i">run</span>
</span><span class="line" id="L60">
-</span><span class="line" id="L61"><span class="nc_k">var</span> <span class="nc_v nc_i popupable" title="b: B" data-content="<div><b>local var</b> <span>b:<a href="base_simple3.html#base_simple3#B">B</a></span><br/></div>" data-toggle="popover">b</span> <span>=</span> <span class="nc_k">new</span> <span class="nc_t popupable" title="B" data-title="<a href="base_simple3.html#base_simple3#B">B</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#B">B</a></span><br/></div>" data-toggle="popover">B</span><span>(</span><span class="nc_l popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">8</span><span>)</span>
-</span><span class="line" id="L62"><span class="nc_v nc_i popupable" title="b: B" data-content="<div><b>local var</b> <span>b:<a href="base_simple3.html#base_simple3#B">B</a></span><br/></div>" data-toggle="popover">b</span><span>.</span><span class="nc_i popupable" title="call base_simple3#B#run" data-title="<a href="base_simple3.html#base_simple3#B#run">call base_simple3#B#run</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#B#run">run</a><span></span></span><br/></div>" data-toggle="popover">run</span>
+</span><span class="line" id="L61"><span class="nc_k">var</span> <span class="nc_v nc_i">b</span> <span>=</span> <span class="nc_k">new</span> <span class="nc_t">B</span><span>(</span><span class="nc_l">8</span><span>)</span>
+</span><span class="line" id="L62"><span class="nc_v nc_i">b</span><span>.</span><span class="nc_i">run</span>
</span><span class="line" id="L63">
-</span><span class="line" id="L64"><span class="nc_k">var</span> <span class="nc_v nc_i popupable" title="c: C" data-content="<div><b>local var</b> <span>c:<a href="base_simple3.html#base_simple3#C">C</a></span><br/></div>" data-toggle="popover">c</span> <span>=</span> <span class="nc_k">new</span> <span class="nc_t popupable" title="C" data-title="<a href="base_simple3.html#base_simple3#C">C</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#C">C</a></span><br/></div>" data-toggle="popover">C</span><span>(</span><span class="nc_l popupable" title="Int" data-title="<a href="base_simple3.html#base_simple3#Int">Int</a>" data-content="<div><b>class</b> <span><a href="base_simple3.html#base_simple3#Int">Int</a></span><br/></div>" data-toggle="popover">9</span><span>)</span>
-</span><span class="line" id="L65"><span class="nc_v nc_i popupable" title="c: C" data-content="<div><b>local var</b> <span>c:<a href="base_simple3.html#base_simple3#C">C</a></span><br/></div>" data-toggle="popover">c</span><span>.</span><span class="nc_i popupable" title="call base_simple3#C#val1" data-title="<a href="base_simple3.html#base_simple3#C#val1">call base_simple3#C#val1</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#C#val1">val1</a><span>: <a href="base_simple3.html#base_simple3#Int">Int</a></span></span><br/></div>" data-toggle="popover">val1</span><span>.</span><span class="nc_i popupable" title="call base_simple3#Int#output" data-title="<a href="base_simple3.html#base_simple3#Int#output">call base_simple3#Int#output</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#Int#output">output</a><span></span></span><br/></div>" data-toggle="popover">output</span>
-</span><span class="line" id="L66"><span class="nc_v nc_i popupable" title="c: C" data-content="<div><b>local var</b> <span>c:<a href="base_simple3.html#base_simple3#C">C</a></span><br/></div>" data-toggle="popover">c</span><span>.</span><span class="nc_i popupable" title="call base_simple3#C#val2" data-title="<a href="base_simple3.html#base_simple3#C#val2">call base_simple3#C#val2</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#C#val2">val2</a><span>: <a href="base_simple3.html#base_simple3#Int">Int</a></span></span><br/></div>" data-toggle="popover">val2</span><span>.</span><span class="nc_i popupable" title="call base_simple3#Int#output" data-title="<a href="base_simple3.html#base_simple3#Int#output">call base_simple3#Int#output</a>" data-content="<div><b>call</b> <span><a href="base_simple3.html#base_simple3#Int#output">output</a><span></span></span><br/></div>" data-toggle="popover">output</span>
+</span><span class="line" id="L64"><span class="nc_k">var</span> <span class="nc_v nc_i">c</span> <span>=</span> <span class="nc_k">new</span> <span class="nc_t">C</span><span>(</span><span class="nc_l">9</span><span>)</span>
+</span><span class="line" id="L65"><span class="nc_v nc_i">c</span><span>.</span><span class="nc_i">val1</span><span>.</span><span class="nc_i">output</span>
+</span><span class="line" id="L66"><span class="nc_v nc_i">c</span><span>.</span><span class="nc_i">val2</span><span>.</span><span class="nc_i">output</span>
</span></span><span class="line" id="L67"><span></span></span></span>
\ No newline at end of file
std: 0.926
sum: 6
cnbp: number of accessible properties (inherited + local)
- avg: 6.0
- max: C (10)
- min: Object (4)
- std: 2.268
- sum: 42
+ avg: 3.0
+ max: C (7)
+ min: Object (1)
+ std: 2.36
+ sum: 24
cnba: number of accessible attributes (inherited + local)
avg: 0.0
max: C (2)
std: 0.535
sum: 2
cnbhp: number of inherited properties
- avg: 3.0
- max: Bool (4)
+ avg: 0.0
+ max: Bool (1)
min: Object (0)
- std: 1.464
- sum: 24
+ std: 0.926
+ sum: 6
## global metrics
cnoa: number of ancestor classes
std: 0.926
sum: 6
cnbp: number of accessible properties (inherited + local)
- avg: 6.0
- max: C (10)
- min: Object (4)
- std: 2.268
- sum: 42
+ avg: 3.0
+ max: C (7)
+ min: Object (1)
+ std: 2.36
+ sum: 24
cnba: number of accessible attributes (inherited + local)
avg: 0.0
max: C (2)
std: 0.535
sum: 2
cnbhp: number of inherited properties
- avg: 3.0
- max: Bool (4)
+ avg: 0.0
+ max: Bool (1)
min: Object (0)
- std: 1.464
- sum: 24
+ std: 0.926
+ sum: 6
+--- Metrics of refinement usage ---
+Number of modules: 1
+
+Number of classes: 7
+ Number of interface kind: 1 (14.28%)
+ Number of enum kind: 2 (28.57%)
+ Number of class kind: 4 (57.14%)
+
+Number of class definitions: 7
+Number of refined classes: 0 (0.00%)
+Average number of class refinments by classes: 0.00
+Average number of class refinments by refined classes: na
+
+Number of properties: 18
+ Number of MAttribute: 3 (16.66%)
+ Number of MMethod: 15 (83.33%)
+
+Number of property definitions: 20
+Number of redefined properties: 1 (5.55%)
+Average number of property redefinitions by property: 0.11
+Average number of property redefinitions by redefined property: 2.00
+--- Explicit vs. Implicit Self ---
+Total number of self: 5
+Total number of implicit self: 4 (80.00%)
+--- Construction of tables ---
+Number of runtime classes: 6 (excluding interfaces and abstract classes)
+Average number of composing class definition by runtime class: 2.00
+Total size of tables (classes and instances): 23 (not including stuff like info for subtyping or call-next-method)
+Average size of table by runtime class: 3.83
+Values never redefined: 17 (73.91%)
--- Poset metrics ---
## Module importation hierarchy
Number of nodes: 1
bivariants: 0 (na%)
invariants: 0 (na%)
total: 0
---- Metrics of refinement usage ---
-Number of modules: 1
-
-Number of classes: 7
- Number of interface kind: 1 (14.28%)
- Number of enum kind: 2 (28.57%)
- Number of class kind: 4 (57.14%)
-
-Number of class definitions: 7
-Number of refined classes: 0 (0.00%)
-Average number of class refinments by classes: 0.00
-Average number of class refinments by refined classes: na
-
-Number of properties: 18
- Number of MAttribute: 3 (16.66%)
- Number of MMethod: 15 (83.33%)
-
-Number of property definitions: 20
-Number of redefined properties: 1 (5.55%)
-Average number of property redefinitions by property: 0.11
-Average number of property redefinitions by redefined property: 2.00
---- Explicit vs. Implicit Self ---
-Total number of self: 5
-Total number of implicit self: 4 (80.00%)
---- Construction of tables ---
-Number of runtime classes: 6 (excluding interfaces and abstract classes)
-Average number of composing class definition by runtime class: 2.00
-Total size of tables (classes and instances): 38 (not including stuff like info for subtyping or call-next-method)
-Average size of table by runtime class: 6.33
-Values never redefined: 32 (84.21%)
generating project_hierarchy.dot
generating module_hierarchy.dot
A: 1 (11.11%)
# Mendel metrics
- large mclasses (threshold: 2.291)
- B: 3
- C: 3
- budding mclasses (threshold: 0.693)
- B: 0.75
- C: 0.75
- blooming mclasses (threshold: 1.935)
- B: 2.25
- C: 2.25
- blooming mclasses (threshold: 1.935)
- B: 2.25
- C: 2.25
+ large mclasses (threshold: 3.354)
+ Sys: 4
+ budding mclasses (threshold: 3.51)
+ Sys: 4.0
+ blooming mclasses (threshold: 12.0)
+ Sys: 16.0
--- Detection of the usage of covariance static type conformance ---
-- Total --
- Kinds of the subtype -
base_simple3#C#val1: 1 (4.54%)
...
base_simple3#A#init: 1 (4.54%)
- base_simple3#Object#baz: 1 (4.54%)
- base_simple3#Object#bar: 1 (4.54%)
- base_simple3#Object#foo: 1 (4.54%)
+ base_simple3#Sys#baz: 1 (4.54%)
+ base_simple3#Sys#bar: 1 (4.54%)
+ base_simple3#Sys#foo: 1 (4.54%)
base_simple3#C#init: 1 (4.54%)
MMethodDef possibly invoked at runtime (by number of CallSites)
population: 13
base_simple3#C#val1: 1 (4.54%)
...
base_simple3#A#init: 1 (4.54%)
- base_simple3#Object#baz: 1 (4.54%)
- base_simple3#Object#bar: 1 (4.54%)
- base_simple3#Object#foo: 1 (4.54%)
+ base_simple3#Sys#baz: 1 (4.54%)
+ base_simple3#Sys#bar: 1 (4.54%)
+ base_simple3#Sys#foo: 1 (4.54%)
base_simple3#C#init: 1 (4.54%)
class_hierarchy.dot
classdef_hierarchy.dot
fontsize = 8
]
Object [
- label = "{interface\nObject||+ object_id(): Int\l+ is_same_type(other: Object): Bool\l+ is_same_instance(other: nullable Object): Bool\l+ ==(other: nullable Object): Bool\l+ !=(other: nullable Object): Bool\l+ output()\l+ output_class_name()\l+ hash(): Int\l+ exit(exit_value: Int)\l+ sys(): Sys\l}"
+ label = "{interface\nObject||+ object_id(): Int\l+ is_same_type(other: Object): Bool\l+ is_same_instance(other: nullable Object): Bool\l+ ==(other: nullable Object): Bool\l+ !=(other: nullable Object): Bool\l+ output()\l+ output_class_name()\l+ hash(): Int\l+ sys(): Sys\l}"
]
Sys [
- label = "{Sys||+ main()\l+ run()\l+ errno(): Int\l}"
+ label = "{Sys||+ main()\l+ run()\l+ errno(): Int\l+ exit(exit_value: Int)\l}"
]
Object -> Sys [dir=back arrowtail=open style=dashed];
Numeric -> Float [dir=back arrowtail=open style=dashed];
Int [
- label = "{Int||+ %(i: Int): Int\l+ lshift(i: Int): Int\l+ rshift(i: Int): Int\l+ ascii(): Char\l+ digit_count(b: Int): Int\l+ digit_count_base_10(): Int\l+ to_c(): Char\l+ abs(): Int\l}"
+ label = "{Int||+ %(i: Int): Int\l+ lshift(i: Int): Int\l+ \<\<(i: Int): Int\l+ rshift(i: Int): Int\l+ \>\>(i: Int): Int\l+ ascii(): Char\l+ digit_count(b: Int): Int\l+ digit_count_base_10(): Int\l+ to_c(): Char\l+ abs(): Int\l}"
]
Discrete -> Int [dir=back arrowtail=open style=dashed];
Numeric -> Int [dir=back arrowtail=open style=dashed];
fontsize = 8
]
Object [
- label = "{interface\nObject||+ object_id(): Int\l+ is_same_type(other: Object): Bool\l+ is_same_instance(other: nullable Object): Bool\l+ ==(other: nullable Object): Bool\l+ !=(other: nullable Object): Bool\l+ output()\l+ output_class_name()\l+ hash(): Int\l+ exit(exit_value: Int)\l+ sys(): Sys\l}"
+ label = "{interface\nObject||+ object_id(): Int\l+ is_same_type(other: Object): Bool\l+ is_same_instance(other: nullable Object): Bool\l+ ==(other: nullable Object): Bool\l+ !=(other: nullable Object): Bool\l+ output()\l+ output_class_name()\l+ hash(): Int\l+ sys(): Sys\l}"
]
Sys [
- label = "{Sys||+ main()\l+ run()\l+ errno(): Int\l}"
+ label = "{Sys||+ main()\l+ run()\l+ errno(): Int\l+ exit(exit_value: Int)\l}"
]
Object -> Sys [dir=back arrowtail=open style=dashed];
Numeric -> Float [dir=back arrowtail=open style=dashed];
Int [
- label = "{Int||+ %(i: Int): Int\l+ lshift(i: Int): Int\l+ rshift(i: Int): Int\l+ ascii(): Char\l+ digit_count(b: Int): Int\l+ digit_count_base_10(): Int\l+ to_c(): Char\l+ abs(): Int\l}"
+ label = "{Int||+ %(i: Int): Int\l+ lshift(i: Int): Int\l+ \<\<(i: Int): Int\l+ rshift(i: Int): Int\l+ \>\>(i: Int): Int\l+ ascii(): Char\l+ digit_count(b: Int): Int\l+ digit_count_base_10(): Int\l+ to_c(): Char\l+ abs(): Int\l}"
]
Discrete -> Int [dir=back arrowtail=open style=dashed];
Numeric -> Int [dir=back arrowtail=open style=dashed];
test_nitunit.nit:20,1--22,0: ERROR: nitunit.test_nitunit.test_nitunit::X.<class> (in .nitunit/test_nitunit-2.nit): Runtime error: Assert failed (.nitunit/test_nitunit-2.nit:5)
-test_nitunit.nit:23,2--25,0: FAILURE: nitunit.test_nitunit.test_nitunit::X.test_nitunit::X::foo (in .nitunit/test_nitunit-3.nit): .nitunit/test_nitunit-3.nit:5,8--27: Error: Method or variable 'undefined_identifier' unknown in Sys.
+test_nitunit.nit:23,2--25,0: FAILURE: nitunit.test_nitunit.test_nitunit::X.test_nitunit::X::foo (in .nitunit/test_nitunit-3.nit): .nitunit/test_nitunit-3.nit:5,8--27: Error: method or variable `undefined_identifier` unknown in `Sys`.
test_test_nitunit.nit:36,2--40,4: ERROR: test_foo1 (in file .nitunit/gen_test_test_nitunit.nit): Runtime error: Assert failed (test_test_nitunit.nit:39)
</system-out></testcase><testcase classname="nitunit.test_nitunit.test_nitunit::X" name="<class>"><system-err></system-err><system-out>assert false
</system-out><error message="Runtime error: Assert failed (.nitunit/test_nitunit-2.nit:5)
"></error></testcase><testcase classname="nitunit.test_nitunit.test_nitunit::X" name="test_nitunit::X::foo"><system-err></system-err><system-out>assert undefined_identifier
-</system-out><failure message=".nitunit/test_nitunit-3.nit:5,8--27: Error: Method or variable 'undefined_identifier' unknown in Sys.
+</system-out><failure message=".nitunit/test_nitunit-3.nit:5,8--27: Error: method or variable `undefined_identifier` unknown in `Sys`.
"></failure></testcase></testsuite><testsuite package="test_test_nitunit"><testcase classname="nitunit.test_test_nitunit.test_test_nitunit::TestX" name="test_test_nitunit::TestX::test_foo"><system-err></system-err><system-out>out</system-out></testcase><testcase classname="nitunit.test_test_nitunit.test_test_nitunit::TestX" name="test_test_nitunit::TestX::test_foo1"><system-err></system-err><system-out>out</system-out><error message="Runtime error: Assert failed (test_test_nitunit.nit:39)
"></error></testcase><testcase classname="nitunit.test_test_nitunit.test_test_nitunit::TestX" name="test_test_nitunit::TestX::test_foo2"><system-err></system-err><system-out>out</system-out></testcase></testsuite></testsuites>
\ No newline at end of file
TestSuites:
No test cases found
Class suites: 0; Test Cases: 0; Failures: 0
-<testsuites><testsuite package="test_nitunit2"><testcase classname="nitunit.test_nitunit2.standard::Object" name="test_nitunit2::Object::foo1"><system-err></system-err><system-out>if true then
+<testsuites><testsuite package="test_nitunit2"><testcase classname="nitunit.test_nitunit2.standard::Sys" name="test_nitunit2::Sys::foo1"><system-err></system-err><system-out>if true then
assert true
end
-</system-out></testcase><testcase classname="nitunit.test_nitunit2.standard::Object" name="test_nitunit2::Object::bar2"><system-err></system-err><system-out>if true then
+</system-out></testcase><testcase classname="nitunit.test_nitunit2.standard::Sys" name="test_nitunit2::Sys::bar2"><system-err></system-err><system-out>if true then
assert true
end
-</system-out></testcase><testcase classname="nitunit.test_nitunit2.standard::Object" name="test_nitunit2::Object::foo3"><system-err></system-err><system-out>var a = 1
+</system-out></testcase><testcase classname="nitunit.test_nitunit2.standard::Sys" name="test_nitunit2::Sys::foo3"><system-err></system-err><system-out>var a = 1
assert a == 1
assert a == 1
</system-out></testcase></testsuite><testsuite></testsuite></testsuites>
\ No newline at end of file
TestSuites:
No test cases found
Class suites: 0; Test Cases: 0; Failures: 0
-<testsuites><testsuite package="test_doc2"><testcase classname="nitunit.test_doc2.standard::Object" name="test_doc2::Object::foo1"><system-err></system-err><system-out>assert true # tested
-</system-out></testcase><testcase classname="nitunit.test_doc2.standard::Object" name="test_doc2::Object::foo2"><system-err></system-err><system-out>assert true # tested
-</system-out></testcase><testcase classname="nitunit.test_doc2.standard::Object" name="test_doc2::Object::foo3"><system-err></system-err><system-out>assert true # tested
+<testsuites><testsuite package="test_doc2"><testcase classname="nitunit.test_doc2.standard::Sys" name="test_doc2::Sys::foo1"><system-err></system-err><system-out>assert true # tested
+</system-out></testcase><testcase classname="nitunit.test_doc2.standard::Sys" name="test_doc2::Sys::foo2"><system-err></system-err><system-out>assert true # tested
+</system-out></testcase><testcase classname="nitunit.test_doc2.standard::Sys" name="test_doc2::Sys::foo3"><system-err></system-err><system-out>assert true # tested
</system-out></testcase></testsuite><testsuite></testsuite></testsuites>
\ No newline at end of file
-test_nitunit3/README.md: Error: There is a block of code that is not valid Nit, thus not considered a nitunit. To suppress this warning, enclose the block with a fence tagged `nitish` or `raw` (see `man nitdoc`). At 1,1: Syntax error: unknown token ;..
+test_nitunit3/README.md: Error: there is a block of invalid Nit code, thus not considered a nitunit. To suppress this warning, enclose the block with a fence tagged `nitish` or `raw` (see `man nitdoc`). At 1,1: Syntax Error: unknown token `;`..
test_nitunit3/README.md: ERROR: nitunit.test_nitunit3.<group> (in .nitunit/test_nitunit3-0.nit): Runtime error: Assert failed (.nitunit/test_nitunit3-0.nit:7)
DocUnits:
TestSuites:
No test cases found
Class suites: 0; Test Cases: 0; Failures: 0
-<testsuites><testsuite package="test_nitunit3"><testcase classname="nitunit.test_nitunit3" name="<group>"><failure message="test_nitunit3/README.md: Invalid block of code. At 1,1: Syntax error: unknown token ;.."></failure><system-err></system-err><system-out>assert false
+<testsuites><testsuite package="test_nitunit3"><testcase classname="nitunit.test_nitunit3" name="<group>"><failure message="test_nitunit3/README.md: Invalid block of code. At 1,1: Syntax Error: unknown token `;`.."></failure><system-err></system-err><system-out>assert false
assert true
</system-out><error message="Runtime error: Assert failed (.nitunit/test_nitunit3-0.nit:7)
"></error></testcase></testsuite><testsuite package="test_nitunit3"><testcase classname="nitunit.test_nitunit3.<module>" name="<module>"><system-err></system-err><system-out>assert true
\e[1m= result for 'foo'\e[0m
fun \e[1m\e[32mfoo\e[0m\e[0m
- \e[30m\e[1mbase_simple3::Object::foo\e[0m\e[0m\e[30m (lines 49-49)\e[0m
+ \e[30m\e[1mbase_simple3::Sys::foo\e[0m\e[0m\e[30m (lines 49-49)\e[0m
\e[30m\e[1mbase_simple3::Object\e[0m\e[0m\e[30m (lines 19-20)\e[0m
class \e[32m\e[1mSys\e[0m\e[0m
- \e[30m\e[1mbase_simple3::Sys\e[0m\e[0m\e[30m (lines 53-66)\e[0m
+ \e[30m\e[1mbase_simple3::Sys\e[0m\e[0m\e[30m (lines 49-49)\e[0m
-syntax_annotations.nit:15,10--12: Warning: unknown annotation `foo`
+syntax_annotations.nit:15,10--12: Warning: unknown annotation `foo`.
-syntax_annotations2.nit:16,2--6: Warning: unknown annotation `annot`
-syntax_annotations2.nit:17,2--7: Warning: unknown annotation `annot2`
-syntax_annotations2.nit:38,15--17: Warning: unknown annotation `foo`
+syntax_annotations2.nit:16,2--6: Warning: unknown annotation `annot`.
+syntax_annotations2.nit:17,2--7: Warning: unknown annotation `annot2`.
+syntax_annotations2.nit:38,15--17: Warning: unknown annotation `foo`.
-syntax_annotations3.nit:16,2--20: Warning: unknown annotation `invariant`
-syntax_annotations3.nit:19,3--12: Warning: unknown annotation `pre`
-syntax_annotations3.nit:20,3--22: Warning: unknown annotation `post`
-syntax_annotations3.nit:21,3--19: Warning: unknown annotation `test`
-syntax_annotations3.nit:28,3--7: Warning: unknown annotation `inter`
-syntax_annotations3.nit:33,16--18: Warning: unknown annotation `u32`
-syntax_annotations3.nit:34,19--36: Warning: unknown annotation `after`
-syntax_annotations3.nit:34,12--36: Warning: unknown annotation `daemon`
-syntax_annotations3.nit:34,3--37: Warning: unknown annotation `ondebug`
-syntax_annotations3.nit:35,3--7: Warning: unknown annotation `final`
-syntax_annotations3.nit:38,28--35: Warning: unknown annotation `readable`
-syntax_annotations3.nit:38,38--45: Warning: unknown annotation `initable`
-syntax_annotations3.nit:38,48--56: Warning: unknown annotation `fast_init`
-syntax_annotations3.nit:42,20--28: Warning: unknown annotation `unchecked`
+syntax_annotations3.nit:16,2--20: Warning: unknown annotation `invariant`.
+syntax_annotations3.nit:19,3--12: Warning: unknown annotation `pre`.
+syntax_annotations3.nit:20,3--22: Warning: unknown annotation `post`.
+syntax_annotations3.nit:21,3--19: Warning: unknown annotation `test`.
+syntax_annotations3.nit:28,3--7: Warning: unknown annotation `inter`.
+syntax_annotations3.nit:33,16--18: Warning: unknown annotation `u32`.
+syntax_annotations3.nit:34,19--36: Warning: unknown annotation `after`.
+syntax_annotations3.nit:34,12--36: Warning: unknown annotation `daemon`.
+syntax_annotations3.nit:34,3--37: Warning: unknown annotation `ondebug`.
+syntax_annotations3.nit:35,3--7: Warning: unknown annotation `final`.
+syntax_annotations3.nit:38,28--35: Warning: unknown annotation `readable`.
+syntax_annotations3.nit:38,38--45: Warning: unknown annotation `initable`.
+syntax_annotations3.nit:38,48--56: Warning: unknown annotation `fast_init`.
+syntax_annotations3.nit:42,20--28: Warning: unknown annotation `unchecked`.
-alt/test_annot_pkgconfig_alt1.nit:17,8--27: Error: module name missmatch; declared test_annot_pkgconfig file named test_annot_pkgconfig_alt1
+alt/test_annot_pkgconfig_alt1.nit:17,8--27: Error: module name mismatch; declared test_annot_pkgconfig file named test_annot_pkgconfig_alt1.
-alt/test_annot_pkgconfig_alt2.nit:18,8--27: Error: module name missmatch; declared test_annot_pkgconfig file named test_annot_pkgconfig_alt2
+alt/test_annot_pkgconfig_alt2.nit:18,8--27: Error: module name mismatch; declared test_annot_pkgconfig file named test_annot_pkgconfig_alt2.
-test_attr_easy.nit:19,5--14: Warning: Expression is already a Bool.
-test_attr_easy.nit:19,18--27: Warning: Expression is already a Bool.
-test_attr_easy.nit:19,31--39: Warning: Expression is already a Int.
-test_attr_easy.nit:19,43--53: Warning: Expression is already a Float.
-test_attr_easy.nit:20,5--16: Warning: Expression is already a String.
-test_attr_easy.nit:20,20--26: Warning: Expression is already a B.
-test_attr_easy.nit:20,44--62: Warning: Expression is already a HashMap[Int, B].
+test_attr_easy.nit:19,5--14: Warning: expression is already a `Bool`.
+test_attr_easy.nit:19,18--27: Warning: expression is already a `Bool`.
+test_attr_easy.nit:19,31--39: Warning: expression is already a `Int`.
+test_attr_easy.nit:19,43--53: Warning: expression is already a `Float`.
+test_attr_easy.nit:20,5--16: Warning: expression is already a `String`.
+test_attr_easy.nit:20,20--26: Warning: expression is already a `B`.
+test_attr_easy.nit:20,44--62: Warning: expression is already a `HashMap[Int, B]`.
true false 12345 1.235 asdf true
an instance of B
true true true true
-alt/test_combined_assignment_alt1.nit:23,3--8: Error: Method '+' doesn't exists in Object.
-alt/test_combined_assignment_alt1.nit:28,3--8: Error: Method '+' doesn't exists in Object.
-alt/test_combined_assignment_alt1.nit:29,10: Type error: expected Int, got Object
-alt/test_combined_assignment_alt1.nit:49,1--8: Error: Method '+' doesn't exists in Object.
+alt/test_combined_assignment_alt1.nit:23,5--6: Error: method `+` does not exists in `Object`.
+alt/test_combined_assignment_alt1.nit:28,5--6: Error: method `+` does not exists in `Object`.
+alt/test_combined_assignment_alt1.nit:29,10: Type Error: expected `Int`, got `Object`.
+alt/test_combined_assignment_alt1.nit:49,5--6: Error: method `+` does not exists in `Object`.
.popover { max-width: 800px !important; }
</style>
-</head><body><h3 id='test_doc2'>module test_doc2</h1><h5 id='test_doc2#Object#foo1'>prop test_doc2#Object#foo1</h3><div class="nitdoc"><p class="synopsys">Test code</p><pre class="nitcode"><span class="nitcode"><span class="line" id="L1"><span class="nc_k">assert</span> <span class="nc_k">true</span> <span># tested
-</span></span><span class="line" id="L2"><span></span></span></span></pre></div><h5 id='test_doc2#Object#foo2'>prop test_doc2#Object#foo2</h3><div class="nitdoc"><p class="synopsys">Test code</p><pre class="nitcode"><span class="nitcode"><span class="line" id="L1"><span class="nc_k">assert</span> <span class="nc_k">true</span> <span># tested
-</span></span><span class="line" id="L2"><span></span></span></span></pre></div><h5 id='test_doc2#Object#foo3'>prop test_doc2#Object#foo3</h3><div class="nitdoc"><p class="synopsys">Test code</p><pre class="nitcode"><span class="nitcode"><span class="line" id="L1"><span class="nc_k">assert</span> <span class="nc_k">true</span> <span># tested
-</span></span><span class="line" id="L2"><span></span></span></span></pre></div><h5 id='test_doc2#Object#foo4'>prop test_doc2#Object#foo4</h3><div class="nitdoc"><p class="synopsys">Test code</p><pre class="rawcode">assert false # not tested (and not highlighted)
-</pre></div><h5 id='test_doc2#Object#foo5'>prop test_doc2#Object#foo5</h3><div class="nitdoc"><p class="synopsys">Test code</p><pre class="nitcode"><span class="nitcode"><span class="line" id="L1"><span class="nc_k">assert</span> <span class="nc_k">false</span> <span># not tested (but highlighted)
+</head><body><h3 id='test_doc2'>module test_doc2</h1><h5 id='test_doc2#Sys#foo1'>prop test_doc2#Sys#foo1</h3><div class="nitdoc"><p class="synopsys">Test code</p><pre class="nitcode"><span class="nitcode"><span class="line" id="L1"><span class="nc_k">assert</span> <span class="nc_k">true</span> <span># tested
+</span></span><span class="line" id="L2"><span></span></span></span></pre></div><h5 id='test_doc2#Sys#foo2'>prop test_doc2#Sys#foo2</h3><div class="nitdoc"><p class="synopsys">Test code</p><pre class="nitcode"><span class="nitcode"><span class="line" id="L1"><span class="nc_k">assert</span> <span class="nc_k">true</span> <span># tested
+</span></span><span class="line" id="L2"><span></span></span></span></pre></div><h5 id='test_doc2#Sys#foo3'>prop test_doc2#Sys#foo3</h3><div class="nitdoc"><p class="synopsys">Test code</p><pre class="nitcode"><span class="nitcode"><span class="line" id="L1"><span class="nc_k">assert</span> <span class="nc_k">true</span> <span># tested
+</span></span><span class="line" id="L2"><span></span></span></span></pre></div><h5 id='test_doc2#Sys#foo4'>prop test_doc2#Sys#foo4</h3><div class="nitdoc"><p class="synopsys">Test code</p><pre class="rawcode">assert false # not tested (and not highlighted)
+</pre></div><h5 id='test_doc2#Sys#foo5'>prop test_doc2#Sys#foo5</h3><div class="nitdoc"><p class="synopsys">Test code</p><pre class="nitcode"><span class="nitcode"><span class="line" id="L1"><span class="nc_k">assert</span> <span class="nc_k">false</span> <span># not tested (but highlighted)
</span></span><span class="line" id="L2"><span></span></span></span></pre></div><script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script>$(".popupable").popover({html:true, placement:'top'})/*initialize bootstrap popover*/</script></body></html>
\ No newline at end of file
+test_ffi_c_operators.nit:139,7--15: Warning: expression is not null, since it is a `A`.
11
+123
9
+-123
22
3
false
false
false
+false
true
3
4096
false
true
true
+32
+8
+7
+5
+2
+-4
52
456
--123
-alt/test_ffi_c_polymorphism_alt1.nit:56,15--25: Type error: expected NativeB, got NativeA
+alt/test_ffi_c_polymorphism_alt1.nit:56,15--25: Type Error: expected `NativeB`, got `NativeA`.
-alt/test_ffi_c_polymorphism_alt2.nit:58,12--22: Type error: expected NativeB, got NativeA
+alt/test_ffi_c_polymorphism_alt2.nit:58,12--22: Type Error: expected `NativeB`, got `NativeA`.
-test_gen_inh.nit:29,15--17: Warning: Useless formal parameter type since `Int` cannnot have subclasses.
-test_gen_inh.nit:34,15--17: Warning: Useless formal parameter type since `Int` cannnot have subclasses.
+test_gen_inh.nit:29,15--17: Warning: useless formal parameter type since `Int` cannot have subclasses.
+test_gen_inh.nit:34,15--17: Warning: useless formal parameter type since `Int` cannot have subclasses.
11
22
33
2
0
* test 2 *
-1000
-334
+100
+34
* test 3 *
* start:
true
-test_isa.nit:25,7--19: Warning: Expression is already a Object.
-test_isa.nit:34,7--19: Warning: Expression is already a Object.
-test_isa.nit:43,7--28: Warning: Expression is already a nullable Object.
+test_isa.nit:25,7--19: Warning: expression is already a `Object`.
+test_isa.nit:34,7--19: Warning: expression is already a `Object`.
+test_isa.nit:43,7--28: Warning: expression is already a `nullable Object`.
int:
true
true
2
0
* test 2 *
-1000
-334
+100
+34
* test 3 *
* start:
true
-1234567891011121314151617181920212223
+12345678910
-test_multiconstraint.nit:64,7: Error: A class G is already defined at line 56.
-test_multiconstraint.nit:70,7: Error: A class G is already defined at line 56.
+test_multiconstraint.nit:64,7: Error: a class `G` is already defined at line 56.
+test_multiconstraint.nit:70,7: Error: a class `G` is already defined at line 56.
-test_multiconstraint_inh.nit:39,18--21: Redef Error: Wrong type for parameter `e'. found J, expected I[E] as in test_multiconstraint_inh#G#baz.
+test_multiconstraint_inh.nit:39,18--21: Redef Error: expected `I[E]` for parameter `e'; got `J`.
-test_multiconstraint.nit:64,7: Error: A class G is already defined at line 56.
-test_multiconstraint.nit:70,7: Error: A class G is already defined at line 56.
+test_multiconstraint.nit:64,7: Error: a class `G` is already defined at line 56.
+test_multiconstraint.nit:70,7: Error: a class `G` is already defined at line 56.
-test_multiconstraint.nit:64,7: Error: A class G is already defined at line 56.
-test_multiconstraint.nit:70,7: Error: A class G is already defined at line 56.
+test_multiconstraint.nit:64,7: Error: a class `G` is already defined at line 56.
+test_multiconstraint.nit:70,7: Error: a class `G` is already defined at line 56.
-Runtime error: Cast failed. Expected `E`, got `Bool` (../lib/standard/collection/array.nit:909)
+Runtime error: Cast failed. Expected `E`, got `Bool` (../lib/standard/collection/array.nit:960)
NativeString
N
Nit
-n do not print anything
-l only lexer
-p lexer and parser (default)
+ -x instead of a ascii tree, output a XML document
-e instead on files, each argument is a content to parse
-i tree to parse are read interactively
-h print this help
-Start ../src/test_parser.nit:17,1--147,1
- AModule ../src/test_parser.nit:17,1--146,3
+Start ../src/test_parser.nit:17,1--156,1
+ AModule ../src/test_parser.nit:17,1--155,3
AModuledecl ../src/test_parser.nit:17,1--18,18
ADoc ../src/test_parser.nit:17,1--18,0
TComment "# Program used to test the NIT parser\n" ../src/test_parser.nit:17,1--18,0
TKwimport "import" ../src/test_parser.nit:21,1--6
AModuleName ../src/test_parser.nit:21,8--18
TId "parser_util" ../src/test_parser.nit:21,8--18
- AStdClassdef ../src/test_parser.nit:23,1--37,3
- APublicVisibility ../src/test_parser.nit:23,1
- AConcreteClasskind ../src/test_parser.nit:23,1--5
- TKwclass "class" ../src/test_parser.nit:23,1--5
- TClassid "PrintTreeVisitor" ../src/test_parser.nit:23,7--22
- ASuperPropdef ../src/test_parser.nit:24,2--14
- APublicVisibility ../src/test_parser.nit:24,2
- TKwsuper "super" ../src/test_parser.nit:24,2--6
- AType ../src/test_parser.nit:24,8--14
- TClassid "Visitor" ../src/test_parser.nit:24,8--14
- AAttrPropdef ../src/test_parser.nit:25,2--26
- APrivateVisibility ../src/test_parser.nit:25,2--8
- TKwprivate "private" ../src/test_parser.nit:25,2--8
- TKwvar "var" ../src/test_parser.nit:25,10--12
- TId "rank" ../src/test_parser.nit:25,14--17
- AType ../src/test_parser.nit:25,20--22
- TClassid "Int" ../src/test_parser.nit:25,20--22
- ADecIntExpr ../src/test_parser.nit:25,26
- TNumber "0" ../src/test_parser.nit:25,26
- AMethPropdef ../src/test_parser.nit:26,2--36,4
- TKwredef "redef" ../src/test_parser.nit:26,2--6
- APublicVisibility ../src/test_parser.nit:26,8
- TKwmeth "fun" ../src/test_parser.nit:26,8--10
- AIdMethid ../src/test_parser.nit:26,12--16
- TId "visit" ../src/test_parser.nit:26,12--16
- ASignature ../src/test_parser.nit:26,17--19
- TOpar "(" ../src/test_parser.nit:26,17
- AParam ../src/test_parser.nit:26,18
- TId "n" ../src/test_parser.nit:26,18
- TCpar ")" ../src/test_parser.nit:26,19
- ABlockExpr ../src/test_parser.nit:28,3--36,4
- AIfExpr ../src/test_parser.nit:28,3--32,5
- TKwif "if" ../src/test_parser.nit:28,3--4
- AIsaExpr ../src/test_parser.nit:28,6--16
- ACallExpr ../src/test_parser.nit:28,6
- AImplicitSelfExpr ../src/test_parser.nit:28,6
- TId "n" ../src/test_parser.nit:28,6
- AListExprs ../src/test_parser.nit:28,6
- AType ../src/test_parser.nit:28,12--16
- TClassid "Token" ../src/test_parser.nit:28,12--16
- ABlockExpr ../src/test_parser.nit:29,4--88
- ACallExpr ../src/test_parser.nit:29,4--88
- AImplicitSelfExpr ../src/test_parser.nit:29,4
- TId "printn" ../src/test_parser.nit:29,4--9
- AParExprs ../src/test_parser.nit:29,10--88
- TOpar "(" ../src/test_parser.nit:29,10
- AStarExpr ../src/test_parser.nit:29,11--21
- AStringExpr ../src/test_parser.nit:29,11--14
- TString "\" \"" ../src/test_parser.nit:29,11--14
- ACallExpr ../src/test_parser.nit:29,18--21
- AImplicitSelfExpr ../src/test_parser.nit:29,18
- TId "rank" ../src/test_parser.nit:29,18--21
- AListExprs ../src/test_parser.nit:29,21
- ACallExpr ../src/test_parser.nit:29,24--35
- ACallExpr ../src/test_parser.nit:29,24
- AImplicitSelfExpr ../src/test_parser.nit:29,24
- TId "n" ../src/test_parser.nit:29,24
- AListExprs ../src/test_parser.nit:29,24
- TId "class_name" ../src/test_parser.nit:29,26--35
- AListExprs ../src/test_parser.nit:29,35
- AStringExpr ../src/test_parser.nit:29,38--42
- TString "\" \\\"\"" ../src/test_parser.nit:29,38--42
- ACallExpr ../src/test_parser.nit:29,45--62
- ACallExpr ../src/test_parser.nit:29,45--50
- ACallExpr ../src/test_parser.nit:29,45
- AImplicitSelfExpr ../src/test_parser.nit:29,45
- TId "n" ../src/test_parser.nit:29,45
- AListExprs ../src/test_parser.nit:29,45
- TId "text" ../src/test_parser.nit:29,47--50
- AListExprs ../src/test_parser.nit:29,50
- TId "escape_to_c" ../src/test_parser.nit:29,52--62
- AListExprs ../src/test_parser.nit:29,62
- AStringExpr ../src/test_parser.nit:29,65--69
- TString "\"\\\" \"" ../src/test_parser.nit:29,65--69
- ACallExpr ../src/test_parser.nit:29,72--81
- ACallExpr ../src/test_parser.nit:29,72
- AImplicitSelfExpr ../src/test_parser.nit:29,72
- TId "n" ../src/test_parser.nit:29,72
- AListExprs ../src/test_parser.nit:29,72
- TId "location" ../src/test_parser.nit:29,74--81
- AListExprs ../src/test_parser.nit:29,81
- AStringExpr ../src/test_parser.nit:29,84--87
- TString "\"\\n\"" ../src/test_parser.nit:29,84--87
- TCpar ")" ../src/test_parser.nit:29,88
- ABlockExpr ../src/test_parser.nit:31,4--32,5
- ACallExpr ../src/test_parser.nit:31,4--59
+ AStdImport ../src/test_parser.nit:22,1--14
+ APublicVisibility ../src/test_parser.nit:22,1
+ TKwimport "import" ../src/test_parser.nit:22,1--6
+ AModuleName ../src/test_parser.nit:22,8--14
+ TId "astutil" ../src/test_parser.nit:22,8--14
+ AStdClassdef ../src/test_parser.nit:24,1--39,3
+ ADoc ../src/test_parser.nit:24,1--25,0
+ TComment "# A basic visitor that prints AST trees to the screen\n" ../src/test_parser.nit:24,1--25,0
+ APublicVisibility ../src/test_parser.nit:25,1
+ AConcreteClasskind ../src/test_parser.nit:25,1--5
+ TKwclass "class" ../src/test_parser.nit:25,1--5
+ TClassid "PrintTreeVisitor" ../src/test_parser.nit:25,7--22
+ ASuperPropdef ../src/test_parser.nit:26,2--14
+ APublicVisibility ../src/test_parser.nit:26,2
+ TKwsuper "super" ../src/test_parser.nit:26,2--6
+ AType ../src/test_parser.nit:26,8--14
+ TClassid "Visitor" ../src/test_parser.nit:26,8--14
+ AAttrPropdef ../src/test_parser.nit:27,2--26
+ APrivateVisibility ../src/test_parser.nit:27,2--8
+ TKwprivate "private" ../src/test_parser.nit:27,2--8
+ TKwvar "var" ../src/test_parser.nit:27,10--12
+ TId "rank" ../src/test_parser.nit:27,14--17
+ AType ../src/test_parser.nit:27,20--22
+ TClassid "Int" ../src/test_parser.nit:27,20--22
+ ADecIntExpr ../src/test_parser.nit:27,26
+ TNumber "0" ../src/test_parser.nit:27,26
+ AMethPropdef ../src/test_parser.nit:28,2--38,4
+ TKwredef "redef" ../src/test_parser.nit:28,2--6
+ APublicVisibility ../src/test_parser.nit:28,8
+ TKwmeth "fun" ../src/test_parser.nit:28,8--10
+ AIdMethid ../src/test_parser.nit:28,12--16
+ TId "visit" ../src/test_parser.nit:28,12--16
+ ASignature ../src/test_parser.nit:28,17--19
+ TOpar "(" ../src/test_parser.nit:28,17
+ AParam ../src/test_parser.nit:28,18
+ TId "n" ../src/test_parser.nit:28,18
+ TCpar ")" ../src/test_parser.nit:28,19
+ ABlockExpr ../src/test_parser.nit:30,3--38,4
+ AIfExpr ../src/test_parser.nit:30,3--34,5
+ TKwif "if" ../src/test_parser.nit:30,3--4
+ AIsaExpr ../src/test_parser.nit:30,6--16
+ ACallExpr ../src/test_parser.nit:30,6
+ AImplicitSelfExpr ../src/test_parser.nit:30,6
+ TId "n" ../src/test_parser.nit:30,6
+ AListExprs ../src/test_parser.nit:30,6
+ TKwisa "isa" ../src/test_parser.nit:30,8--10
+ AType ../src/test_parser.nit:30,12--16
+ TClassid "Token" ../src/test_parser.nit:30,12--16
+ ABlockExpr ../src/test_parser.nit:31,4--88
+ ACallExpr ../src/test_parser.nit:31,4--88
AImplicitSelfExpr ../src/test_parser.nit:31,4
TId "printn" ../src/test_parser.nit:31,4--9
- AParExprs ../src/test_parser.nit:31,10--59
+ AParExprs ../src/test_parser.nit:31,10--88
TOpar "(" ../src/test_parser.nit:31,10
AStarExpr ../src/test_parser.nit:31,11--21
AStringExpr ../src/test_parser.nit:31,11--14
TString "\" \"" ../src/test_parser.nit:31,11--14
+ TStar "*" ../src/test_parser.nit:31,16
ACallExpr ../src/test_parser.nit:31,18--21
AImplicitSelfExpr ../src/test_parser.nit:31,18
TId "rank" ../src/test_parser.nit:31,18--21
AListExprs ../src/test_parser.nit:31,24
TId "class_name" ../src/test_parser.nit:31,26--35
AListExprs ../src/test_parser.nit:31,35
- AStringExpr ../src/test_parser.nit:31,38--40
- TString "\" \"" ../src/test_parser.nit:31,38--40
- ACallExpr ../src/test_parser.nit:31,43--52
- ACallExpr ../src/test_parser.nit:31,43
- AImplicitSelfExpr ../src/test_parser.nit:31,43
- TId "n" ../src/test_parser.nit:31,43
- AListExprs ../src/test_parser.nit:31,43
- TId "location" ../src/test_parser.nit:31,45--52
- AListExprs ../src/test_parser.nit:31,52
- AStringExpr ../src/test_parser.nit:31,55--58
- TString "\"\\n\"" ../src/test_parser.nit:31,55--58
- TCpar ")" ../src/test_parser.nit:31,59
- TKwend "end" ../src/test_parser.nit:32,3--5
- ACallAssignExpr ../src/test_parser.nit:33,3--17
- AImplicitSelfExpr ../src/test_parser.nit:33,3
- TId "rank" ../src/test_parser.nit:33,3--6
- AListExprs ../src/test_parser.nit:33,8
- TAssign "=" ../src/test_parser.nit:33,8
- APlusExpr ../src/test_parser.nit:33,10--17
- ACallExpr ../src/test_parser.nit:33,10--13
- AImplicitSelfExpr ../src/test_parser.nit:33,10
- TId "rank" ../src/test_parser.nit:33,10--13
- AListExprs ../src/test_parser.nit:33,13
- ADecIntExpr ../src/test_parser.nit:33,17
- TNumber "1" ../src/test_parser.nit:33,17
- ACallExpr ../src/test_parser.nit:34,3--19
- ACallExpr ../src/test_parser.nit:34,3
- AImplicitSelfExpr ../src/test_parser.nit:34,3
- TId "n" ../src/test_parser.nit:34,3
- AListExprs ../src/test_parser.nit:34,3
- TId "visit_all" ../src/test_parser.nit:34,5--13
- AParExprs ../src/test_parser.nit:34,14--19
- TOpar "(" ../src/test_parser.nit:34,14
- ASelfExpr ../src/test_parser.nit:34,15--18
- TKwself "self" ../src/test_parser.nit:34,15--18
- TCpar ")" ../src/test_parser.nit:34,19
+ AStringExpr ../src/test_parser.nit:31,38--42
+ TString "\" \\\"\"" ../src/test_parser.nit:31,38--42
+ ACallExpr ../src/test_parser.nit:31,45--62
+ ACallExpr ../src/test_parser.nit:31,45--50
+ ACallExpr ../src/test_parser.nit:31,45
+ AImplicitSelfExpr ../src/test_parser.nit:31,45
+ TId "n" ../src/test_parser.nit:31,45
+ AListExprs ../src/test_parser.nit:31,45
+ TId "text" ../src/test_parser.nit:31,47--50
+ AListExprs ../src/test_parser.nit:31,50
+ TId "escape_to_c" ../src/test_parser.nit:31,52--62
+ AListExprs ../src/test_parser.nit:31,62
+ AStringExpr ../src/test_parser.nit:31,65--69
+ TString "\"\\\" \"" ../src/test_parser.nit:31,65--69
+ ACallExpr ../src/test_parser.nit:31,72--81
+ ACallExpr ../src/test_parser.nit:31,72
+ AImplicitSelfExpr ../src/test_parser.nit:31,72
+ TId "n" ../src/test_parser.nit:31,72
+ AListExprs ../src/test_parser.nit:31,72
+ TId "location" ../src/test_parser.nit:31,74--81
+ AListExprs ../src/test_parser.nit:31,81
+ AStringExpr ../src/test_parser.nit:31,84--87
+ TString "\"\\n\"" ../src/test_parser.nit:31,84--87
+ TCpar ")" ../src/test_parser.nit:31,88
+ ABlockExpr ../src/test_parser.nit:33,4--34,5
+ ACallExpr ../src/test_parser.nit:33,4--59
+ AImplicitSelfExpr ../src/test_parser.nit:33,4
+ TId "printn" ../src/test_parser.nit:33,4--9
+ AParExprs ../src/test_parser.nit:33,10--59
+ TOpar "(" ../src/test_parser.nit:33,10
+ AStarExpr ../src/test_parser.nit:33,11--21
+ AStringExpr ../src/test_parser.nit:33,11--14
+ TString "\" \"" ../src/test_parser.nit:33,11--14
+ TStar "*" ../src/test_parser.nit:33,16
+ ACallExpr ../src/test_parser.nit:33,18--21
+ AImplicitSelfExpr ../src/test_parser.nit:33,18
+ TId "rank" ../src/test_parser.nit:33,18--21
+ AListExprs ../src/test_parser.nit:33,21
+ ACallExpr ../src/test_parser.nit:33,24--35
+ ACallExpr ../src/test_parser.nit:33,24
+ AImplicitSelfExpr ../src/test_parser.nit:33,24
+ TId "n" ../src/test_parser.nit:33,24
+ AListExprs ../src/test_parser.nit:33,24
+ TId "class_name" ../src/test_parser.nit:33,26--35
+ AListExprs ../src/test_parser.nit:33,35
+ AStringExpr ../src/test_parser.nit:33,38--40
+ TString "\" \"" ../src/test_parser.nit:33,38--40
+ ACallExpr ../src/test_parser.nit:33,43--52
+ ACallExpr ../src/test_parser.nit:33,43
+ AImplicitSelfExpr ../src/test_parser.nit:33,43
+ TId "n" ../src/test_parser.nit:33,43
+ AListExprs ../src/test_parser.nit:33,43
+ TId "location" ../src/test_parser.nit:33,45--52
+ AListExprs ../src/test_parser.nit:33,52
+ AStringExpr ../src/test_parser.nit:33,55--58
+ TString "\"\\n\"" ../src/test_parser.nit:33,55--58
+ TCpar ")" ../src/test_parser.nit:33,59
+ TKwend "end" ../src/test_parser.nit:34,3--5
ACallAssignExpr ../src/test_parser.nit:35,3--17
AImplicitSelfExpr ../src/test_parser.nit:35,3
TId "rank" ../src/test_parser.nit:35,3--6
AListExprs ../src/test_parser.nit:35,8
TAssign "=" ../src/test_parser.nit:35,8
- AMinusExpr ../src/test_parser.nit:35,10--17
+ APlusExpr ../src/test_parser.nit:35,10--17
ACallExpr ../src/test_parser.nit:35,10--13
AImplicitSelfExpr ../src/test_parser.nit:35,10
TId "rank" ../src/test_parser.nit:35,10--13
AListExprs ../src/test_parser.nit:35,13
+ TPlus "+" ../src/test_parser.nit:35,15
ADecIntExpr ../src/test_parser.nit:35,17
TNumber "1" ../src/test_parser.nit:35,17
- TKwend "end" ../src/test_parser.nit:36,2--4
- TKwend "end" ../src/test_parser.nit:37,1--3
- AMainClassdef ../src/test_parser.nit:39,1--146,3
- AMainMethPropdef ../src/test_parser.nit:39,1--146,3
- ABlockExpr ../src/test_parser.nit:39,1--146,3
- AVardeclExpr ../src/test_parser.nit:39,1--20
- TKwvar "var" ../src/test_parser.nit:39,1--3
- TId "no_print" ../src/test_parser.nit:39,5--12
- TAssign "=" ../src/test_parser.nit:39,14
- AFalseExpr ../src/test_parser.nit:39,16--20
- TKwfalse "false" ../src/test_parser.nit:39,16--20
- AVardeclExpr ../src/test_parser.nit:40,1--22
- TKwvar "var" ../src/test_parser.nit:40,1--3
- TId "only_lexer" ../src/test_parser.nit:40,5--14
- TAssign "=" ../src/test_parser.nit:40,16
- AFalseExpr ../src/test_parser.nit:40,18--22
- TKwfalse "false" ../src/test_parser.nit:40,18--22
- AVardeclExpr ../src/test_parser.nit:41,1--21
+ ACallExpr ../src/test_parser.nit:36,3--19
+ ACallExpr ../src/test_parser.nit:36,3
+ AImplicitSelfExpr ../src/test_parser.nit:36,3
+ TId "n" ../src/test_parser.nit:36,3
+ AListExprs ../src/test_parser.nit:36,3
+ TId "visit_all" ../src/test_parser.nit:36,5--13
+ AParExprs ../src/test_parser.nit:36,14--19
+ TOpar "(" ../src/test_parser.nit:36,14
+ ASelfExpr ../src/test_parser.nit:36,15--18
+ TKwself "self" ../src/test_parser.nit:36,15--18
+ TCpar ")" ../src/test_parser.nit:36,19
+ ACallAssignExpr ../src/test_parser.nit:37,3--17
+ AImplicitSelfExpr ../src/test_parser.nit:37,3
+ TId "rank" ../src/test_parser.nit:37,3--6
+ AListExprs ../src/test_parser.nit:37,8
+ TAssign "=" ../src/test_parser.nit:37,8
+ AMinusExpr ../src/test_parser.nit:37,10--17
+ ACallExpr ../src/test_parser.nit:37,10--13
+ AImplicitSelfExpr ../src/test_parser.nit:37,10
+ TId "rank" ../src/test_parser.nit:37,10--13
+ AListExprs ../src/test_parser.nit:37,13
+ TMinus "-" ../src/test_parser.nit:37,15
+ ADecIntExpr ../src/test_parser.nit:37,17
+ TNumber "1" ../src/test_parser.nit:37,17
+ TKwend "end" ../src/test_parser.nit:38,2--4
+ TKwend "end" ../src/test_parser.nit:39,1--3
+ AMainClassdef ../src/test_parser.nit:41,1--155,3
+ AMainMethPropdef ../src/test_parser.nit:41,1--155,3
+ ABlockExpr ../src/test_parser.nit:41,1--155,3
+ AVardeclExpr ../src/test_parser.nit:41,1--20
TKwvar "var" ../src/test_parser.nit:41,1--3
- TId "need_help" ../src/test_parser.nit:41,5--13
- TAssign "=" ../src/test_parser.nit:41,15
- AFalseExpr ../src/test_parser.nit:41,17--21
- TKwfalse "false" ../src/test_parser.nit:41,17--21
- AVardeclExpr ../src/test_parser.nit:42,1--19
+ TId "no_print" ../src/test_parser.nit:41,5--12
+ TAssign "=" ../src/test_parser.nit:41,14
+ AFalseExpr ../src/test_parser.nit:41,16--20
+ TKwfalse "false" ../src/test_parser.nit:41,16--20
+ AVardeclExpr ../src/test_parser.nit:42,1--22
TKwvar "var" ../src/test_parser.nit:42,1--3
- TId "no_file" ../src/test_parser.nit:42,5--11
- TAssign "=" ../src/test_parser.nit:42,13
- AFalseExpr ../src/test_parser.nit:42,15--19
- TKwfalse "false" ../src/test_parser.nit:42,15--19
- AVardeclExpr ../src/test_parser.nit:43,1--23
+ TId "only_lexer" ../src/test_parser.nit:42,5--14
+ TAssign "=" ../src/test_parser.nit:42,16
+ AFalseExpr ../src/test_parser.nit:42,18--22
+ TKwfalse "false" ../src/test_parser.nit:42,18--22
+ AVardeclExpr ../src/test_parser.nit:43,1--21
TKwvar "var" ../src/test_parser.nit:43,1--3
- TId "interactive" ../src/test_parser.nit:43,5--15
- TAssign "=" ../src/test_parser.nit:43,17
- AFalseExpr ../src/test_parser.nit:43,19--23
- TKwfalse "false" ../src/test_parser.nit:43,19--23
- AWhileExpr ../src/test_parser.nit:45,1--63,3
- TKwwhile "while" ../src/test_parser.nit:45,1--5
- AAndExpr ../src/test_parser.nit:45,7--57
- ANotExpr ../src/test_parser.nit:45,7--23
- TKwnot "not" ../src/test_parser.nit:45,7--9
- ACallExpr ../src/test_parser.nit:45,11--23
- ACallExpr ../src/test_parser.nit:45,11--14
- AImplicitSelfExpr ../src/test_parser.nit:45,11
- TId "args" ../src/test_parser.nit:45,11--14
- AListExprs ../src/test_parser.nit:45,14
- TId "is_empty" ../src/test_parser.nit:45,16--23
- AListExprs ../src/test_parser.nit:45,23
- AEqExpr ../src/test_parser.nit:45,29--57
- ACallExpr ../src/test_parser.nit:45,29--50
- ACallExpr ../src/test_parser.nit:45,29--44
- ACallExpr ../src/test_parser.nit:45,29--38
- ACallExpr ../src/test_parser.nit:45,29--32
- AImplicitSelfExpr ../src/test_parser.nit:45,29
- TId "args" ../src/test_parser.nit:45,29--32
- AListExprs ../src/test_parser.nit:45,32
- TId "first" ../src/test_parser.nit:45,34--38
- AListExprs ../src/test_parser.nit:45,38
- TId "chars" ../src/test_parser.nit:45,40--44
- AListExprs ../src/test_parser.nit:45,44
- TId "first" ../src/test_parser.nit:45,46--50
- AListExprs ../src/test_parser.nit:45,50
- ACharExpr ../src/test_parser.nit:45,55--57
- TChar "\'-\'" ../src/test_parser.nit:45,55--57
- TKwdo "do" ../src/test_parser.nit:45,59--60
- ABlockExpr ../src/test_parser.nit:46,2--63,3
- AIfExpr ../src/test_parser.nit:46,2--61,4
- TKwif "if" ../src/test_parser.nit:46,2--3
- AEqExpr ../src/test_parser.nit:46,5--22
- ACallExpr ../src/test_parser.nit:46,5--14
- ACallExpr ../src/test_parser.nit:46,5--8
- AImplicitSelfExpr ../src/test_parser.nit:46,5
- TId "args" ../src/test_parser.nit:46,5--8
- AListExprs ../src/test_parser.nit:46,8
- TId "first" ../src/test_parser.nit:46,10--14
- AListExprs ../src/test_parser.nit:46,14
- AStringExpr ../src/test_parser.nit:46,19--22
- TString "\"-n\"" ../src/test_parser.nit:46,19--22
- ABlockExpr ../src/test_parser.nit:47,3--17
- ACallAssignExpr ../src/test_parser.nit:47,3--17
- AImplicitSelfExpr ../src/test_parser.nit:47,3
- TId "no_print" ../src/test_parser.nit:47,3--10
- AListExprs ../src/test_parser.nit:47,12
- TAssign "=" ../src/test_parser.nit:47,12
- ATrueExpr ../src/test_parser.nit:47,14--17
- TKwtrue "true" ../src/test_parser.nit:47,14--17
- AIfExpr ../src/test_parser.nit:48,7--61,4
- TKwif "if" ../src/test_parser.nit:48,7--8
- AEqExpr ../src/test_parser.nit:48,10--27
- ACallExpr ../src/test_parser.nit:48,10--19
- ACallExpr ../src/test_parser.nit:48,10--13
- AImplicitSelfExpr ../src/test_parser.nit:48,10
- TId "args" ../src/test_parser.nit:48,10--13
- AListExprs ../src/test_parser.nit:48,13
- TId "first" ../src/test_parser.nit:48,15--19
- AListExprs ../src/test_parser.nit:48,19
- AStringExpr ../src/test_parser.nit:48,24--27
- TString "\"-l\"" ../src/test_parser.nit:48,24--27
- ABlockExpr ../src/test_parser.nit:49,3--19
- ACallAssignExpr ../src/test_parser.nit:49,3--19
- AImplicitSelfExpr ../src/test_parser.nit:49,3
- TId "only_lexer" ../src/test_parser.nit:49,3--12
- AListExprs ../src/test_parser.nit:49,14
- TAssign "=" ../src/test_parser.nit:49,14
- ATrueExpr ../src/test_parser.nit:49,16--19
- TKwtrue "true" ../src/test_parser.nit:49,16--19
- AIfExpr ../src/test_parser.nit:50,7--61,4
- TKwif "if" ../src/test_parser.nit:50,7--8
- AEqExpr ../src/test_parser.nit:50,10--27
- ACallExpr ../src/test_parser.nit:50,10--19
- ACallExpr ../src/test_parser.nit:50,10--13
- AImplicitSelfExpr ../src/test_parser.nit:50,10
- TId "args" ../src/test_parser.nit:50,10--13
- AListExprs ../src/test_parser.nit:50,13
- TId "first" ../src/test_parser.nit:50,15--19
- AListExprs ../src/test_parser.nit:50,19
- AStringExpr ../src/test_parser.nit:50,24--27
- TString "\"-p\"" ../src/test_parser.nit:50,24--27
- ABlockExpr ../src/test_parser.nit:51,3--20
- ACallAssignExpr ../src/test_parser.nit:51,3--20
- AImplicitSelfExpr ../src/test_parser.nit:51,3
- TId "only_lexer" ../src/test_parser.nit:51,3--12
- AListExprs ../src/test_parser.nit:51,14
- TAssign "=" ../src/test_parser.nit:51,14
- AFalseExpr ../src/test_parser.nit:51,16--20
- TKwfalse "false" ../src/test_parser.nit:51,16--20
- AIfExpr ../src/test_parser.nit:52,7--61,4
- TKwif "if" ../src/test_parser.nit:52,7--8
- AEqExpr ../src/test_parser.nit:52,10--27
- ACallExpr ../src/test_parser.nit:52,10--19
- ACallExpr ../src/test_parser.nit:52,10--13
- AImplicitSelfExpr ../src/test_parser.nit:52,10
- TId "args" ../src/test_parser.nit:52,10--13
- AListExprs ../src/test_parser.nit:52,13
- TId "first" ../src/test_parser.nit:52,15--19
- AListExprs ../src/test_parser.nit:52,19
- AStringExpr ../src/test_parser.nit:52,24--27
- TString "\"-e\"" ../src/test_parser.nit:52,24--27
- ABlockExpr ../src/test_parser.nit:53,3--16
- ACallAssignExpr ../src/test_parser.nit:53,3--16
- AImplicitSelfExpr ../src/test_parser.nit:53,3
- TId "no_file" ../src/test_parser.nit:53,3--9
- AListExprs ../src/test_parser.nit:53,11
- TAssign "=" ../src/test_parser.nit:53,11
- ATrueExpr ../src/test_parser.nit:53,13--16
- TKwtrue "true" ../src/test_parser.nit:53,13--16
- AIfExpr ../src/test_parser.nit:54,7--61,4
- TKwif "if" ../src/test_parser.nit:54,7--8
- AEqExpr ../src/test_parser.nit:54,10--27
- ACallExpr ../src/test_parser.nit:54,10--19
- ACallExpr ../src/test_parser.nit:54,10--13
- AImplicitSelfExpr ../src/test_parser.nit:54,10
- TId "args" ../src/test_parser.nit:54,10--13
- AListExprs ../src/test_parser.nit:54,13
- TId "first" ../src/test_parser.nit:54,15--19
- AListExprs ../src/test_parser.nit:54,19
- AStringExpr ../src/test_parser.nit:54,24--27
- TString "\"-i\"" ../src/test_parser.nit:54,24--27
- ABlockExpr ../src/test_parser.nit:55,3--20
- ACallAssignExpr ../src/test_parser.nit:55,3--20
- AImplicitSelfExpr ../src/test_parser.nit:55,3
- TId "interactive" ../src/test_parser.nit:55,3--13
- AListExprs ../src/test_parser.nit:55,15
- TAssign "=" ../src/test_parser.nit:55,15
- ATrueExpr ../src/test_parser.nit:55,17--20
- TKwtrue "true" ../src/test_parser.nit:55,17--20
- AIfExpr ../src/test_parser.nit:56,7--61,4
- TKwif "if" ../src/test_parser.nit:56,7--8
- AOrExpr ../src/test_parser.nit:56,10--49
- AEqExpr ../src/test_parser.nit:56,10--27
- ACallExpr ../src/test_parser.nit:56,10--19
- ACallExpr ../src/test_parser.nit:56,10--13
- AImplicitSelfExpr ../src/test_parser.nit:56,10
- TId "args" ../src/test_parser.nit:56,10--13
- AListExprs ../src/test_parser.nit:56,13
- TId "first" ../src/test_parser.nit:56,15--19
- AListExprs ../src/test_parser.nit:56,19
- AStringExpr ../src/test_parser.nit:56,24--27
- TString "\"-h\"" ../src/test_parser.nit:56,24--27
- AEqExpr ../src/test_parser.nit:56,32--49
- ACallExpr ../src/test_parser.nit:56,32--41
- ACallExpr ../src/test_parser.nit:56,32--35
- AImplicitSelfExpr ../src/test_parser.nit:56,32
- TId "args" ../src/test_parser.nit:56,32--35
- AListExprs ../src/test_parser.nit:56,35
- TId "first" ../src/test_parser.nit:56,37--41
- AListExprs ../src/test_parser.nit:56,41
- AStringExpr ../src/test_parser.nit:56,46--49
- TString "\"-?\"" ../src/test_parser.nit:56,46--49
- ABlockExpr ../src/test_parser.nit:57,3--18
- ACallAssignExpr ../src/test_parser.nit:57,3--18
- AImplicitSelfExpr ../src/test_parser.nit:57,3
- TId "need_help" ../src/test_parser.nit:57,3--11
+ TId "need_help" ../src/test_parser.nit:43,5--13
+ TAssign "=" ../src/test_parser.nit:43,15
+ AFalseExpr ../src/test_parser.nit:43,17--21
+ TKwfalse "false" ../src/test_parser.nit:43,17--21
+ AVardeclExpr ../src/test_parser.nit:44,1--19
+ TKwvar "var" ../src/test_parser.nit:44,1--3
+ TId "no_file" ../src/test_parser.nit:44,5--11
+ TAssign "=" ../src/test_parser.nit:44,13
+ AFalseExpr ../src/test_parser.nit:44,15--19
+ TKwfalse "false" ../src/test_parser.nit:44,15--19
+ AVardeclExpr ../src/test_parser.nit:45,1--23
+ TKwvar "var" ../src/test_parser.nit:45,1--3
+ TId "interactive" ../src/test_parser.nit:45,5--15
+ TAssign "=" ../src/test_parser.nit:45,17
+ AFalseExpr ../src/test_parser.nit:45,19--23
+ TKwfalse "false" ../src/test_parser.nit:45,19--23
+ AVardeclExpr ../src/test_parser.nit:46,1--15
+ TKwvar "var" ../src/test_parser.nit:46,1--3
+ TId "xml" ../src/test_parser.nit:46,5--7
+ TAssign "=" ../src/test_parser.nit:46,9
+ AFalseExpr ../src/test_parser.nit:46,11--15
+ TKwfalse "false" ../src/test_parser.nit:46,11--15
+ AWhileExpr ../src/test_parser.nit:48,1--68,3
+ TKwwhile "while" ../src/test_parser.nit:48,1--5
+ AAndExpr ../src/test_parser.nit:48,7--57
+ ANotExpr ../src/test_parser.nit:48,7--23
+ TKwnot "not" ../src/test_parser.nit:48,7--9
+ ACallExpr ../src/test_parser.nit:48,11--23
+ ACallExpr ../src/test_parser.nit:48,11--14
+ AImplicitSelfExpr ../src/test_parser.nit:48,11
+ TId "args" ../src/test_parser.nit:48,11--14
+ AListExprs ../src/test_parser.nit:48,14
+ TId "is_empty" ../src/test_parser.nit:48,16--23
+ AListExprs ../src/test_parser.nit:48,23
+ TKwand "and" ../src/test_parser.nit:48,25--27
+ AEqExpr ../src/test_parser.nit:48,29--57
+ ACallExpr ../src/test_parser.nit:48,29--50
+ ACallExpr ../src/test_parser.nit:48,29--44
+ ACallExpr ../src/test_parser.nit:48,29--38
+ ACallExpr ../src/test_parser.nit:48,29--32
+ AImplicitSelfExpr ../src/test_parser.nit:48,29
+ TId "args" ../src/test_parser.nit:48,29--32
+ AListExprs ../src/test_parser.nit:48,32
+ TId "first" ../src/test_parser.nit:48,34--38
+ AListExprs ../src/test_parser.nit:48,38
+ TId "chars" ../src/test_parser.nit:48,40--44
+ AListExprs ../src/test_parser.nit:48,44
+ TId "first" ../src/test_parser.nit:48,46--50
+ AListExprs ../src/test_parser.nit:48,50
+ TEq "==" ../src/test_parser.nit:48,52--53
+ ACharExpr ../src/test_parser.nit:48,55--57
+ TChar "\'-\'" ../src/test_parser.nit:48,55--57
+ TKwdo "do" ../src/test_parser.nit:48,59--60
+ ABlockExpr ../src/test_parser.nit:49,2--68,3
+ AIfExpr ../src/test_parser.nit:49,2--66,4
+ TKwif "if" ../src/test_parser.nit:49,2--3
+ AEqExpr ../src/test_parser.nit:49,5--22
+ ACallExpr ../src/test_parser.nit:49,5--14
+ ACallExpr ../src/test_parser.nit:49,5--8
+ AImplicitSelfExpr ../src/test_parser.nit:49,5
+ TId "args" ../src/test_parser.nit:49,5--8
+ AListExprs ../src/test_parser.nit:49,8
+ TId "first" ../src/test_parser.nit:49,10--14
+ AListExprs ../src/test_parser.nit:49,14
+ TEq "==" ../src/test_parser.nit:49,16--17
+ AStringExpr ../src/test_parser.nit:49,19--22
+ TString "\"-n\"" ../src/test_parser.nit:49,19--22
+ ABlockExpr ../src/test_parser.nit:50,3--17
+ ACallAssignExpr ../src/test_parser.nit:50,3--17
+ AImplicitSelfExpr ../src/test_parser.nit:50,3
+ TId "no_print" ../src/test_parser.nit:50,3--10
+ AListExprs ../src/test_parser.nit:50,12
+ TAssign "=" ../src/test_parser.nit:50,12
+ ATrueExpr ../src/test_parser.nit:50,14--17
+ TKwtrue "true" ../src/test_parser.nit:50,14--17
+ AIfExpr ../src/test_parser.nit:51,7--66,4
+ TKwif "if" ../src/test_parser.nit:51,7--8
+ AEqExpr ../src/test_parser.nit:51,10--27
+ ACallExpr ../src/test_parser.nit:51,10--19
+ ACallExpr ../src/test_parser.nit:51,10--13
+ AImplicitSelfExpr ../src/test_parser.nit:51,10
+ TId "args" ../src/test_parser.nit:51,10--13
+ AListExprs ../src/test_parser.nit:51,13
+ TId "first" ../src/test_parser.nit:51,15--19
+ AListExprs ../src/test_parser.nit:51,19
+ TEq "==" ../src/test_parser.nit:51,21--22
+ AStringExpr ../src/test_parser.nit:51,24--27
+ TString "\"-l\"" ../src/test_parser.nit:51,24--27
+ ABlockExpr ../src/test_parser.nit:52,3--19
+ ACallAssignExpr ../src/test_parser.nit:52,3--19
+ AImplicitSelfExpr ../src/test_parser.nit:52,3
+ TId "only_lexer" ../src/test_parser.nit:52,3--12
+ AListExprs ../src/test_parser.nit:52,14
+ TAssign "=" ../src/test_parser.nit:52,14
+ ATrueExpr ../src/test_parser.nit:52,16--19
+ TKwtrue "true" ../src/test_parser.nit:52,16--19
+ AIfExpr ../src/test_parser.nit:53,7--66,4
+ TKwif "if" ../src/test_parser.nit:53,7--8
+ AEqExpr ../src/test_parser.nit:53,10--27
+ ACallExpr ../src/test_parser.nit:53,10--19
+ ACallExpr ../src/test_parser.nit:53,10--13
+ AImplicitSelfExpr ../src/test_parser.nit:53,10
+ TId "args" ../src/test_parser.nit:53,10--13
+ AListExprs ../src/test_parser.nit:53,13
+ TId "first" ../src/test_parser.nit:53,15--19
+ AListExprs ../src/test_parser.nit:53,19
+ TEq "==" ../src/test_parser.nit:53,21--22
+ AStringExpr ../src/test_parser.nit:53,24--27
+ TString "\"-p\"" ../src/test_parser.nit:53,24--27
+ ABlockExpr ../src/test_parser.nit:54,3--20
+ ACallAssignExpr ../src/test_parser.nit:54,3--20
+ AImplicitSelfExpr ../src/test_parser.nit:54,3
+ TId "only_lexer" ../src/test_parser.nit:54,3--12
+ AListExprs ../src/test_parser.nit:54,14
+ TAssign "=" ../src/test_parser.nit:54,14
+ AFalseExpr ../src/test_parser.nit:54,16--20
+ TKwfalse "false" ../src/test_parser.nit:54,16--20
+ AIfExpr ../src/test_parser.nit:55,7--66,4
+ TKwif "if" ../src/test_parser.nit:55,7--8
+ AEqExpr ../src/test_parser.nit:55,10--27
+ ACallExpr ../src/test_parser.nit:55,10--19
+ ACallExpr ../src/test_parser.nit:55,10--13
+ AImplicitSelfExpr ../src/test_parser.nit:55,10
+ TId "args" ../src/test_parser.nit:55,10--13
+ AListExprs ../src/test_parser.nit:55,13
+ TId "first" ../src/test_parser.nit:55,15--19
+ AListExprs ../src/test_parser.nit:55,19
+ TEq "==" ../src/test_parser.nit:55,21--22
+ AStringExpr ../src/test_parser.nit:55,24--27
+ TString "\"-x\"" ../src/test_parser.nit:55,24--27
+ ABlockExpr ../src/test_parser.nit:56,3--12
+ ACallAssignExpr ../src/test_parser.nit:56,3--12
+ AImplicitSelfExpr ../src/test_parser.nit:56,3
+ TId "xml" ../src/test_parser.nit:56,3--5
+ AListExprs ../src/test_parser.nit:56,7
+ TAssign "=" ../src/test_parser.nit:56,7
+ ATrueExpr ../src/test_parser.nit:56,9--12
+ TKwtrue "true" ../src/test_parser.nit:56,9--12
+ AIfExpr ../src/test_parser.nit:57,7--66,4
+ TKwif "if" ../src/test_parser.nit:57,7--8
+ AEqExpr ../src/test_parser.nit:57,10--27
+ ACallExpr ../src/test_parser.nit:57,10--19
+ ACallExpr ../src/test_parser.nit:57,10--13
+ AImplicitSelfExpr ../src/test_parser.nit:57,10
+ TId "args" ../src/test_parser.nit:57,10--13
AListExprs ../src/test_parser.nit:57,13
- TAssign "=" ../src/test_parser.nit:57,13
- ATrueExpr ../src/test_parser.nit:57,15--18
- TKwtrue "true" ../src/test_parser.nit:57,15--18
- ABlockExpr ../src/test_parser.nit:59,3--61,4
- ACallExpr ../src/test_parser.nit:59,3--48
- ACallExpr ../src/test_parser.nit:59,3--8
- AImplicitSelfExpr ../src/test_parser.nit:59,3
- TId "stderr" ../src/test_parser.nit:59,3--8
- AListExprs ../src/test_parser.nit:59,8
- TId "write" ../src/test_parser.nit:59,10--14
- AParExprs ../src/test_parser.nit:59,15--48
- TOpar "(" ../src/test_parser.nit:59,15
- ASuperstringExpr ../src/test_parser.nit:59,16--47
- AStartStringExpr ../src/test_parser.nit:59,16--32
- TStartString "\"Unknown option {" ../src/test_parser.nit:59,16--32
- ACallExpr ../src/test_parser.nit:59,33--42
- ACallExpr ../src/test_parser.nit:59,33--36
- AImplicitSelfExpr ../src/test_parser.nit:59,33
- TId "args" ../src/test_parser.nit:59,33--36
- AListExprs ../src/test_parser.nit:59,36
- TId "first" ../src/test_parser.nit:59,38--42
- AListExprs ../src/test_parser.nit:59,42
- AEndStringExpr ../src/test_parser.nit:59,43--47
- TEndString "}.\\n\"" ../src/test_parser.nit:59,43--47
- TCpar ")" ../src/test_parser.nit:59,48
- ACallExpr ../src/test_parser.nit:60,3--9
+ TId "first" ../src/test_parser.nit:57,15--19
+ AListExprs ../src/test_parser.nit:57,19
+ TEq "==" ../src/test_parser.nit:57,21--22
+ AStringExpr ../src/test_parser.nit:57,24--27
+ TString "\"-e\"" ../src/test_parser.nit:57,24--27
+ ABlockExpr ../src/test_parser.nit:58,3--16
+ ACallAssignExpr ../src/test_parser.nit:58,3--16
+ AImplicitSelfExpr ../src/test_parser.nit:58,3
+ TId "no_file" ../src/test_parser.nit:58,3--9
+ AListExprs ../src/test_parser.nit:58,11
+ TAssign "=" ../src/test_parser.nit:58,11
+ ATrueExpr ../src/test_parser.nit:58,13--16
+ TKwtrue "true" ../src/test_parser.nit:58,13--16
+ AIfExpr ../src/test_parser.nit:59,7--66,4
+ TKwif "if" ../src/test_parser.nit:59,7--8
+ AEqExpr ../src/test_parser.nit:59,10--27
+ ACallExpr ../src/test_parser.nit:59,10--19
+ ACallExpr ../src/test_parser.nit:59,10--13
+ AImplicitSelfExpr ../src/test_parser.nit:59,10
+ TId "args" ../src/test_parser.nit:59,10--13
+ AListExprs ../src/test_parser.nit:59,13
+ TId "first" ../src/test_parser.nit:59,15--19
+ AListExprs ../src/test_parser.nit:59,19
+ TEq "==" ../src/test_parser.nit:59,21--22
+ AStringExpr ../src/test_parser.nit:59,24--27
+ TString "\"-i\"" ../src/test_parser.nit:59,24--27
+ ABlockExpr ../src/test_parser.nit:60,3--20
+ ACallAssignExpr ../src/test_parser.nit:60,3--20
AImplicitSelfExpr ../src/test_parser.nit:60,3
- TId "exit" ../src/test_parser.nit:60,3--6
- AParExprs ../src/test_parser.nit:60,7--9
- TOpar "(" ../src/test_parser.nit:60,7
- ADecIntExpr ../src/test_parser.nit:60,8
- TNumber "0" ../src/test_parser.nit:60,8
- TCpar ")" ../src/test_parser.nit:60,9
- TKwend "end" ../src/test_parser.nit:61,2--4
- ACallExpr ../src/test_parser.nit:62,2--11
- ACallExpr ../src/test_parser.nit:62,2--5
- AImplicitSelfExpr ../src/test_parser.nit:62,2
- TId "args" ../src/test_parser.nit:62,2--5
- AListExprs ../src/test_parser.nit:62,5
- TId "shift" ../src/test_parser.nit:62,7--11
- AListExprs ../src/test_parser.nit:62,11
- TKwend "end" ../src/test_parser.nit:63,1--3
- AIfExpr ../src/test_parser.nit:65,1--146,3
- TKwif "if" ../src/test_parser.nit:65,1--2
- AOrExpr ../src/test_parser.nit:65,4--51
- AParExpr ../src/test_parser.nit:65,4--38
- TOpar "(" ../src/test_parser.nit:65,4
- AAndExpr ../src/test_parser.nit:65,5--37
- ACallExpr ../src/test_parser.nit:65,5--17
- ACallExpr ../src/test_parser.nit:65,5--8
- AImplicitSelfExpr ../src/test_parser.nit:65,5
- TId "args" ../src/test_parser.nit:65,5--8
- AListExprs ../src/test_parser.nit:65,8
- TId "is_empty" ../src/test_parser.nit:65,10--17
- AListExprs ../src/test_parser.nit:65,17
- ANotExpr ../src/test_parser.nit:65,23--37
- TKwnot "not" ../src/test_parser.nit:65,23--25
- ACallExpr ../src/test_parser.nit:65,27--37
- AImplicitSelfExpr ../src/test_parser.nit:65,27
- TId "interactive" ../src/test_parser.nit:65,27--37
- AListExprs ../src/test_parser.nit:65,37
- TCpar ")" ../src/test_parser.nit:65,38
- ACallExpr ../src/test_parser.nit:65,43--51
- AImplicitSelfExpr ../src/test_parser.nit:65,43
- TId "need_help" ../src/test_parser.nit:65,43--51
- AListExprs ../src/test_parser.nit:65,51
- ABlockExpr ../src/test_parser.nit:66,2--76,30
- ACallExpr ../src/test_parser.nit:66,2--16
- AImplicitSelfExpr ../src/test_parser.nit:66,2
- TId "print" ../src/test_parser.nit:66,2--6
- AParExprs ../src/test_parser.nit:66,7--16
- TOpar "(" ../src/test_parser.nit:66,7
- AStringExpr ../src/test_parser.nit:66,8--15
- TString "\"usage:\"" ../src/test_parser.nit:66,8--15
- TCpar ")" ../src/test_parser.nit:66,16
- ACallExpr ../src/test_parser.nit:67,2--54
- AImplicitSelfExpr ../src/test_parser.nit:67,2
- TId "print" ../src/test_parser.nit:67,2--6
- AParExprs ../src/test_parser.nit:67,7--54
- TOpar "(" ../src/test_parser.nit:67,7
- AStringExpr ../src/test_parser.nit:67,8--53
- TString "\" test_parser [options]... <filename.nit>...\"" ../src/test_parser.nit:67,8--53
- TCpar ")" ../src/test_parser.nit:67,54
- ACallExpr ../src/test_parser.nit:68,2--49
- AImplicitSelfExpr ../src/test_parser.nit:68,2
- TId "print" ../src/test_parser.nit:68,2--6
- AParExprs ../src/test_parser.nit:68,7--49
- TOpar "(" ../src/test_parser.nit:68,7
- AStringExpr ../src/test_parser.nit:68,8--48
- TString "\" test_parser -e [options]... <text>...\"" ../src/test_parser.nit:68,8--48
- TCpar ")" ../src/test_parser.nit:68,49
- ACallExpr ../src/test_parser.nit:69,2--39
- AImplicitSelfExpr ../src/test_parser.nit:69,2
- TId "print" ../src/test_parser.nit:69,2--6
- AParExprs ../src/test_parser.nit:69,7--39
- TOpar "(" ../src/test_parser.nit:69,7
- AStringExpr ../src/test_parser.nit:69,8--38
- TString "\" test_parser -i [options]...\"" ../src/test_parser.nit:69,8--38
- TCpar ")" ../src/test_parser.nit:69,39
- ACallExpr ../src/test_parser.nit:70,2--18
- AImplicitSelfExpr ../src/test_parser.nit:70,2
- TId "print" ../src/test_parser.nit:70,2--6
- AParExprs ../src/test_parser.nit:70,7--18
- TOpar "(" ../src/test_parser.nit:70,7
- AStringExpr ../src/test_parser.nit:70,8--17
- TString "\"options:\"" ../src/test_parser.nit:70,8--17
- TCpar ")" ../src/test_parser.nit:70,18
- ACallExpr ../src/test_parser.nit:71,2--36
+ TId "interactive" ../src/test_parser.nit:60,3--13
+ AListExprs ../src/test_parser.nit:60,15
+ TAssign "=" ../src/test_parser.nit:60,15
+ ATrueExpr ../src/test_parser.nit:60,17--20
+ TKwtrue "true" ../src/test_parser.nit:60,17--20
+ AIfExpr ../src/test_parser.nit:61,7--66,4
+ TKwif "if" ../src/test_parser.nit:61,7--8
+ AOrExpr ../src/test_parser.nit:61,10--49
+ AEqExpr ../src/test_parser.nit:61,10--27
+ ACallExpr ../src/test_parser.nit:61,10--19
+ ACallExpr ../src/test_parser.nit:61,10--13
+ AImplicitSelfExpr ../src/test_parser.nit:61,10
+ TId "args" ../src/test_parser.nit:61,10--13
+ AListExprs ../src/test_parser.nit:61,13
+ TId "first" ../src/test_parser.nit:61,15--19
+ AListExprs ../src/test_parser.nit:61,19
+ TEq "==" ../src/test_parser.nit:61,21--22
+ AStringExpr ../src/test_parser.nit:61,24--27
+ TString "\"-h\"" ../src/test_parser.nit:61,24--27
+ TKwor "or" ../src/test_parser.nit:61,29--30
+ AEqExpr ../src/test_parser.nit:61,32--49
+ ACallExpr ../src/test_parser.nit:61,32--41
+ ACallExpr ../src/test_parser.nit:61,32--35
+ AImplicitSelfExpr ../src/test_parser.nit:61,32
+ TId "args" ../src/test_parser.nit:61,32--35
+ AListExprs ../src/test_parser.nit:61,35
+ TId "first" ../src/test_parser.nit:61,37--41
+ AListExprs ../src/test_parser.nit:61,41
+ TEq "==" ../src/test_parser.nit:61,43--44
+ AStringExpr ../src/test_parser.nit:61,46--49
+ TString "\"-?\"" ../src/test_parser.nit:61,46--49
+ ABlockExpr ../src/test_parser.nit:62,3--18
+ ACallAssignExpr ../src/test_parser.nit:62,3--18
+ AImplicitSelfExpr ../src/test_parser.nit:62,3
+ TId "need_help" ../src/test_parser.nit:62,3--11
+ AListExprs ../src/test_parser.nit:62,13
+ TAssign "=" ../src/test_parser.nit:62,13
+ ATrueExpr ../src/test_parser.nit:62,15--18
+ TKwtrue "true" ../src/test_parser.nit:62,15--18
+ ABlockExpr ../src/test_parser.nit:64,3--66,4
+ ACallExpr ../src/test_parser.nit:64,3--48
+ ACallExpr ../src/test_parser.nit:64,3--8
+ AImplicitSelfExpr ../src/test_parser.nit:64,3
+ TId "stderr" ../src/test_parser.nit:64,3--8
+ AListExprs ../src/test_parser.nit:64,8
+ TId "write" ../src/test_parser.nit:64,10--14
+ AParExprs ../src/test_parser.nit:64,15--48
+ TOpar "(" ../src/test_parser.nit:64,15
+ ASuperstringExpr ../src/test_parser.nit:64,16--47
+ AStartStringExpr ../src/test_parser.nit:64,16--32
+ TStartString "\"Unknown option {" ../src/test_parser.nit:64,16--32
+ ACallExpr ../src/test_parser.nit:64,33--42
+ ACallExpr ../src/test_parser.nit:64,33--36
+ AImplicitSelfExpr ../src/test_parser.nit:64,33
+ TId "args" ../src/test_parser.nit:64,33--36
+ AListExprs ../src/test_parser.nit:64,36
+ TId "first" ../src/test_parser.nit:64,38--42
+ AListExprs ../src/test_parser.nit:64,42
+ AEndStringExpr ../src/test_parser.nit:64,43--47
+ TEndString "}.\\n\"" ../src/test_parser.nit:64,43--47
+ TCpar ")" ../src/test_parser.nit:64,48
+ ACallExpr ../src/test_parser.nit:65,3--9
+ AImplicitSelfExpr ../src/test_parser.nit:65,3
+ TId "exit" ../src/test_parser.nit:65,3--6
+ AParExprs ../src/test_parser.nit:65,7--9
+ TOpar "(" ../src/test_parser.nit:65,7
+ ADecIntExpr ../src/test_parser.nit:65,8
+ TNumber "0" ../src/test_parser.nit:65,8
+ TCpar ")" ../src/test_parser.nit:65,9
+ TKwend "end" ../src/test_parser.nit:66,2--4
+ ACallExpr ../src/test_parser.nit:67,2--11
+ ACallExpr ../src/test_parser.nit:67,2--5
+ AImplicitSelfExpr ../src/test_parser.nit:67,2
+ TId "args" ../src/test_parser.nit:67,2--5
+ AListExprs ../src/test_parser.nit:67,5
+ TId "shift" ../src/test_parser.nit:67,7--11
+ AListExprs ../src/test_parser.nit:67,11
+ TKwend "end" ../src/test_parser.nit:68,1--3
+ AIfExpr ../src/test_parser.nit:70,1--155,3
+ TKwif "if" ../src/test_parser.nit:70,1--2
+ AOrExpr ../src/test_parser.nit:70,4--51
+ AParExpr ../src/test_parser.nit:70,4--38
+ TOpar "(" ../src/test_parser.nit:70,4
+ AAndExpr ../src/test_parser.nit:70,5--37
+ ACallExpr ../src/test_parser.nit:70,5--17
+ ACallExpr ../src/test_parser.nit:70,5--8
+ AImplicitSelfExpr ../src/test_parser.nit:70,5
+ TId "args" ../src/test_parser.nit:70,5--8
+ AListExprs ../src/test_parser.nit:70,8
+ TId "is_empty" ../src/test_parser.nit:70,10--17
+ AListExprs ../src/test_parser.nit:70,17
+ TKwand "and" ../src/test_parser.nit:70,19--21
+ ANotExpr ../src/test_parser.nit:70,23--37
+ TKwnot "not" ../src/test_parser.nit:70,23--25
+ ACallExpr ../src/test_parser.nit:70,27--37
+ AImplicitSelfExpr ../src/test_parser.nit:70,27
+ TId "interactive" ../src/test_parser.nit:70,27--37
+ AListExprs ../src/test_parser.nit:70,37
+ TCpar ")" ../src/test_parser.nit:70,38
+ TKwor "or" ../src/test_parser.nit:70,40--41
+ ACallExpr ../src/test_parser.nit:70,43--51
+ AImplicitSelfExpr ../src/test_parser.nit:70,43
+ TId "need_help" ../src/test_parser.nit:70,43--51
+ AListExprs ../src/test_parser.nit:70,51
+ ABlockExpr ../src/test_parser.nit:71,2--82,30
+ ACallExpr ../src/test_parser.nit:71,2--16
AImplicitSelfExpr ../src/test_parser.nit:71,2
TId "print" ../src/test_parser.nit:71,2--6
- AParExprs ../src/test_parser.nit:71,7--36
+ AParExprs ../src/test_parser.nit:71,7--16
TOpar "(" ../src/test_parser.nit:71,7
- AStringExpr ../src/test_parser.nit:71,8--35
- TString "\" -n\tdo not print anything\"" ../src/test_parser.nit:71,8--35
- TCpar ")" ../src/test_parser.nit:71,36
- ACallExpr ../src/test_parser.nit:72,2--25
+ AStringExpr ../src/test_parser.nit:71,8--15
+ TString "\"usage:\"" ../src/test_parser.nit:71,8--15
+ TCpar ")" ../src/test_parser.nit:71,16
+ ACallExpr ../src/test_parser.nit:72,2--54
AImplicitSelfExpr ../src/test_parser.nit:72,2
TId "print" ../src/test_parser.nit:72,2--6
- AParExprs ../src/test_parser.nit:72,7--25
+ AParExprs ../src/test_parser.nit:72,7--54
TOpar "(" ../src/test_parser.nit:72,7
- AStringExpr ../src/test_parser.nit:72,8--24
- TString "\" -l\tonly lexer\"" ../src/test_parser.nit:72,8--24
- TCpar ")" ../src/test_parser.nit:72,25
- ACallExpr ../src/test_parser.nit:73,2--41
+ AStringExpr ../src/test_parser.nit:72,8--53
+ TString "\" test_parser [options]... <filename.nit>...\"" ../src/test_parser.nit:72,8--53
+ TCpar ")" ../src/test_parser.nit:72,54
+ ACallExpr ../src/test_parser.nit:73,2--49
AImplicitSelfExpr ../src/test_parser.nit:73,2
TId "print" ../src/test_parser.nit:73,2--6
- AParExprs ../src/test_parser.nit:73,7--41
+ AParExprs ../src/test_parser.nit:73,7--49
TOpar "(" ../src/test_parser.nit:73,7
- AStringExpr ../src/test_parser.nit:73,8--40
- TString "\" -p\tlexer and parser (default)\"" ../src/test_parser.nit:73,8--40
- TCpar ")" ../src/test_parser.nit:73,41
- ACallExpr ../src/test_parser.nit:74,2--68
+ AStringExpr ../src/test_parser.nit:73,8--48
+ TString "\" test_parser -e [options]... <text>...\"" ../src/test_parser.nit:73,8--48
+ TCpar ")" ../src/test_parser.nit:73,49
+ ACallExpr ../src/test_parser.nit:74,2--39
AImplicitSelfExpr ../src/test_parser.nit:74,2
TId "print" ../src/test_parser.nit:74,2--6
- AParExprs ../src/test_parser.nit:74,7--68
+ AParExprs ../src/test_parser.nit:74,7--39
TOpar "(" ../src/test_parser.nit:74,7
- AStringExpr ../src/test_parser.nit:74,8--67
- TString "\" -e\tinstead on files, each argument is a content to parse\"" ../src/test_parser.nit:74,8--67
- TCpar ")" ../src/test_parser.nit:74,68
- ACallExpr ../src/test_parser.nit:75,2--51
+ AStringExpr ../src/test_parser.nit:74,8--38
+ TString "\" test_parser -i [options]...\"" ../src/test_parser.nit:74,8--38
+ TCpar ")" ../src/test_parser.nit:74,39
+ ACallExpr ../src/test_parser.nit:75,2--18
AImplicitSelfExpr ../src/test_parser.nit:75,2
TId "print" ../src/test_parser.nit:75,2--6
- AParExprs ../src/test_parser.nit:75,7--51
+ AParExprs ../src/test_parser.nit:75,7--18
TOpar "(" ../src/test_parser.nit:75,7
- AStringExpr ../src/test_parser.nit:75,8--50
- TString "\" -i\ttree to parse are read interactively\"" ../src/test_parser.nit:75,8--50
- TCpar ")" ../src/test_parser.nit:75,51
- ACallExpr ../src/test_parser.nit:76,2--30
+ AStringExpr ../src/test_parser.nit:75,8--17
+ TString "\"options:\"" ../src/test_parser.nit:75,8--17
+ TCpar ")" ../src/test_parser.nit:75,18
+ ACallExpr ../src/test_parser.nit:76,2--36
AImplicitSelfExpr ../src/test_parser.nit:76,2
TId "print" ../src/test_parser.nit:76,2--6
- AParExprs ../src/test_parser.nit:76,7--30
+ AParExprs ../src/test_parser.nit:76,7--36
TOpar "(" ../src/test_parser.nit:76,7
- AStringExpr ../src/test_parser.nit:76,8--29
- TString "\" -h\tprint this help\"" ../src/test_parser.nit:76,8--29
- TCpar ")" ../src/test_parser.nit:76,30
- AIfExpr ../src/test_parser.nit:77,6--146,3
- TKwif "if" ../src/test_parser.nit:77,6--7
- ACallExpr ../src/test_parser.nit:77,9--19
- AImplicitSelfExpr ../src/test_parser.nit:77,9
- TId "interactive" ../src/test_parser.nit:77,9--19
- AListExprs ../src/test_parser.nit:77,19
- ABlockExpr ../src/test_parser.nit:78,2--111,4
- AIfExpr ../src/test_parser.nit:78,2--87,4
- TKwif "if" ../src/test_parser.nit:78,2--3
- ACallExpr ../src/test_parser.nit:78,5--14
- AImplicitSelfExpr ../src/test_parser.nit:78,5
- TId "only_lexer" ../src/test_parser.nit:78,5--14
- AListExprs ../src/test_parser.nit:78,14
- ABlockExpr ../src/test_parser.nit:79,3--80,8
- ACallExpr ../src/test_parser.nit:79,3--44
- AImplicitSelfExpr ../src/test_parser.nit:79,3
- TId "print" ../src/test_parser.nit:79,3--7
- AListExprs ../src/test_parser.nit:79,9--44
- AStringExpr ../src/test_parser.nit:79,9--44
- TString "\"Error: -l and -i are incompatibles\"" ../src/test_parser.nit:79,9--44
- ACallExpr ../src/test_parser.nit:80,3--8
- AImplicitSelfExpr ../src/test_parser.nit:80,3
- TId "exit" ../src/test_parser.nit:80,3--6
- AListExprs ../src/test_parser.nit:80,8
- ADecIntExpr ../src/test_parser.nit:80,8
- TNumber "1" ../src/test_parser.nit:80,8
- AIfExpr ../src/test_parser.nit:81,7--87,4
- TKwif "if" ../src/test_parser.nit:81,7--8
- ACallExpr ../src/test_parser.nit:81,10--16
- AImplicitSelfExpr ../src/test_parser.nit:81,10
- TId "no_file" ../src/test_parser.nit:81,10--16
- AListExprs ../src/test_parser.nit:81,16
- ABlockExpr ../src/test_parser.nit:82,3--83,8
- ACallExpr ../src/test_parser.nit:82,3--44
- AImplicitSelfExpr ../src/test_parser.nit:82,3
- TId "print" ../src/test_parser.nit:82,3--7
- AListExprs ../src/test_parser.nit:82,9--44
- AStringExpr ../src/test_parser.nit:82,9--44
- TString "\"Error: -e and -i are incompatibles\"" ../src/test_parser.nit:82,9--44
- ACallExpr ../src/test_parser.nit:83,3--8
- AImplicitSelfExpr ../src/test_parser.nit:83,3
- TId "exit" ../src/test_parser.nit:83,3--6
- AListExprs ../src/test_parser.nit:83,8
- ADecIntExpr ../src/test_parser.nit:83,8
- TNumber "1" ../src/test_parser.nit:83,8
- AIfExpr ../src/test_parser.nit:84,7--87,4
- TKwif "if" ../src/test_parser.nit:84,7--8
- ANotExpr ../src/test_parser.nit:84,10--26
- TKwnot "not" ../src/test_parser.nit:84,10--12
- ACallExpr ../src/test_parser.nit:84,14--26
- ACallExpr ../src/test_parser.nit:84,14--17
- AImplicitSelfExpr ../src/test_parser.nit:84,14
- TId "args" ../src/test_parser.nit:84,14--17
- AListExprs ../src/test_parser.nit:84,17
- TId "is_empty" ../src/test_parser.nit:84,19--26
- AListExprs ../src/test_parser.nit:84,26
- ABlockExpr ../src/test_parser.nit:85,3--86,8
- ACallExpr ../src/test_parser.nit:85,3--43
- AImplicitSelfExpr ../src/test_parser.nit:85,3
- TId "print" ../src/test_parser.nit:85,3--7
- AListExprs ../src/test_parser.nit:85,9--43
- AStringExpr ../src/test_parser.nit:85,9--43
- TString "\"Error: -i works without arguments\"" ../src/test_parser.nit:85,9--43
- ACallExpr ../src/test_parser.nit:86,3--8
- AImplicitSelfExpr ../src/test_parser.nit:86,3
- TId "exit" ../src/test_parser.nit:86,3--6
- AListExprs ../src/test_parser.nit:86,8
- ADecIntExpr ../src/test_parser.nit:86,8
- TNumber "1" ../src/test_parser.nit:86,8
- ABlockExpr ../src/test_parser.nit:87,2--4
- TKwend "end" ../src/test_parser.nit:87,2--4
- AVardeclExpr ../src/test_parser.nit:89,2--25
- TKwvar "var" ../src/test_parser.nit:89,2--4
- TId "tc" ../src/test_parser.nit:89,6--7
- TAssign "=" ../src/test_parser.nit:89,9
- ANewExpr ../src/test_parser.nit:89,11--25
- TKwnew "new" ../src/test_parser.nit:89,11--13
- AType ../src/test_parser.nit:89,15--25
- TClassid "ToolContext" ../src/test_parser.nit:89,15--25
- AListExprs ../src/test_parser.nit:89,25
- ALoopExpr ../src/test_parser.nit:91,2--111,4
- TKwloop "loop" ../src/test_parser.nit:91,2--5
- ABlockExpr ../src/test_parser.nit:92,3--111,4
- AVardeclExpr ../src/test_parser.nit:92,3--37
- TKwvar "var" ../src/test_parser.nit:92,3--5
- TId "n" ../src/test_parser.nit:92,7
- TAssign "=" ../src/test_parser.nit:92,9
- ACallExpr ../src/test_parser.nit:92,11--37
- ACallExpr ../src/test_parser.nit:92,11--12
- AImplicitSelfExpr ../src/test_parser.nit:92,11
- TId "tc" ../src/test_parser.nit:92,11--12
- AListExprs ../src/test_parser.nit:92,12
- TId "interactive_parse" ../src/test_parser.nit:92,14--30
- AParExprs ../src/test_parser.nit:92,31--37
- TOpar "(" ../src/test_parser.nit:92,31
- AStringExpr ../src/test_parser.nit:92,32--36
- TString "\"-->\"" ../src/test_parser.nit:92,32--36
- TCpar ")" ../src/test_parser.nit:92,37
- AIfExpr ../src/test_parser.nit:93,3--101,5
- TKwif "if" ../src/test_parser.nit:93,3--4
- AIsaExpr ../src/test_parser.nit:93,6--18
- ACallExpr ../src/test_parser.nit:93,6
- AImplicitSelfExpr ../src/test_parser.nit:93,6
- TId "n" ../src/test_parser.nit:93,6
- AListExprs ../src/test_parser.nit:93,6
- AType ../src/test_parser.nit:93,12--18
- TClassid "TString" ../src/test_parser.nit:93,12--18
- ABlockExpr ../src/test_parser.nit:94,4--100,11
- AVardeclExpr ../src/test_parser.nit:94,4--17
- TKwvar "var" ../src/test_parser.nit:94,4--6
- TId "s" ../src/test_parser.nit:94,8
- TAssign "=" ../src/test_parser.nit:94,10
- ACallExpr ../src/test_parser.nit:94,12--17
- ACallExpr ../src/test_parser.nit:94,12
- AImplicitSelfExpr ../src/test_parser.nit:94,12
- TId "n" ../src/test_parser.nit:94,12
- AListExprs ../src/test_parser.nit:94,12
- TId "text" ../src/test_parser.nit:94,14--17
- AListExprs ../src/test_parser.nit:94,17
- AIfExpr ../src/test_parser.nit:95,4--99,6
- TKwif "if" ../src/test_parser.nit:95,4--5
- AEqExpr ../src/test_parser.nit:95,7--15
- ACallExpr ../src/test_parser.nit:95,7
- AImplicitSelfExpr ../src/test_parser.nit:95,7
- TId "s" ../src/test_parser.nit:95,7
- AListExprs ../src/test_parser.nit:95,7
- AStringExpr ../src/test_parser.nit:95,12--15
- TString "\":q\"" ../src/test_parser.nit:95,12--15
- ABlockExpr ../src/test_parser.nit:96,5--9
- ABreakExpr ../src/test_parser.nit:96,5--9
- TKwbreak "break" ../src/test_parser.nit:96,5--9
- ABlockExpr ../src/test_parser.nit:98,5--99,6
- ACallExpr ../src/test_parser.nit:98,5--24
- AImplicitSelfExpr ../src/test_parser.nit:98,5
- TId "print" ../src/test_parser.nit:98,5--9
- AListExprs ../src/test_parser.nit:98,11--24
- AStringExpr ../src/test_parser.nit:98,11--24
- TString "\"`:q` to quit\"" ../src/test_parser.nit:98,11--24
- TKwend "end" ../src/test_parser.nit:99,4--6
- AContinueExpr ../src/test_parser.nit:100,4--11
- TKwcontinue "continue" ../src/test_parser.nit:100,4--11
- ABlockExpr ../src/test_parser.nit:101,3--5
- TKwend "end" ../src/test_parser.nit:101,3--5
- AIfExpr ../src/test_parser.nit:103,3--106,5
- TKwif "if" ../src/test_parser.nit:103,3--4
- AIsaExpr ../src/test_parser.nit:103,6--17
- ACallExpr ../src/test_parser.nit:103,6
- AImplicitSelfExpr ../src/test_parser.nit:103,6
- TId "n" ../src/test_parser.nit:103,6
- AListExprs ../src/test_parser.nit:103,6
- AType ../src/test_parser.nit:103,12--17
- TClassid "AError" ../src/test_parser.nit:103,12--17
- ABlockExpr ../src/test_parser.nit:104,4--105,11
- ACallExpr ../src/test_parser.nit:104,4--57
- AImplicitSelfExpr ../src/test_parser.nit:104,4
- TId "print" ../src/test_parser.nit:104,4--8
- AListExprs ../src/test_parser.nit:104,10--57
- ASuperstringExpr ../src/test_parser.nit:104,10--57
- AStartStringExpr ../src/test_parser.nit:104,10--11
- TStartString "\"{" ../src/test_parser.nit:104,10--11
- ACallExpr ../src/test_parser.nit:104,12--42
- ACallExpr ../src/test_parser.nit:104,12--21
- ACallExpr ../src/test_parser.nit:104,12
- AImplicitSelfExpr ../src/test_parser.nit:104,12
- TId "n" ../src/test_parser.nit:104,12
- AListExprs ../src/test_parser.nit:104,12
- TId "location" ../src/test_parser.nit:104,14--21
- AListExprs ../src/test_parser.nit:104,21
- TId "colored_line" ../src/test_parser.nit:104,23--34
- AParExprs ../src/test_parser.nit:104,35--42
- TOpar "(" ../src/test_parser.nit:104,35
- AStringExpr ../src/test_parser.nit:104,36--41
- TString "\"0;31\"" ../src/test_parser.nit:104,36--41
- TCpar ")" ../src/test_parser.nit:104,42
- AMidStringExpr ../src/test_parser.nit:104,43--46
- TMidString "}: {" ../src/test_parser.nit:104,43--46
- ACallExpr ../src/test_parser.nit:104,47--55
- ACallExpr ../src/test_parser.nit:104,47
- AImplicitSelfExpr ../src/test_parser.nit:104,47
- TId "n" ../src/test_parser.nit:104,47
- AListExprs ../src/test_parser.nit:104,47
- TId "message" ../src/test_parser.nit:104,49--55
- AListExprs ../src/test_parser.nit:104,55
- AEndStringExpr ../src/test_parser.nit:104,56--57
- TEndString "}\"" ../src/test_parser.nit:104,56--57
- AContinueExpr ../src/test_parser.nit:105,4--11
- TKwcontinue "continue" ../src/test_parser.nit:105,4--11
- ABlockExpr ../src/test_parser.nit:106,3--5
- TKwend "end" ../src/test_parser.nit:106,3--5
- AIfExpr ../src/test_parser.nit:108,3--110,5
- TKwif "if" ../src/test_parser.nit:108,3--4
- ANotExpr ../src/test_parser.nit:108,6--17
- TKwnot "not" ../src/test_parser.nit:108,6--8
- ACallExpr ../src/test_parser.nit:108,10--17
- AImplicitSelfExpr ../src/test_parser.nit:108,10
- TId "no_print" ../src/test_parser.nit:108,10--17
- AListExprs ../src/test_parser.nit:108,17
- ABlockExpr ../src/test_parser.nit:109,4--40
- ACallExpr ../src/test_parser.nit:109,4--40
- AParExpr ../src/test_parser.nit:109,4--25
- TOpar "(" ../src/test_parser.nit:109,4
- ANewExpr ../src/test_parser.nit:109,5--24
- TKwnew "new" ../src/test_parser.nit:109,5--7
- AType ../src/test_parser.nit:109,9--24
- TClassid "PrintTreeVisitor" ../src/test_parser.nit:109,9--24
- AListExprs ../src/test_parser.nit:109,24
- TCpar ")" ../src/test_parser.nit:109,25
- TId "enter_visit" ../src/test_parser.nit:109,27--37
- AParExprs ../src/test_parser.nit:109,38--40
- TOpar "(" ../src/test_parser.nit:109,38
- ACallExpr ../src/test_parser.nit:109,39
- AImplicitSelfExpr ../src/test_parser.nit:109,39
- TId "n" ../src/test_parser.nit:109,39
- AListExprs ../src/test_parser.nit:109,39
- TCpar ")" ../src/test_parser.nit:109,40
- ABlockExpr ../src/test_parser.nit:110,3--5
- TKwend "end" ../src/test_parser.nit:110,3--5
- TKwend "end" ../src/test_parser.nit:111,2--4
- ABlockExpr ../src/test_parser.nit:113,2--146,3
- AForExpr ../src/test_parser.nit:113,2--145,4
- TKwfor "for" ../src/test_parser.nit:113,2--4
- TId "a" ../src/test_parser.nit:113,6
- ACallExpr ../src/test_parser.nit:113,11--14
- AImplicitSelfExpr ../src/test_parser.nit:113,11
- TId "args" ../src/test_parser.nit:113,11--14
- AListExprs ../src/test_parser.nit:113,14
- TKwdo "do" ../src/test_parser.nit:113,16--17
- ABlockExpr ../src/test_parser.nit:114,3--145,4
- AVardeclExpr ../src/test_parser.nit:114,3--12
- TKwvar "var" ../src/test_parser.nit:114,3--5
- TId "source" ../src/test_parser.nit:114,7--12
- AIfExpr ../src/test_parser.nit:115,3--121,5
- TKwif "if" ../src/test_parser.nit:115,3--4
- ACallExpr ../src/test_parser.nit:115,6--12
- AImplicitSelfExpr ../src/test_parser.nit:115,6
- TId "no_file" ../src/test_parser.nit:115,6--12
- AListExprs ../src/test_parser.nit:115,12
- ABlockExpr ../src/test_parser.nit:116,4--45
- ACallAssignExpr ../src/test_parser.nit:116,4--45
- AImplicitSelfExpr ../src/test_parser.nit:116,4
- TId "source" ../src/test_parser.nit:116,4--9
- AListExprs ../src/test_parser.nit:116,11
- TAssign "=" ../src/test_parser.nit:116,11
- ANewExpr ../src/test_parser.nit:116,13--45
- TKwnew "new" ../src/test_parser.nit:116,13--15
- AType ../src/test_parser.nit:116,17--26
- TClassid "SourceFile" ../src/test_parser.nit:116,17--26
- TId "from_string" ../src/test_parser.nit:116,28--38
- AParExprs ../src/test_parser.nit:116,39--45
- TOpar "(" ../src/test_parser.nit:116,39
- AStringExpr ../src/test_parser.nit:116,40--41
- TString "\"\"" ../src/test_parser.nit:116,40--41
- ACallExpr ../src/test_parser.nit:116,44
- AImplicitSelfExpr ../src/test_parser.nit:116,44
- TId "a" ../src/test_parser.nit:116,44
- AListExprs ../src/test_parser.nit:116,44
- TCpar ")" ../src/test_parser.nit:116,45
- ABlockExpr ../src/test_parser.nit:118,4--121,5
- AVardeclExpr ../src/test_parser.nit:118,4--33
- TKwvar "var" ../src/test_parser.nit:118,4--6
- TId "f" ../src/test_parser.nit:118,8
- TAssign "=" ../src/test_parser.nit:118,10
- ANewExpr ../src/test_parser.nit:118,12--33
- TKwnew "new" ../src/test_parser.nit:118,12--14
- AType ../src/test_parser.nit:118,16--25
- TClassid "FileReader" ../src/test_parser.nit:118,16--25
- TId "open" ../src/test_parser.nit:118,27--30
- AParExprs ../src/test_parser.nit:118,31--33
- TOpar "(" ../src/test_parser.nit:118,31
- ACallExpr ../src/test_parser.nit:118,32
- AImplicitSelfExpr ../src/test_parser.nit:118,32
- TId "a" ../src/test_parser.nit:118,32
- AListExprs ../src/test_parser.nit:118,32
- TCpar ")" ../src/test_parser.nit:118,33
- ACallAssignExpr ../src/test_parser.nit:119,4--32
- AImplicitSelfExpr ../src/test_parser.nit:119,4
- TId "source" ../src/test_parser.nit:119,4--9
- AListExprs ../src/test_parser.nit:119,11
- TAssign "=" ../src/test_parser.nit:119,11
- ANewExpr ../src/test_parser.nit:119,13--32
- TKwnew "new" ../src/test_parser.nit:119,13--15
- AType ../src/test_parser.nit:119,17--26
- TClassid "SourceFile" ../src/test_parser.nit:119,17--26
- AParExprs ../src/test_parser.nit:119,27--32
- TOpar "(" ../src/test_parser.nit:119,27
- ACallExpr ../src/test_parser.nit:119,28
- AImplicitSelfExpr ../src/test_parser.nit:119,28
- TId "a" ../src/test_parser.nit:119,28
- AListExprs ../src/test_parser.nit:119,28
- ACallExpr ../src/test_parser.nit:119,31
- AImplicitSelfExpr ../src/test_parser.nit:119,31
- TId "f" ../src/test_parser.nit:119,31
- AListExprs ../src/test_parser.nit:119,31
- TCpar ")" ../src/test_parser.nit:119,32
- ACallExpr ../src/test_parser.nit:120,4--10
- ACallExpr ../src/test_parser.nit:120,4
- AImplicitSelfExpr ../src/test_parser.nit:120,4
- TId "f" ../src/test_parser.nit:120,4
- AListExprs ../src/test_parser.nit:120,4
- TId "close" ../src/test_parser.nit:120,6--10
- AListExprs ../src/test_parser.nit:120,10
- TKwend "end" ../src/test_parser.nit:121,3--5
- AVardeclExpr ../src/test_parser.nit:122,3--31
- TKwvar "var" ../src/test_parser.nit:122,3--5
- TId "lexer" ../src/test_parser.nit:122,7--11
- TAssign "=" ../src/test_parser.nit:122,13
- ANewExpr ../src/test_parser.nit:122,15--31
- TKwnew "new" ../src/test_parser.nit:122,15--17
- AType ../src/test_parser.nit:122,19--23
- TClassid "Lexer" ../src/test_parser.nit:122,19--23
- AParExprs ../src/test_parser.nit:122,24--31
- TOpar "(" ../src/test_parser.nit:122,24
- ACallExpr ../src/test_parser.nit:122,25--30
- AImplicitSelfExpr ../src/test_parser.nit:122,25
- TId "source" ../src/test_parser.nit:122,25--30
- AListExprs ../src/test_parser.nit:122,30
- TCpar ")" ../src/test_parser.nit:122,31
- AIfExpr ../src/test_parser.nit:123,3--144,5
- TKwif "if" ../src/test_parser.nit:123,3--4
- ACallExpr ../src/test_parser.nit:123,6--15
- AImplicitSelfExpr ../src/test_parser.nit:123,6
- TId "only_lexer" ../src/test_parser.nit:123,6--15
- AListExprs ../src/test_parser.nit:123,15
- ABlockExpr ../src/test_parser.nit:124,4--130,6
- AVardeclExpr ../src/test_parser.nit:124,4--25
+ AStringExpr ../src/test_parser.nit:76,8--35
+ TString "\" -n\tdo not print anything\"" ../src/test_parser.nit:76,8--35
+ TCpar ")" ../src/test_parser.nit:76,36
+ ACallExpr ../src/test_parser.nit:77,2--25
+ AImplicitSelfExpr ../src/test_parser.nit:77,2
+ TId "print" ../src/test_parser.nit:77,2--6
+ AParExprs ../src/test_parser.nit:77,7--25
+ TOpar "(" ../src/test_parser.nit:77,7
+ AStringExpr ../src/test_parser.nit:77,8--24
+ TString "\" -l\tonly lexer\"" ../src/test_parser.nit:77,8--24
+ TCpar ")" ../src/test_parser.nit:77,25
+ ACallExpr ../src/test_parser.nit:78,2--41
+ AImplicitSelfExpr ../src/test_parser.nit:78,2
+ TId "print" ../src/test_parser.nit:78,2--6
+ AParExprs ../src/test_parser.nit:78,7--41
+ TOpar "(" ../src/test_parser.nit:78,7
+ AStringExpr ../src/test_parser.nit:78,8--40
+ TString "\" -p\tlexer and parser (default)\"" ../src/test_parser.nit:78,8--40
+ TCpar ")" ../src/test_parser.nit:78,41
+ ACallExpr ../src/test_parser.nit:79,2--61
+ AImplicitSelfExpr ../src/test_parser.nit:79,2
+ TId "print" ../src/test_parser.nit:79,2--6
+ AParExprs ../src/test_parser.nit:79,7--61
+ TOpar "(" ../src/test_parser.nit:79,7
+ AStringExpr ../src/test_parser.nit:79,8--60
+ TString "\" -x\tinstead of a ascii tree, output a XML document\"" ../src/test_parser.nit:79,8--60
+ TCpar ")" ../src/test_parser.nit:79,61
+ ACallExpr ../src/test_parser.nit:80,2--68
+ AImplicitSelfExpr ../src/test_parser.nit:80,2
+ TId "print" ../src/test_parser.nit:80,2--6
+ AParExprs ../src/test_parser.nit:80,7--68
+ TOpar "(" ../src/test_parser.nit:80,7
+ AStringExpr ../src/test_parser.nit:80,8--67
+ TString "\" -e\tinstead on files, each argument is a content to parse\"" ../src/test_parser.nit:80,8--67
+ TCpar ")" ../src/test_parser.nit:80,68
+ ACallExpr ../src/test_parser.nit:81,2--51
+ AImplicitSelfExpr ../src/test_parser.nit:81,2
+ TId "print" ../src/test_parser.nit:81,2--6
+ AParExprs ../src/test_parser.nit:81,7--51
+ TOpar "(" ../src/test_parser.nit:81,7
+ AStringExpr ../src/test_parser.nit:81,8--50
+ TString "\" -i\ttree to parse are read interactively\"" ../src/test_parser.nit:81,8--50
+ TCpar ")" ../src/test_parser.nit:81,51
+ ACallExpr ../src/test_parser.nit:82,2--30
+ AImplicitSelfExpr ../src/test_parser.nit:82,2
+ TId "print" ../src/test_parser.nit:82,2--6
+ AParExprs ../src/test_parser.nit:82,7--30
+ TOpar "(" ../src/test_parser.nit:82,7
+ AStringExpr ../src/test_parser.nit:82,8--29
+ TString "\" -h\tprint this help\"" ../src/test_parser.nit:82,8--29
+ TCpar ")" ../src/test_parser.nit:82,30
+ AIfExpr ../src/test_parser.nit:83,6--155,3
+ TKwif "if" ../src/test_parser.nit:83,6--7
+ ACallExpr ../src/test_parser.nit:83,9--19
+ AImplicitSelfExpr ../src/test_parser.nit:83,9
+ TId "interactive" ../src/test_parser.nit:83,9--19
+ AListExprs ../src/test_parser.nit:83,19
+ ABlockExpr ../src/test_parser.nit:84,2--117,4
+ AIfExpr ../src/test_parser.nit:84,2--93,4
+ TKwif "if" ../src/test_parser.nit:84,2--3
+ ACallExpr ../src/test_parser.nit:84,5--14
+ AImplicitSelfExpr ../src/test_parser.nit:84,5
+ TId "only_lexer" ../src/test_parser.nit:84,5--14
+ AListExprs ../src/test_parser.nit:84,14
+ ABlockExpr ../src/test_parser.nit:85,3--86,8
+ ACallExpr ../src/test_parser.nit:85,3--43
+ AImplicitSelfExpr ../src/test_parser.nit:85,3
+ TId "print" ../src/test_parser.nit:85,3--7
+ AListExprs ../src/test_parser.nit:85,9--43
+ AStringExpr ../src/test_parser.nit:85,9--43
+ TString "\"Error: -l and -i are incompatible\"" ../src/test_parser.nit:85,9--43
+ ACallExpr ../src/test_parser.nit:86,3--8
+ AImplicitSelfExpr ../src/test_parser.nit:86,3
+ TId "exit" ../src/test_parser.nit:86,3--6
+ AListExprs ../src/test_parser.nit:86,8
+ ADecIntExpr ../src/test_parser.nit:86,8
+ TNumber "1" ../src/test_parser.nit:86,8
+ AIfExpr ../src/test_parser.nit:87,7--93,4
+ TKwif "if" ../src/test_parser.nit:87,7--8
+ ACallExpr ../src/test_parser.nit:87,10--16
+ AImplicitSelfExpr ../src/test_parser.nit:87,10
+ TId "no_file" ../src/test_parser.nit:87,10--16
+ AListExprs ../src/test_parser.nit:87,16
+ ABlockExpr ../src/test_parser.nit:88,3--89,8
+ ACallExpr ../src/test_parser.nit:88,3--43
+ AImplicitSelfExpr ../src/test_parser.nit:88,3
+ TId "print" ../src/test_parser.nit:88,3--7
+ AListExprs ../src/test_parser.nit:88,9--43
+ AStringExpr ../src/test_parser.nit:88,9--43
+ TString "\"Error: -e and -i are incompatible\"" ../src/test_parser.nit:88,9--43
+ ACallExpr ../src/test_parser.nit:89,3--8
+ AImplicitSelfExpr ../src/test_parser.nit:89,3
+ TId "exit" ../src/test_parser.nit:89,3--6
+ AListExprs ../src/test_parser.nit:89,8
+ ADecIntExpr ../src/test_parser.nit:89,8
+ TNumber "1" ../src/test_parser.nit:89,8
+ AIfExpr ../src/test_parser.nit:90,7--93,4
+ TKwif "if" ../src/test_parser.nit:90,7--8
+ ANotExpr ../src/test_parser.nit:90,10--26
+ TKwnot "not" ../src/test_parser.nit:90,10--12
+ ACallExpr ../src/test_parser.nit:90,14--26
+ ACallExpr ../src/test_parser.nit:90,14--17
+ AImplicitSelfExpr ../src/test_parser.nit:90,14
+ TId "args" ../src/test_parser.nit:90,14--17
+ AListExprs ../src/test_parser.nit:90,17
+ TId "is_empty" ../src/test_parser.nit:90,19--26
+ AListExprs ../src/test_parser.nit:90,26
+ ABlockExpr ../src/test_parser.nit:91,3--92,8
+ ACallExpr ../src/test_parser.nit:91,3--43
+ AImplicitSelfExpr ../src/test_parser.nit:91,3
+ TId "print" ../src/test_parser.nit:91,3--7
+ AListExprs ../src/test_parser.nit:91,9--43
+ AStringExpr ../src/test_parser.nit:91,9--43
+ TString "\"Error: -i works without arguments\"" ../src/test_parser.nit:91,9--43
+ ACallExpr ../src/test_parser.nit:92,3--8
+ AImplicitSelfExpr ../src/test_parser.nit:92,3
+ TId "exit" ../src/test_parser.nit:92,3--6
+ AListExprs ../src/test_parser.nit:92,8
+ ADecIntExpr ../src/test_parser.nit:92,8
+ TNumber "1" ../src/test_parser.nit:92,8
+ ABlockExpr ../src/test_parser.nit:93,2--4
+ TKwend "end" ../src/test_parser.nit:93,2--4
+ AVardeclExpr ../src/test_parser.nit:95,2--25
+ TKwvar "var" ../src/test_parser.nit:95,2--4
+ TId "tc" ../src/test_parser.nit:95,6--7
+ TAssign "=" ../src/test_parser.nit:95,9
+ ANewExpr ../src/test_parser.nit:95,11--25
+ TKwnew "new" ../src/test_parser.nit:95,11--13
+ AType ../src/test_parser.nit:95,15--25
+ TClassid "ToolContext" ../src/test_parser.nit:95,15--25
+ AListExprs ../src/test_parser.nit:95,25
+ ALoopExpr ../src/test_parser.nit:97,2--117,4
+ TKwloop "loop" ../src/test_parser.nit:97,2--5
+ ABlockExpr ../src/test_parser.nit:98,3--117,4
+ AVardeclExpr ../src/test_parser.nit:98,3--37
+ TKwvar "var" ../src/test_parser.nit:98,3--5
+ TId "n" ../src/test_parser.nit:98,7
+ TAssign "=" ../src/test_parser.nit:98,9
+ ACallExpr ../src/test_parser.nit:98,11--37
+ ACallExpr ../src/test_parser.nit:98,11--12
+ AImplicitSelfExpr ../src/test_parser.nit:98,11
+ TId "tc" ../src/test_parser.nit:98,11--12
+ AListExprs ../src/test_parser.nit:98,12
+ TId "interactive_parse" ../src/test_parser.nit:98,14--30
+ AParExprs ../src/test_parser.nit:98,31--37
+ TOpar "(" ../src/test_parser.nit:98,31
+ AStringExpr ../src/test_parser.nit:98,32--36
+ TString "\"-->\"" ../src/test_parser.nit:98,32--36
+ TCpar ")" ../src/test_parser.nit:98,37
+ AIfExpr ../src/test_parser.nit:99,3--107,5
+ TKwif "if" ../src/test_parser.nit:99,3--4
+ AIsaExpr ../src/test_parser.nit:99,6--18
+ ACallExpr ../src/test_parser.nit:99,6
+ AImplicitSelfExpr ../src/test_parser.nit:99,6
+ TId "n" ../src/test_parser.nit:99,6
+ AListExprs ../src/test_parser.nit:99,6
+ TKwisa "isa" ../src/test_parser.nit:99,8--10
+ AType ../src/test_parser.nit:99,12--18
+ TClassid "TString" ../src/test_parser.nit:99,12--18
+ ABlockExpr ../src/test_parser.nit:100,4--106,11
+ AVardeclExpr ../src/test_parser.nit:100,4--17
+ TKwvar "var" ../src/test_parser.nit:100,4--6
+ TId "s" ../src/test_parser.nit:100,8
+ TAssign "=" ../src/test_parser.nit:100,10
+ ACallExpr ../src/test_parser.nit:100,12--17
+ ACallExpr ../src/test_parser.nit:100,12
+ AImplicitSelfExpr ../src/test_parser.nit:100,12
+ TId "n" ../src/test_parser.nit:100,12
+ AListExprs ../src/test_parser.nit:100,12
+ TId "text" ../src/test_parser.nit:100,14--17
+ AListExprs ../src/test_parser.nit:100,17
+ AIfExpr ../src/test_parser.nit:101,4--105,6
+ TKwif "if" ../src/test_parser.nit:101,4--5
+ AEqExpr ../src/test_parser.nit:101,7--15
+ ACallExpr ../src/test_parser.nit:101,7
+ AImplicitSelfExpr ../src/test_parser.nit:101,7
+ TId "s" ../src/test_parser.nit:101,7
+ AListExprs ../src/test_parser.nit:101,7
+ TEq "==" ../src/test_parser.nit:101,9--10
+ AStringExpr ../src/test_parser.nit:101,12--15
+ TString "\":q\"" ../src/test_parser.nit:101,12--15
+ ABlockExpr ../src/test_parser.nit:102,5--9
+ ABreakExpr ../src/test_parser.nit:102,5--9
+ TKwbreak "break" ../src/test_parser.nit:102,5--9
+ ABlockExpr ../src/test_parser.nit:104,5--105,6
+ ACallExpr ../src/test_parser.nit:104,5--24
+ AImplicitSelfExpr ../src/test_parser.nit:104,5
+ TId "print" ../src/test_parser.nit:104,5--9
+ AListExprs ../src/test_parser.nit:104,11--24
+ AStringExpr ../src/test_parser.nit:104,11--24
+ TString "\"`:q` to quit\"" ../src/test_parser.nit:104,11--24
+ TKwend "end" ../src/test_parser.nit:105,4--6
+ AContinueExpr ../src/test_parser.nit:106,4--11
+ TKwcontinue "continue" ../src/test_parser.nit:106,4--11
+ ABlockExpr ../src/test_parser.nit:107,3--5
+ TKwend "end" ../src/test_parser.nit:107,3--5
+ AIfExpr ../src/test_parser.nit:109,3--112,5
+ TKwif "if" ../src/test_parser.nit:109,3--4
+ AIsaExpr ../src/test_parser.nit:109,6--17
+ ACallExpr ../src/test_parser.nit:109,6
+ AImplicitSelfExpr ../src/test_parser.nit:109,6
+ TId "n" ../src/test_parser.nit:109,6
+ AListExprs ../src/test_parser.nit:109,6
+ TKwisa "isa" ../src/test_parser.nit:109,8--10
+ AType ../src/test_parser.nit:109,12--17
+ TClassid "AError" ../src/test_parser.nit:109,12--17
+ ABlockExpr ../src/test_parser.nit:110,4--111,11
+ ACallExpr ../src/test_parser.nit:110,4--57
+ AImplicitSelfExpr ../src/test_parser.nit:110,4
+ TId "print" ../src/test_parser.nit:110,4--8
+ AListExprs ../src/test_parser.nit:110,10--57
+ ASuperstringExpr ../src/test_parser.nit:110,10--57
+ AStartStringExpr ../src/test_parser.nit:110,10--11
+ TStartString "\"{" ../src/test_parser.nit:110,10--11
+ ACallExpr ../src/test_parser.nit:110,12--42
+ ACallExpr ../src/test_parser.nit:110,12--21
+ ACallExpr ../src/test_parser.nit:110,12
+ AImplicitSelfExpr ../src/test_parser.nit:110,12
+ TId "n" ../src/test_parser.nit:110,12
+ AListExprs ../src/test_parser.nit:110,12
+ TId "location" ../src/test_parser.nit:110,14--21
+ AListExprs ../src/test_parser.nit:110,21
+ TId "colored_line" ../src/test_parser.nit:110,23--34
+ AParExprs ../src/test_parser.nit:110,35--42
+ TOpar "(" ../src/test_parser.nit:110,35
+ AStringExpr ../src/test_parser.nit:110,36--41
+ TString "\"0;31\"" ../src/test_parser.nit:110,36--41
+ TCpar ")" ../src/test_parser.nit:110,42
+ AMidStringExpr ../src/test_parser.nit:110,43--46
+ TMidString "}: {" ../src/test_parser.nit:110,43--46
+ ACallExpr ../src/test_parser.nit:110,47--55
+ ACallExpr ../src/test_parser.nit:110,47
+ AImplicitSelfExpr ../src/test_parser.nit:110,47
+ TId "n" ../src/test_parser.nit:110,47
+ AListExprs ../src/test_parser.nit:110,47
+ TId "message" ../src/test_parser.nit:110,49--55
+ AListExprs ../src/test_parser.nit:110,55
+ AEndStringExpr ../src/test_parser.nit:110,56--57
+ TEndString "}\"" ../src/test_parser.nit:110,56--57
+ AContinueExpr ../src/test_parser.nit:111,4--11
+ TKwcontinue "continue" ../src/test_parser.nit:111,4--11
+ ABlockExpr ../src/test_parser.nit:112,3--5
+ TKwend "end" ../src/test_parser.nit:112,3--5
+ AIfExpr ../src/test_parser.nit:114,3--116,5
+ TKwif "if" ../src/test_parser.nit:114,3--4
+ ANotExpr ../src/test_parser.nit:114,6--17
+ TKwnot "not" ../src/test_parser.nit:114,6--8
+ ACallExpr ../src/test_parser.nit:114,10--17
+ AImplicitSelfExpr ../src/test_parser.nit:114,10
+ TId "no_print" ../src/test_parser.nit:114,10--17
+ AListExprs ../src/test_parser.nit:114,17
+ ABlockExpr ../src/test_parser.nit:115,4--40
+ ACallExpr ../src/test_parser.nit:115,4--40
+ AParExpr ../src/test_parser.nit:115,4--25
+ TOpar "(" ../src/test_parser.nit:115,4
+ ANewExpr ../src/test_parser.nit:115,5--24
+ TKwnew "new" ../src/test_parser.nit:115,5--7
+ AType ../src/test_parser.nit:115,9--24
+ TClassid "PrintTreeVisitor" ../src/test_parser.nit:115,9--24
+ AListExprs ../src/test_parser.nit:115,24
+ TCpar ")" ../src/test_parser.nit:115,25
+ TId "enter_visit" ../src/test_parser.nit:115,27--37
+ AParExprs ../src/test_parser.nit:115,38--40
+ TOpar "(" ../src/test_parser.nit:115,38
+ ACallExpr ../src/test_parser.nit:115,39
+ AImplicitSelfExpr ../src/test_parser.nit:115,39
+ TId "n" ../src/test_parser.nit:115,39
+ AListExprs ../src/test_parser.nit:115,39
+ TCpar ")" ../src/test_parser.nit:115,40
+ ABlockExpr ../src/test_parser.nit:116,3--5
+ TKwend "end" ../src/test_parser.nit:116,3--5
+ TKwend "end" ../src/test_parser.nit:117,2--4
+ ABlockExpr ../src/test_parser.nit:119,2--155,3
+ AForExpr ../src/test_parser.nit:119,2--154,4
+ TKwfor "for" ../src/test_parser.nit:119,2--4
+ TId "a" ../src/test_parser.nit:119,6
+ ACallExpr ../src/test_parser.nit:119,11--14
+ AImplicitSelfExpr ../src/test_parser.nit:119,11
+ TId "args" ../src/test_parser.nit:119,11--14
+ AListExprs ../src/test_parser.nit:119,14
+ TKwdo "do" ../src/test_parser.nit:119,16--17
+ ABlockExpr ../src/test_parser.nit:120,3--154,4
+ AVardeclExpr ../src/test_parser.nit:120,3--12
+ TKwvar "var" ../src/test_parser.nit:120,3--5
+ TId "source" ../src/test_parser.nit:120,7--12
+ AIfExpr ../src/test_parser.nit:121,3--127,5
+ TKwif "if" ../src/test_parser.nit:121,3--4
+ ACallExpr ../src/test_parser.nit:121,6--12
+ AImplicitSelfExpr ../src/test_parser.nit:121,6
+ TId "no_file" ../src/test_parser.nit:121,6--12
+ AListExprs ../src/test_parser.nit:121,12
+ ABlockExpr ../src/test_parser.nit:122,4--45
+ ACallAssignExpr ../src/test_parser.nit:122,4--45
+ AImplicitSelfExpr ../src/test_parser.nit:122,4
+ TId "source" ../src/test_parser.nit:122,4--9
+ AListExprs ../src/test_parser.nit:122,11
+ TAssign "=" ../src/test_parser.nit:122,11
+ ANewExpr ../src/test_parser.nit:122,13--45
+ TKwnew "new" ../src/test_parser.nit:122,13--15
+ AType ../src/test_parser.nit:122,17--26
+ TClassid "SourceFile" ../src/test_parser.nit:122,17--26
+ TId "from_string" ../src/test_parser.nit:122,28--38
+ AParExprs ../src/test_parser.nit:122,39--45
+ TOpar "(" ../src/test_parser.nit:122,39
+ AStringExpr ../src/test_parser.nit:122,40--41
+ TString "\"\"" ../src/test_parser.nit:122,40--41
+ ACallExpr ../src/test_parser.nit:122,44
+ AImplicitSelfExpr ../src/test_parser.nit:122,44
+ TId "a" ../src/test_parser.nit:122,44
+ AListExprs ../src/test_parser.nit:122,44
+ TCpar ")" ../src/test_parser.nit:122,45
+ ABlockExpr ../src/test_parser.nit:124,4--127,5
+ AVardeclExpr ../src/test_parser.nit:124,4--33
TKwvar "var" ../src/test_parser.nit:124,4--6
- TId "token" ../src/test_parser.nit:124,8--12
- TAssign "=" ../src/test_parser.nit:124,14
- ACallExpr ../src/test_parser.nit:124,16--25
- ACallExpr ../src/test_parser.nit:124,16--20
- AImplicitSelfExpr ../src/test_parser.nit:124,16
- TId "lexer" ../src/test_parser.nit:124,16--20
- AListExprs ../src/test_parser.nit:124,20
- TId "next" ../src/test_parser.nit:124,22--25
- AListExprs ../src/test_parser.nit:124,25
- AWhileExpr ../src/test_parser.nit:125,4--130,6
- TKwwhile "while" ../src/test_parser.nit:125,4--8
- ANotExpr ../src/test_parser.nit:125,10--26
- TKwnot "not" ../src/test_parser.nit:125,10--12
- AIsaExpr ../src/test_parser.nit:125,14--26
- ACallExpr ../src/test_parser.nit:125,14--18
- AImplicitSelfExpr ../src/test_parser.nit:125,14
- TId "token" ../src/test_parser.nit:125,14--18
- AListExprs ../src/test_parser.nit:125,18
- AType ../src/test_parser.nit:125,24--26
- TClassid "EOF" ../src/test_parser.nit:125,24--26
- TKwdo "do" ../src/test_parser.nit:125,28--29
- ABlockExpr ../src/test_parser.nit:126,5--130,6
- AIfExpr ../src/test_parser.nit:126,5--128,7
- TKwif "if" ../src/test_parser.nit:126,5--6
- ANotExpr ../src/test_parser.nit:126,8--19
- TKwnot "not" ../src/test_parser.nit:126,8--10
- ACallExpr ../src/test_parser.nit:126,12--19
- AImplicitSelfExpr ../src/test_parser.nit:126,12
- TId "no_print" ../src/test_parser.nit:126,12--19
- AListExprs ../src/test_parser.nit:126,19
- ABlockExpr ../src/test_parser.nit:127,6--64
- ACallExpr ../src/test_parser.nit:127,6--64
- AImplicitSelfExpr ../src/test_parser.nit:127,6
- TId "print" ../src/test_parser.nit:127,6--10
- AParExprs ../src/test_parser.nit:127,11--64
- TOpar "(" ../src/test_parser.nit:127,11
- ASuperstringExpr ../src/test_parser.nit:127,12--63
- AStartStringExpr ../src/test_parser.nit:127,12--27
- TStartString "\"Read token at {" ../src/test_parser.nit:127,12--27
- ACallExpr ../src/test_parser.nit:127,28--41
- ACallExpr ../src/test_parser.nit:127,28--32
- AImplicitSelfExpr ../src/test_parser.nit:127,28
- TId "token" ../src/test_parser.nit:127,28--32
- AListExprs ../src/test_parser.nit:127,32
- TId "location" ../src/test_parser.nit:127,34--41
- AListExprs ../src/test_parser.nit:127,41
- AMidStringExpr ../src/test_parser.nit:127,42--50
- TMidString "} text=\'{" ../src/test_parser.nit:127,42--50
- ACallExpr ../src/test_parser.nit:127,51--60
- ACallExpr ../src/test_parser.nit:127,51--55
- AImplicitSelfExpr ../src/test_parser.nit:127,51
- TId "token" ../src/test_parser.nit:127,51--55
- AListExprs ../src/test_parser.nit:127,55
- TId "text" ../src/test_parser.nit:127,57--60
- AListExprs ../src/test_parser.nit:127,60
- AEndStringExpr ../src/test_parser.nit:127,61--63
- TEndString "}\'\"" ../src/test_parser.nit:127,61--63
- TCpar ")" ../src/test_parser.nit:127,64
- ABlockExpr ../src/test_parser.nit:128,5--7
- TKwend "end" ../src/test_parser.nit:128,5--7
- ACallAssignExpr ../src/test_parser.nit:129,5--22
- AImplicitSelfExpr ../src/test_parser.nit:129,5
- TId "token" ../src/test_parser.nit:129,5--9
- AListExprs ../src/test_parser.nit:129,11
- TAssign "=" ../src/test_parser.nit:129,11
- ACallExpr ../src/test_parser.nit:129,13--22
- ACallExpr ../src/test_parser.nit:129,13--17
- AImplicitSelfExpr ../src/test_parser.nit:129,13
- TId "lexer" ../src/test_parser.nit:129,13--17
- AListExprs ../src/test_parser.nit:129,17
- TId "next" ../src/test_parser.nit:129,19--22
- AListExprs ../src/test_parser.nit:129,22
- TKwend "end" ../src/test_parser.nit:130,4--6
- ABlockExpr ../src/test_parser.nit:132,4--144,5
- AVardeclExpr ../src/test_parser.nit:132,4--33
- TKwvar "var" ../src/test_parser.nit:132,4--6
- TId "parser" ../src/test_parser.nit:132,8--13
- TAssign "=" ../src/test_parser.nit:132,15
- ANewExpr ../src/test_parser.nit:132,17--33
- TKwnew "new" ../src/test_parser.nit:132,17--19
- AType ../src/test_parser.nit:132,21--26
- TClassid "Parser" ../src/test_parser.nit:132,21--26
- AParExprs ../src/test_parser.nit:132,27--33
- TOpar "(" ../src/test_parser.nit:132,27
- ACallExpr ../src/test_parser.nit:132,28--32
- AImplicitSelfExpr ../src/test_parser.nit:132,28
- TId "lexer" ../src/test_parser.nit:132,28--32
- AListExprs ../src/test_parser.nit:132,32
- TCpar ")" ../src/test_parser.nit:132,33
- AVardeclExpr ../src/test_parser.nit:133,4--26
- TKwvar "var" ../src/test_parser.nit:133,4--6
- TId "tree" ../src/test_parser.nit:133,8--11
- TAssign "=" ../src/test_parser.nit:133,13
- ACallExpr ../src/test_parser.nit:133,15--26
- ACallExpr ../src/test_parser.nit:133,15--20
- AImplicitSelfExpr ../src/test_parser.nit:133,15
- TId "parser" ../src/test_parser.nit:133,15--20
- AListExprs ../src/test_parser.nit:133,20
- TId "parse" ../src/test_parser.nit:133,22--26
- AListExprs ../src/test_parser.nit:133,26
- AVardeclExpr ../src/test_parser.nit:135,4--25
- TKwvar "var" ../src/test_parser.nit:135,4--6
- TId "error" ../src/test_parser.nit:135,8--12
- TAssign "=" ../src/test_parser.nit:135,14
- ACallExpr ../src/test_parser.nit:135,16--25
- ACallExpr ../src/test_parser.nit:135,16--19
- AImplicitSelfExpr ../src/test_parser.nit:135,16
- TId "tree" ../src/test_parser.nit:135,16--19
- AListExprs ../src/test_parser.nit:135,19
- TId "n_eof" ../src/test_parser.nit:135,21--25
- AListExprs ../src/test_parser.nit:135,25
- AIfExpr ../src/test_parser.nit:136,4--139,6
- TKwif "if" ../src/test_parser.nit:136,4--5
- AIsaExpr ../src/test_parser.nit:136,7--22
- ACallExpr ../src/test_parser.nit:136,7--11
- AImplicitSelfExpr ../src/test_parser.nit:136,7
- TId "error" ../src/test_parser.nit:136,7--11
- AListExprs ../src/test_parser.nit:136,11
- AType ../src/test_parser.nit:136,17--22
- TClassid "AError" ../src/test_parser.nit:136,17--22
- ABlockExpr ../src/test_parser.nit:137,5--138,10
- ACallExpr ../src/test_parser.nit:137,5--58
- AImplicitSelfExpr ../src/test_parser.nit:137,5
- TId "print" ../src/test_parser.nit:137,5--9
- AParExprs ../src/test_parser.nit:137,10--58
- TOpar "(" ../src/test_parser.nit:137,10
- ASuperstringExpr ../src/test_parser.nit:137,11--57
- AStartStringExpr ../src/test_parser.nit:137,11--21
- TStartString "\"Error at {" ../src/test_parser.nit:137,11--21
- ACallExpr ../src/test_parser.nit:137,22--35
- ACallExpr ../src/test_parser.nit:137,22--26
- AImplicitSelfExpr ../src/test_parser.nit:137,22
- TId "error" ../src/test_parser.nit:137,22--26
- AListExprs ../src/test_parser.nit:137,26
- TId "location" ../src/test_parser.nit:137,28--35
- AListExprs ../src/test_parser.nit:137,35
- AMidStringExpr ../src/test_parser.nit:137,36--42
- TMidString "}:\\n\\t{" ../src/test_parser.nit:137,36--42
- ACallExpr ../src/test_parser.nit:137,43--55
- ACallExpr ../src/test_parser.nit:137,43--47
- AImplicitSelfExpr ../src/test_parser.nit:137,43
- TId "error" ../src/test_parser.nit:137,43--47
- AListExprs ../src/test_parser.nit:137,47
- TId "message" ../src/test_parser.nit:137,49--55
- AListExprs ../src/test_parser.nit:137,55
- AEndStringExpr ../src/test_parser.nit:137,56--57
- TEndString "}\"" ../src/test_parser.nit:137,56--57
- TCpar ")" ../src/test_parser.nit:137,58
- AReturnExpr ../src/test_parser.nit:138,5--10
- TKwreturn "return" ../src/test_parser.nit:138,5--10
- ABlockExpr ../src/test_parser.nit:139,4--6
- TKwend "end" ../src/test_parser.nit:139,4--6
- AIfExpr ../src/test_parser.nit:141,4--143,6
- TKwif "if" ../src/test_parser.nit:141,4--5
- ANotExpr ../src/test_parser.nit:141,7--18
- TKwnot "not" ../src/test_parser.nit:141,7--9
- ACallExpr ../src/test_parser.nit:141,11--18
- AImplicitSelfExpr ../src/test_parser.nit:141,11
- TId "no_print" ../src/test_parser.nit:141,11--18
- AListExprs ../src/test_parser.nit:141,18
- ABlockExpr ../src/test_parser.nit:142,5--44
- ACallExpr ../src/test_parser.nit:142,5--44
- AParExpr ../src/test_parser.nit:142,5--26
- TOpar "(" ../src/test_parser.nit:142,5
- ANewExpr ../src/test_parser.nit:142,6--25
- TKwnew "new" ../src/test_parser.nit:142,6--8
- AType ../src/test_parser.nit:142,10--25
- TClassid "PrintTreeVisitor" ../src/test_parser.nit:142,10--25
- AListExprs ../src/test_parser.nit:142,25
- TCpar ")" ../src/test_parser.nit:142,26
- TId "enter_visit" ../src/test_parser.nit:142,28--38
- AParExprs ../src/test_parser.nit:142,39--44
- TOpar "(" ../src/test_parser.nit:142,39
- ACallExpr ../src/test_parser.nit:142,40--43
- AImplicitSelfExpr ../src/test_parser.nit:142,40
- TId "tree" ../src/test_parser.nit:142,40--43
- AListExprs ../src/test_parser.nit:142,43
- TCpar ")" ../src/test_parser.nit:142,44
- ABlockExpr ../src/test_parser.nit:143,4--6
- TKwend "end" ../src/test_parser.nit:143,4--6
- TKwend "end" ../src/test_parser.nit:144,3--5
- TKwend "end" ../src/test_parser.nit:145,2--4
- TKwend "end" ../src/test_parser.nit:146,1--3
- EOF "" ../src/test_parser.nit:147,1
+ TId "f" ../src/test_parser.nit:124,8
+ TAssign "=" ../src/test_parser.nit:124,10
+ ANewExpr ../src/test_parser.nit:124,12--33
+ TKwnew "new" ../src/test_parser.nit:124,12--14
+ AType ../src/test_parser.nit:124,16--25
+ TClassid "FileReader" ../src/test_parser.nit:124,16--25
+ TId "open" ../src/test_parser.nit:124,27--30
+ AParExprs ../src/test_parser.nit:124,31--33
+ TOpar "(" ../src/test_parser.nit:124,31
+ ACallExpr ../src/test_parser.nit:124,32
+ AImplicitSelfExpr ../src/test_parser.nit:124,32
+ TId "a" ../src/test_parser.nit:124,32
+ AListExprs ../src/test_parser.nit:124,32
+ TCpar ")" ../src/test_parser.nit:124,33
+ ACallAssignExpr ../src/test_parser.nit:125,4--32
+ AImplicitSelfExpr ../src/test_parser.nit:125,4
+ TId "source" ../src/test_parser.nit:125,4--9
+ AListExprs ../src/test_parser.nit:125,11
+ TAssign "=" ../src/test_parser.nit:125,11
+ ANewExpr ../src/test_parser.nit:125,13--32
+ TKwnew "new" ../src/test_parser.nit:125,13--15
+ AType ../src/test_parser.nit:125,17--26
+ TClassid "SourceFile" ../src/test_parser.nit:125,17--26
+ AParExprs ../src/test_parser.nit:125,27--32
+ TOpar "(" ../src/test_parser.nit:125,27
+ ACallExpr ../src/test_parser.nit:125,28
+ AImplicitSelfExpr ../src/test_parser.nit:125,28
+ TId "a" ../src/test_parser.nit:125,28
+ AListExprs ../src/test_parser.nit:125,28
+ ACallExpr ../src/test_parser.nit:125,31
+ AImplicitSelfExpr ../src/test_parser.nit:125,31
+ TId "f" ../src/test_parser.nit:125,31
+ AListExprs ../src/test_parser.nit:125,31
+ TCpar ")" ../src/test_parser.nit:125,32
+ ACallExpr ../src/test_parser.nit:126,4--10
+ ACallExpr ../src/test_parser.nit:126,4
+ AImplicitSelfExpr ../src/test_parser.nit:126,4
+ TId "f" ../src/test_parser.nit:126,4
+ AListExprs ../src/test_parser.nit:126,4
+ TId "close" ../src/test_parser.nit:126,6--10
+ AListExprs ../src/test_parser.nit:126,10
+ TKwend "end" ../src/test_parser.nit:127,3--5
+ AVardeclExpr ../src/test_parser.nit:128,3--31
+ TKwvar "var" ../src/test_parser.nit:128,3--5
+ TId "lexer" ../src/test_parser.nit:128,7--11
+ TAssign "=" ../src/test_parser.nit:128,13
+ ANewExpr ../src/test_parser.nit:128,15--31
+ TKwnew "new" ../src/test_parser.nit:128,15--17
+ AType ../src/test_parser.nit:128,19--23
+ TClassid "Lexer" ../src/test_parser.nit:128,19--23
+ AParExprs ../src/test_parser.nit:128,24--31
+ TOpar "(" ../src/test_parser.nit:128,24
+ ACallExpr ../src/test_parser.nit:128,25--30
+ AImplicitSelfExpr ../src/test_parser.nit:128,25
+ TId "source" ../src/test_parser.nit:128,25--30
+ AListExprs ../src/test_parser.nit:128,30
+ TCpar ")" ../src/test_parser.nit:128,31
+ AIfExpr ../src/test_parser.nit:129,3--153,5
+ TKwif "if" ../src/test_parser.nit:129,3--4
+ ACallExpr ../src/test_parser.nit:129,6--15
+ AImplicitSelfExpr ../src/test_parser.nit:129,6
+ TId "only_lexer" ../src/test_parser.nit:129,6--15
+ AListExprs ../src/test_parser.nit:129,15
+ ABlockExpr ../src/test_parser.nit:130,4--136,6
+ AVardeclExpr ../src/test_parser.nit:130,4--25
+ TKwvar "var" ../src/test_parser.nit:130,4--6
+ TId "token" ../src/test_parser.nit:130,8--12
+ TAssign "=" ../src/test_parser.nit:130,14
+ ACallExpr ../src/test_parser.nit:130,16--25
+ ACallExpr ../src/test_parser.nit:130,16--20
+ AImplicitSelfExpr ../src/test_parser.nit:130,16
+ TId "lexer" ../src/test_parser.nit:130,16--20
+ AListExprs ../src/test_parser.nit:130,20
+ TId "next" ../src/test_parser.nit:130,22--25
+ AListExprs ../src/test_parser.nit:130,25
+ AWhileExpr ../src/test_parser.nit:131,4--136,6
+ TKwwhile "while" ../src/test_parser.nit:131,4--8
+ ANotExpr ../src/test_parser.nit:131,10--26
+ TKwnot "not" ../src/test_parser.nit:131,10--12
+ AIsaExpr ../src/test_parser.nit:131,14--26
+ ACallExpr ../src/test_parser.nit:131,14--18
+ AImplicitSelfExpr ../src/test_parser.nit:131,14
+ TId "token" ../src/test_parser.nit:131,14--18
+ AListExprs ../src/test_parser.nit:131,18
+ TKwisa "isa" ../src/test_parser.nit:131,20--22
+ AType ../src/test_parser.nit:131,24--26
+ TClassid "EOF" ../src/test_parser.nit:131,24--26
+ TKwdo "do" ../src/test_parser.nit:131,28--29
+ ABlockExpr ../src/test_parser.nit:132,5--136,6
+ AIfExpr ../src/test_parser.nit:132,5--134,7
+ TKwif "if" ../src/test_parser.nit:132,5--6
+ ANotExpr ../src/test_parser.nit:132,8--19
+ TKwnot "not" ../src/test_parser.nit:132,8--10
+ ACallExpr ../src/test_parser.nit:132,12--19
+ AImplicitSelfExpr ../src/test_parser.nit:132,12
+ TId "no_print" ../src/test_parser.nit:132,12--19
+ AListExprs ../src/test_parser.nit:132,19
+ ABlockExpr ../src/test_parser.nit:133,6--64
+ ACallExpr ../src/test_parser.nit:133,6--64
+ AImplicitSelfExpr ../src/test_parser.nit:133,6
+ TId "print" ../src/test_parser.nit:133,6--10
+ AParExprs ../src/test_parser.nit:133,11--64
+ TOpar "(" ../src/test_parser.nit:133,11
+ ASuperstringExpr ../src/test_parser.nit:133,12--63
+ AStartStringExpr ../src/test_parser.nit:133,12--27
+ TStartString "\"Read token at {" ../src/test_parser.nit:133,12--27
+ ACallExpr ../src/test_parser.nit:133,28--41
+ ACallExpr ../src/test_parser.nit:133,28--32
+ AImplicitSelfExpr ../src/test_parser.nit:133,28
+ TId "token" ../src/test_parser.nit:133,28--32
+ AListExprs ../src/test_parser.nit:133,32
+ TId "location" ../src/test_parser.nit:133,34--41
+ AListExprs ../src/test_parser.nit:133,41
+ AMidStringExpr ../src/test_parser.nit:133,42--50
+ TMidString "} text=\'{" ../src/test_parser.nit:133,42--50
+ ACallExpr ../src/test_parser.nit:133,51--60
+ ACallExpr ../src/test_parser.nit:133,51--55
+ AImplicitSelfExpr ../src/test_parser.nit:133,51
+ TId "token" ../src/test_parser.nit:133,51--55
+ AListExprs ../src/test_parser.nit:133,55
+ TId "text" ../src/test_parser.nit:133,57--60
+ AListExprs ../src/test_parser.nit:133,60
+ AEndStringExpr ../src/test_parser.nit:133,61--63
+ TEndString "}\'\"" ../src/test_parser.nit:133,61--63
+ TCpar ")" ../src/test_parser.nit:133,64
+ ABlockExpr ../src/test_parser.nit:134,5--7
+ TKwend "end" ../src/test_parser.nit:134,5--7
+ ACallAssignExpr ../src/test_parser.nit:135,5--22
+ AImplicitSelfExpr ../src/test_parser.nit:135,5
+ TId "token" ../src/test_parser.nit:135,5--9
+ AListExprs ../src/test_parser.nit:135,11
+ TAssign "=" ../src/test_parser.nit:135,11
+ ACallExpr ../src/test_parser.nit:135,13--22
+ ACallExpr ../src/test_parser.nit:135,13--17
+ AImplicitSelfExpr ../src/test_parser.nit:135,13
+ TId "lexer" ../src/test_parser.nit:135,13--17
+ AListExprs ../src/test_parser.nit:135,17
+ TId "next" ../src/test_parser.nit:135,19--22
+ AListExprs ../src/test_parser.nit:135,22
+ TKwend "end" ../src/test_parser.nit:136,4--6
+ ABlockExpr ../src/test_parser.nit:138,4--153,5
+ AVardeclExpr ../src/test_parser.nit:138,4--33
+ TKwvar "var" ../src/test_parser.nit:138,4--6
+ TId "parser" ../src/test_parser.nit:138,8--13
+ TAssign "=" ../src/test_parser.nit:138,15
+ ANewExpr ../src/test_parser.nit:138,17--33
+ TKwnew "new" ../src/test_parser.nit:138,17--19
+ AType ../src/test_parser.nit:138,21--26
+ TClassid "Parser" ../src/test_parser.nit:138,21--26
+ AParExprs ../src/test_parser.nit:138,27--33
+ TOpar "(" ../src/test_parser.nit:138,27
+ ACallExpr ../src/test_parser.nit:138,28--32
+ AImplicitSelfExpr ../src/test_parser.nit:138,28
+ TId "lexer" ../src/test_parser.nit:138,28--32
+ AListExprs ../src/test_parser.nit:138,32
+ TCpar ")" ../src/test_parser.nit:138,33
+ AVardeclExpr ../src/test_parser.nit:139,4--26
+ TKwvar "var" ../src/test_parser.nit:139,4--6
+ TId "tree" ../src/test_parser.nit:139,8--11
+ TAssign "=" ../src/test_parser.nit:139,13
+ ACallExpr ../src/test_parser.nit:139,15--26
+ ACallExpr ../src/test_parser.nit:139,15--20
+ AImplicitSelfExpr ../src/test_parser.nit:139,15
+ TId "parser" ../src/test_parser.nit:139,15--20
+ AListExprs ../src/test_parser.nit:139,20
+ TId "parse" ../src/test_parser.nit:139,22--26
+ AListExprs ../src/test_parser.nit:139,26
+ AVardeclExpr ../src/test_parser.nit:141,4--25
+ TKwvar "var" ../src/test_parser.nit:141,4--6
+ TId "error" ../src/test_parser.nit:141,8--12
+ TAssign "=" ../src/test_parser.nit:141,14
+ ACallExpr ../src/test_parser.nit:141,16--25
+ ACallExpr ../src/test_parser.nit:141,16--19
+ AImplicitSelfExpr ../src/test_parser.nit:141,16
+ TId "tree" ../src/test_parser.nit:141,16--19
+ AListExprs ../src/test_parser.nit:141,19
+ TId "n_eof" ../src/test_parser.nit:141,21--25
+ AListExprs ../src/test_parser.nit:141,25
+ AIfExpr ../src/test_parser.nit:142,4--145,6
+ TKwif "if" ../src/test_parser.nit:142,4--5
+ AIsaExpr ../src/test_parser.nit:142,7--22
+ ACallExpr ../src/test_parser.nit:142,7--11
+ AImplicitSelfExpr ../src/test_parser.nit:142,7
+ TId "error" ../src/test_parser.nit:142,7--11
+ AListExprs ../src/test_parser.nit:142,11
+ TKwisa "isa" ../src/test_parser.nit:142,13--15
+ AType ../src/test_parser.nit:142,17--22
+ TClassid "AError" ../src/test_parser.nit:142,17--22
+ ABlockExpr ../src/test_parser.nit:143,5--144,10
+ ACallExpr ../src/test_parser.nit:143,5--58
+ AImplicitSelfExpr ../src/test_parser.nit:143,5
+ TId "print" ../src/test_parser.nit:143,5--9
+ AParExprs ../src/test_parser.nit:143,10--58
+ TOpar "(" ../src/test_parser.nit:143,10
+ ASuperstringExpr ../src/test_parser.nit:143,11--57
+ AStartStringExpr ../src/test_parser.nit:143,11--21
+ TStartString "\"Error at {" ../src/test_parser.nit:143,11--21
+ ACallExpr ../src/test_parser.nit:143,22--35
+ ACallExpr ../src/test_parser.nit:143,22--26
+ AImplicitSelfExpr ../src/test_parser.nit:143,22
+ TId "error" ../src/test_parser.nit:143,22--26
+ AListExprs ../src/test_parser.nit:143,26
+ TId "location" ../src/test_parser.nit:143,28--35
+ AListExprs ../src/test_parser.nit:143,35
+ AMidStringExpr ../src/test_parser.nit:143,36--42
+ TMidString "}:\\n\\t{" ../src/test_parser.nit:143,36--42
+ ACallExpr ../src/test_parser.nit:143,43--55
+ ACallExpr ../src/test_parser.nit:143,43--47
+ AImplicitSelfExpr ../src/test_parser.nit:143,43
+ TId "error" ../src/test_parser.nit:143,43--47
+ AListExprs ../src/test_parser.nit:143,47
+ TId "message" ../src/test_parser.nit:143,49--55
+ AListExprs ../src/test_parser.nit:143,55
+ AEndStringExpr ../src/test_parser.nit:143,56--57
+ TEndString "}\"" ../src/test_parser.nit:143,56--57
+ TCpar ")" ../src/test_parser.nit:143,58
+ AReturnExpr ../src/test_parser.nit:144,5--10
+ TKwreturn "return" ../src/test_parser.nit:144,5--10
+ ABlockExpr ../src/test_parser.nit:145,4--6
+ TKwend "end" ../src/test_parser.nit:145,4--6
+ AIfExpr ../src/test_parser.nit:147,4--152,6
+ TKwif "if" ../src/test_parser.nit:147,4--5
+ ACallExpr ../src/test_parser.nit:147,7--9
+ AImplicitSelfExpr ../src/test_parser.nit:147,7
+ TId "xml" ../src/test_parser.nit:147,7--9
+ AListExprs ../src/test_parser.nit:147,9
+ ABlockExpr ../src/test_parser.nit:148,5--149,32
+ ACallExpr ../src/test_parser.nit:148,5--25
+ ACallExpr ../src/test_parser.nit:148,5--8
+ AImplicitSelfExpr ../src/test_parser.nit:148,5
+ TId "tree" ../src/test_parser.nit:148,5--8
+ AListExprs ../src/test_parser.nit:148,8
+ TId "parentize_tokens" ../src/test_parser.nit:148,10--25
+ AListExprs ../src/test_parser.nit:148,25
+ ACallExpr ../src/test_parser.nit:149,5--32
+ ACallExpr ../src/test_parser.nit:149,5--15
+ ACallExpr ../src/test_parser.nit:149,5--8
+ AImplicitSelfExpr ../src/test_parser.nit:149,5
+ TId "tree" ../src/test_parser.nit:149,5--8
+ AListExprs ../src/test_parser.nit:149,8
+ TId "to_xml" ../src/test_parser.nit:149,10--15
+ AListExprs ../src/test_parser.nit:149,15
+ TId "write_to" ../src/test_parser.nit:149,17--24
+ AParExprs ../src/test_parser.nit:149,25--32
+ TOpar "(" ../src/test_parser.nit:149,25
+ ACallExpr ../src/test_parser.nit:149,26--31
+ AImplicitSelfExpr ../src/test_parser.nit:149,26
+ TId "stdout" ../src/test_parser.nit:149,26--31
+ AListExprs ../src/test_parser.nit:149,31
+ TCpar ")" ../src/test_parser.nit:149,32
+ AIfExpr ../src/test_parser.nit:150,9--152,6
+ TKwif "if" ../src/test_parser.nit:150,9--10
+ ANotExpr ../src/test_parser.nit:150,12--23
+ TKwnot "not" ../src/test_parser.nit:150,12--14
+ ACallExpr ../src/test_parser.nit:150,16--23
+ AImplicitSelfExpr ../src/test_parser.nit:150,16
+ TId "no_print" ../src/test_parser.nit:150,16--23
+ AListExprs ../src/test_parser.nit:150,23
+ ABlockExpr ../src/test_parser.nit:151,5--44
+ ACallExpr ../src/test_parser.nit:151,5--44
+ AParExpr ../src/test_parser.nit:151,5--26
+ TOpar "(" ../src/test_parser.nit:151,5
+ ANewExpr ../src/test_parser.nit:151,6--25
+ TKwnew "new" ../src/test_parser.nit:151,6--8
+ AType ../src/test_parser.nit:151,10--25
+ TClassid "PrintTreeVisitor" ../src/test_parser.nit:151,10--25
+ AListExprs ../src/test_parser.nit:151,25
+ TCpar ")" ../src/test_parser.nit:151,26
+ TId "enter_visit" ../src/test_parser.nit:151,28--38
+ AParExprs ../src/test_parser.nit:151,39--44
+ TOpar "(" ../src/test_parser.nit:151,39
+ ACallExpr ../src/test_parser.nit:151,40--43
+ AImplicitSelfExpr ../src/test_parser.nit:151,40
+ TId "tree" ../src/test_parser.nit:151,40--43
+ AListExprs ../src/test_parser.nit:151,43
+ TCpar ")" ../src/test_parser.nit:151,44
+ ABlockExpr ../src/test_parser.nit:152,4--6
+ TKwend "end" ../src/test_parser.nit:152,4--6
+ TKwend "end" ../src/test_parser.nit:153,3--5
+ TKwend "end" ../src/test_parser.nit:154,2--4
+ TKwend "end" ../src/test_parser.nit:155,1--3
+ EOF "" ../src/test_parser.nit:156,1
Read token at ../src/test_parser.nit:21,8--18 text='parser_util'
Read token at ../src/test_parser.nit:21,19--22,0 text='
'
-Read token at ../src/test_parser.nit:22,1--23,0 text='
-'
-Read token at ../src/test_parser.nit:23,1--5 text='class'
-Read token at ../src/test_parser.nit:23,7--22 text='PrintTreeVisitor'
-Read token at ../src/test_parser.nit:23,23--24,0 text='
-'
-Read token at ../src/test_parser.nit:24,2--6 text='super'
-Read token at ../src/test_parser.nit:24,8--14 text='Visitor'
-Read token at ../src/test_parser.nit:24,15--25,0 text='
-'
-Read token at ../src/test_parser.nit:25,2--8 text='private'
-Read token at ../src/test_parser.nit:25,10--12 text='var'
-Read token at ../src/test_parser.nit:25,14--17 text='rank'
-Read token at ../src/test_parser.nit:25,18 text=':'
-Read token at ../src/test_parser.nit:25,20--22 text='Int'
-Read token at ../src/test_parser.nit:25,24 text='='
-Read token at ../src/test_parser.nit:25,26 text='0'
-Read token at ../src/test_parser.nit:25,27--26,0 text='
-'
-Read token at ../src/test_parser.nit:26,2--6 text='redef'
-Read token at ../src/test_parser.nit:26,8--10 text='fun'
-Read token at ../src/test_parser.nit:26,12--16 text='visit'
-Read token at ../src/test_parser.nit:26,17 text='('
-Read token at ../src/test_parser.nit:26,18 text='n'
-Read token at ../src/test_parser.nit:26,19 text=')'
-Read token at ../src/test_parser.nit:26,20--27,0 text='
-'
-Read token at ../src/test_parser.nit:27,2--3 text='do'
-Read token at ../src/test_parser.nit:27,4--28,0 text='
-'
-Read token at ../src/test_parser.nit:28,3--4 text='if'
-Read token at ../src/test_parser.nit:28,6 text='n'
-Read token at ../src/test_parser.nit:28,8--10 text='isa'
-Read token at ../src/test_parser.nit:28,12--16 text='Token'
-Read token at ../src/test_parser.nit:28,18--21 text='then'
-Read token at ../src/test_parser.nit:28,22--29,0 text='
-'
-Read token at ../src/test_parser.nit:29,4--9 text='printn'
-Read token at ../src/test_parser.nit:29,10 text='('
-Read token at ../src/test_parser.nit:29,11--14 text='" "'
-Read token at ../src/test_parser.nit:29,16 text='*'
-Read token at ../src/test_parser.nit:29,18--21 text='rank'
-Read token at ../src/test_parser.nit:29,22 text=','
-Read token at ../src/test_parser.nit:29,24 text='n'
-Read token at ../src/test_parser.nit:29,25 text='.'
-Read token at ../src/test_parser.nit:29,26--35 text='class_name'
-Read token at ../src/test_parser.nit:29,36 text=','
-Read token at ../src/test_parser.nit:29,38--42 text='" \""'
-Read token at ../src/test_parser.nit:29,43 text=','
-Read token at ../src/test_parser.nit:29,45 text='n'
-Read token at ../src/test_parser.nit:29,46 text='.'
-Read token at ../src/test_parser.nit:29,47--50 text='text'
-Read token at ../src/test_parser.nit:29,51 text='.'
-Read token at ../src/test_parser.nit:29,52--62 text='escape_to_c'
-Read token at ../src/test_parser.nit:29,63 text=','
-Read token at ../src/test_parser.nit:29,65--69 text='"\" "'
-Read token at ../src/test_parser.nit:29,70 text=','
-Read token at ../src/test_parser.nit:29,72 text='n'
-Read token at ../src/test_parser.nit:29,73 text='.'
-Read token at ../src/test_parser.nit:29,74--81 text='location'
-Read token at ../src/test_parser.nit:29,82 text=','
-Read token at ../src/test_parser.nit:29,84--87 text='"\n"'
-Read token at ../src/test_parser.nit:29,88 text=')'
-Read token at ../src/test_parser.nit:29,89--30,0 text='
-'
-Read token at ../src/test_parser.nit:30,3--6 text='else'
-Read token at ../src/test_parser.nit:30,7--31,0 text='
+Read token at ../src/test_parser.nit:22,1--6 text='import'
+Read token at ../src/test_parser.nit:22,8--14 text='astutil'
+Read token at ../src/test_parser.nit:22,15--23,0 text='
+'
+Read token at ../src/test_parser.nit:23,1--24,0 text='
+'
+Read token at ../src/test_parser.nit:24,1--25,0 text='# A basic visitor that prints AST trees to the screen
+'
+Read token at ../src/test_parser.nit:25,1--5 text='class'
+Read token at ../src/test_parser.nit:25,7--22 text='PrintTreeVisitor'
+Read token at ../src/test_parser.nit:25,23--26,0 text='
+'
+Read token at ../src/test_parser.nit:26,2--6 text='super'
+Read token at ../src/test_parser.nit:26,8--14 text='Visitor'
+Read token at ../src/test_parser.nit:26,15--27,0 text='
+'
+Read token at ../src/test_parser.nit:27,2--8 text='private'
+Read token at ../src/test_parser.nit:27,10--12 text='var'
+Read token at ../src/test_parser.nit:27,14--17 text='rank'
+Read token at ../src/test_parser.nit:27,18 text=':'
+Read token at ../src/test_parser.nit:27,20--22 text='Int'
+Read token at ../src/test_parser.nit:27,24 text='='
+Read token at ../src/test_parser.nit:27,26 text='0'
+Read token at ../src/test_parser.nit:27,27--28,0 text='
+'
+Read token at ../src/test_parser.nit:28,2--6 text='redef'
+Read token at ../src/test_parser.nit:28,8--10 text='fun'
+Read token at ../src/test_parser.nit:28,12--16 text='visit'
+Read token at ../src/test_parser.nit:28,17 text='('
+Read token at ../src/test_parser.nit:28,18 text='n'
+Read token at ../src/test_parser.nit:28,19 text=')'
+Read token at ../src/test_parser.nit:28,20--29,0 text='
+'
+Read token at ../src/test_parser.nit:29,2--3 text='do'
+Read token at ../src/test_parser.nit:29,4--30,0 text='
+'
+Read token at ../src/test_parser.nit:30,3--4 text='if'
+Read token at ../src/test_parser.nit:30,6 text='n'
+Read token at ../src/test_parser.nit:30,8--10 text='isa'
+Read token at ../src/test_parser.nit:30,12--16 text='Token'
+Read token at ../src/test_parser.nit:30,18--21 text='then'
+Read token at ../src/test_parser.nit:30,22--31,0 text='
'
Read token at ../src/test_parser.nit:31,4--9 text='printn'
Read token at ../src/test_parser.nit:31,10 text='('
Read token at ../src/test_parser.nit:31,25 text='.'
Read token at ../src/test_parser.nit:31,26--35 text='class_name'
Read token at ../src/test_parser.nit:31,36 text=','
-Read token at ../src/test_parser.nit:31,38--40 text='" "'
-Read token at ../src/test_parser.nit:31,41 text=','
-Read token at ../src/test_parser.nit:31,43 text='n'
-Read token at ../src/test_parser.nit:31,44 text='.'
-Read token at ../src/test_parser.nit:31,45--52 text='location'
-Read token at ../src/test_parser.nit:31,53 text=','
-Read token at ../src/test_parser.nit:31,55--58 text='"\n"'
-Read token at ../src/test_parser.nit:31,59 text=')'
-Read token at ../src/test_parser.nit:31,60--32,0 text='
-'
-Read token at ../src/test_parser.nit:32,3--5 text='end'
-Read token at ../src/test_parser.nit:32,6--33,0 text='
-'
-Read token at ../src/test_parser.nit:33,3--6 text='rank'
-Read token at ../src/test_parser.nit:33,8 text='='
-Read token at ../src/test_parser.nit:33,10--13 text='rank'
-Read token at ../src/test_parser.nit:33,15 text='+'
-Read token at ../src/test_parser.nit:33,17 text='1'
-Read token at ../src/test_parser.nit:33,18--34,0 text='
-'
-Read token at ../src/test_parser.nit:34,3 text='n'
-Read token at ../src/test_parser.nit:34,4 text='.'
-Read token at ../src/test_parser.nit:34,5--13 text='visit_all'
-Read token at ../src/test_parser.nit:34,14 text='('
-Read token at ../src/test_parser.nit:34,15--18 text='self'
-Read token at ../src/test_parser.nit:34,19 text=')'
-Read token at ../src/test_parser.nit:34,20--35,0 text='
+Read token at ../src/test_parser.nit:31,38--42 text='" \""'
+Read token at ../src/test_parser.nit:31,43 text=','
+Read token at ../src/test_parser.nit:31,45 text='n'
+Read token at ../src/test_parser.nit:31,46 text='.'
+Read token at ../src/test_parser.nit:31,47--50 text='text'
+Read token at ../src/test_parser.nit:31,51 text='.'
+Read token at ../src/test_parser.nit:31,52--62 text='escape_to_c'
+Read token at ../src/test_parser.nit:31,63 text=','
+Read token at ../src/test_parser.nit:31,65--69 text='"\" "'
+Read token at ../src/test_parser.nit:31,70 text=','
+Read token at ../src/test_parser.nit:31,72 text='n'
+Read token at ../src/test_parser.nit:31,73 text='.'
+Read token at ../src/test_parser.nit:31,74--81 text='location'
+Read token at ../src/test_parser.nit:31,82 text=','
+Read token at ../src/test_parser.nit:31,84--87 text='"\n"'
+Read token at ../src/test_parser.nit:31,88 text=')'
+Read token at ../src/test_parser.nit:31,89--32,0 text='
+'
+Read token at ../src/test_parser.nit:32,3--6 text='else'
+Read token at ../src/test_parser.nit:32,7--33,0 text='
+'
+Read token at ../src/test_parser.nit:33,4--9 text='printn'
+Read token at ../src/test_parser.nit:33,10 text='('
+Read token at ../src/test_parser.nit:33,11--14 text='" "'
+Read token at ../src/test_parser.nit:33,16 text='*'
+Read token at ../src/test_parser.nit:33,18--21 text='rank'
+Read token at ../src/test_parser.nit:33,22 text=','
+Read token at ../src/test_parser.nit:33,24 text='n'
+Read token at ../src/test_parser.nit:33,25 text='.'
+Read token at ../src/test_parser.nit:33,26--35 text='class_name'
+Read token at ../src/test_parser.nit:33,36 text=','
+Read token at ../src/test_parser.nit:33,38--40 text='" "'
+Read token at ../src/test_parser.nit:33,41 text=','
+Read token at ../src/test_parser.nit:33,43 text='n'
+Read token at ../src/test_parser.nit:33,44 text='.'
+Read token at ../src/test_parser.nit:33,45--52 text='location'
+Read token at ../src/test_parser.nit:33,53 text=','
+Read token at ../src/test_parser.nit:33,55--58 text='"\n"'
+Read token at ../src/test_parser.nit:33,59 text=')'
+Read token at ../src/test_parser.nit:33,60--34,0 text='
+'
+Read token at ../src/test_parser.nit:34,3--5 text='end'
+Read token at ../src/test_parser.nit:34,6--35,0 text='
'
Read token at ../src/test_parser.nit:35,3--6 text='rank'
Read token at ../src/test_parser.nit:35,8 text='='
Read token at ../src/test_parser.nit:35,10--13 text='rank'
-Read token at ../src/test_parser.nit:35,15 text='-'
+Read token at ../src/test_parser.nit:35,15 text='+'
Read token at ../src/test_parser.nit:35,17 text='1'
Read token at ../src/test_parser.nit:35,18--36,0 text='
'
-Read token at ../src/test_parser.nit:36,2--4 text='end'
-Read token at ../src/test_parser.nit:36,5--37,0 text='
+Read token at ../src/test_parser.nit:36,3 text='n'
+Read token at ../src/test_parser.nit:36,4 text='.'
+Read token at ../src/test_parser.nit:36,5--13 text='visit_all'
+Read token at ../src/test_parser.nit:36,14 text='('
+Read token at ../src/test_parser.nit:36,15--18 text='self'
+Read token at ../src/test_parser.nit:36,19 text=')'
+Read token at ../src/test_parser.nit:36,20--37,0 text='
'
-Read token at ../src/test_parser.nit:37,1--3 text='end'
-Read token at ../src/test_parser.nit:37,4--38,0 text='
+Read token at ../src/test_parser.nit:37,3--6 text='rank'
+Read token at ../src/test_parser.nit:37,8 text='='
+Read token at ../src/test_parser.nit:37,10--13 text='rank'
+Read token at ../src/test_parser.nit:37,15 text='-'
+Read token at ../src/test_parser.nit:37,17 text='1'
+Read token at ../src/test_parser.nit:37,18--38,0 text='
'
-Read token at ../src/test_parser.nit:38,1--39,0 text='
+Read token at ../src/test_parser.nit:38,2--4 text='end'
+Read token at ../src/test_parser.nit:38,5--39,0 text='
'
-Read token at ../src/test_parser.nit:39,1--3 text='var'
-Read token at ../src/test_parser.nit:39,5--12 text='no_print'
-Read token at ../src/test_parser.nit:39,14 text='='
-Read token at ../src/test_parser.nit:39,16--20 text='false'
-Read token at ../src/test_parser.nit:39,21--40,0 text='
+Read token at ../src/test_parser.nit:39,1--3 text='end'
+Read token at ../src/test_parser.nit:39,4--40,0 text='
'
-Read token at ../src/test_parser.nit:40,1--3 text='var'
-Read token at ../src/test_parser.nit:40,5--14 text='only_lexer'
-Read token at ../src/test_parser.nit:40,16 text='='
-Read token at ../src/test_parser.nit:40,18--22 text='false'
-Read token at ../src/test_parser.nit:40,23--41,0 text='
+Read token at ../src/test_parser.nit:40,1--41,0 text='
'
Read token at ../src/test_parser.nit:41,1--3 text='var'
-Read token at ../src/test_parser.nit:41,5--13 text='need_help'
-Read token at ../src/test_parser.nit:41,15 text='='
-Read token at ../src/test_parser.nit:41,17--21 text='false'
-Read token at ../src/test_parser.nit:41,22--42,0 text='
+Read token at ../src/test_parser.nit:41,5--12 text='no_print'
+Read token at ../src/test_parser.nit:41,14 text='='
+Read token at ../src/test_parser.nit:41,16--20 text='false'
+Read token at ../src/test_parser.nit:41,21--42,0 text='
'
Read token at ../src/test_parser.nit:42,1--3 text='var'
-Read token at ../src/test_parser.nit:42,5--11 text='no_file'
-Read token at ../src/test_parser.nit:42,13 text='='
-Read token at ../src/test_parser.nit:42,15--19 text='false'
-Read token at ../src/test_parser.nit:42,20--43,0 text='
+Read token at ../src/test_parser.nit:42,5--14 text='only_lexer'
+Read token at ../src/test_parser.nit:42,16 text='='
+Read token at ../src/test_parser.nit:42,18--22 text='false'
+Read token at ../src/test_parser.nit:42,23--43,0 text='
'
Read token at ../src/test_parser.nit:43,1--3 text='var'
-Read token at ../src/test_parser.nit:43,5--15 text='interactive'
-Read token at ../src/test_parser.nit:43,17 text='='
-Read token at ../src/test_parser.nit:43,19--23 text='false'
-Read token at ../src/test_parser.nit:43,24--44,0 text='
-'
-Read token at ../src/test_parser.nit:44,1--45,0 text='
-'
-Read token at ../src/test_parser.nit:45,1--5 text='while'
-Read token at ../src/test_parser.nit:45,7--9 text='not'
-Read token at ../src/test_parser.nit:45,11--14 text='args'
-Read token at ../src/test_parser.nit:45,15 text='.'
-Read token at ../src/test_parser.nit:45,16--23 text='is_empty'
-Read token at ../src/test_parser.nit:45,25--27 text='and'
-Read token at ../src/test_parser.nit:45,29--32 text='args'
-Read token at ../src/test_parser.nit:45,33 text='.'
-Read token at ../src/test_parser.nit:45,34--38 text='first'
-Read token at ../src/test_parser.nit:45,39 text='.'
-Read token at ../src/test_parser.nit:45,40--44 text='chars'
-Read token at ../src/test_parser.nit:45,45 text='.'
-Read token at ../src/test_parser.nit:45,46--50 text='first'
-Read token at ../src/test_parser.nit:45,52--53 text='=='
-Read token at ../src/test_parser.nit:45,55--57 text=''-''
-Read token at ../src/test_parser.nit:45,59--60 text='do'
-Read token at ../src/test_parser.nit:45,61--46,0 text='
-'
-Read token at ../src/test_parser.nit:46,2--3 text='if'
-Read token at ../src/test_parser.nit:46,5--8 text='args'
-Read token at ../src/test_parser.nit:46,9 text='.'
-Read token at ../src/test_parser.nit:46,10--14 text='first'
-Read token at ../src/test_parser.nit:46,16--17 text='=='
-Read token at ../src/test_parser.nit:46,19--22 text='"-n"'
-Read token at ../src/test_parser.nit:46,24--27 text='then'
-Read token at ../src/test_parser.nit:46,28--47,0 text='
-'
-Read token at ../src/test_parser.nit:47,3--10 text='no_print'
-Read token at ../src/test_parser.nit:47,12 text='='
-Read token at ../src/test_parser.nit:47,14--17 text='true'
-Read token at ../src/test_parser.nit:47,18--48,0 text='
-'
-Read token at ../src/test_parser.nit:48,2--5 text='else'
-Read token at ../src/test_parser.nit:48,7--8 text='if'
-Read token at ../src/test_parser.nit:48,10--13 text='args'
-Read token at ../src/test_parser.nit:48,14 text='.'
-Read token at ../src/test_parser.nit:48,15--19 text='first'
-Read token at ../src/test_parser.nit:48,21--22 text='=='
-Read token at ../src/test_parser.nit:48,24--27 text='"-l"'
-Read token at ../src/test_parser.nit:48,29--32 text='then'
-Read token at ../src/test_parser.nit:48,33--49,0 text='
-'
-Read token at ../src/test_parser.nit:49,3--12 text='only_lexer'
-Read token at ../src/test_parser.nit:49,14 text='='
-Read token at ../src/test_parser.nit:49,16--19 text='true'
-Read token at ../src/test_parser.nit:49,20--50,0 text='
-'
-Read token at ../src/test_parser.nit:50,2--5 text='else'
-Read token at ../src/test_parser.nit:50,7--8 text='if'
-Read token at ../src/test_parser.nit:50,10--13 text='args'
-Read token at ../src/test_parser.nit:50,14 text='.'
-Read token at ../src/test_parser.nit:50,15--19 text='first'
-Read token at ../src/test_parser.nit:50,21--22 text='=='
-Read token at ../src/test_parser.nit:50,24--27 text='"-p"'
-Read token at ../src/test_parser.nit:50,29--32 text='then'
-Read token at ../src/test_parser.nit:50,33--51,0 text='
-'
-Read token at ../src/test_parser.nit:51,3--12 text='only_lexer'
-Read token at ../src/test_parser.nit:51,14 text='='
-Read token at ../src/test_parser.nit:51,16--20 text='false'
-Read token at ../src/test_parser.nit:51,21--52,0 text='
-'
-Read token at ../src/test_parser.nit:52,2--5 text='else'
-Read token at ../src/test_parser.nit:52,7--8 text='if'
-Read token at ../src/test_parser.nit:52,10--13 text='args'
-Read token at ../src/test_parser.nit:52,14 text='.'
-Read token at ../src/test_parser.nit:52,15--19 text='first'
-Read token at ../src/test_parser.nit:52,21--22 text='=='
-Read token at ../src/test_parser.nit:52,24--27 text='"-e"'
-Read token at ../src/test_parser.nit:52,29--32 text='then'
-Read token at ../src/test_parser.nit:52,33--53,0 text='
-'
-Read token at ../src/test_parser.nit:53,3--9 text='no_file'
-Read token at ../src/test_parser.nit:53,11 text='='
-Read token at ../src/test_parser.nit:53,13--16 text='true'
-Read token at ../src/test_parser.nit:53,17--54,0 text='
-'
-Read token at ../src/test_parser.nit:54,2--5 text='else'
-Read token at ../src/test_parser.nit:54,7--8 text='if'
-Read token at ../src/test_parser.nit:54,10--13 text='args'
-Read token at ../src/test_parser.nit:54,14 text='.'
-Read token at ../src/test_parser.nit:54,15--19 text='first'
-Read token at ../src/test_parser.nit:54,21--22 text='=='
-Read token at ../src/test_parser.nit:54,24--27 text='"-i"'
-Read token at ../src/test_parser.nit:54,29--32 text='then'
-Read token at ../src/test_parser.nit:54,33--55,0 text='
-'
-Read token at ../src/test_parser.nit:55,3--13 text='interactive'
-Read token at ../src/test_parser.nit:55,15 text='='
-Read token at ../src/test_parser.nit:55,17--20 text='true'
-Read token at ../src/test_parser.nit:55,21--56,0 text='
-'
-Read token at ../src/test_parser.nit:56,2--5 text='else'
-Read token at ../src/test_parser.nit:56,7--8 text='if'
-Read token at ../src/test_parser.nit:56,10--13 text='args'
-Read token at ../src/test_parser.nit:56,14 text='.'
-Read token at ../src/test_parser.nit:56,15--19 text='first'
-Read token at ../src/test_parser.nit:56,21--22 text='=='
-Read token at ../src/test_parser.nit:56,24--27 text='"-h"'
-Read token at ../src/test_parser.nit:56,29--30 text='or'
-Read token at ../src/test_parser.nit:56,32--35 text='args'
-Read token at ../src/test_parser.nit:56,36 text='.'
-Read token at ../src/test_parser.nit:56,37--41 text='first'
-Read token at ../src/test_parser.nit:56,43--44 text='=='
-Read token at ../src/test_parser.nit:56,46--49 text='"-?"'
-Read token at ../src/test_parser.nit:56,51--54 text='then'
-Read token at ../src/test_parser.nit:56,55--57,0 text='
-'
-Read token at ../src/test_parser.nit:57,3--11 text='need_help'
-Read token at ../src/test_parser.nit:57,13 text='='
-Read token at ../src/test_parser.nit:57,15--18 text='true'
-Read token at ../src/test_parser.nit:57,19--58,0 text='
-'
-Read token at ../src/test_parser.nit:58,2--5 text='else'
-Read token at ../src/test_parser.nit:58,6--59,0 text='
-'
-Read token at ../src/test_parser.nit:59,3--8 text='stderr'
-Read token at ../src/test_parser.nit:59,9 text='.'
-Read token at ../src/test_parser.nit:59,10--14 text='write'
-Read token at ../src/test_parser.nit:59,15 text='('
-Read token at ../src/test_parser.nit:59,16--32 text='"Unknown option {'
-Read token at ../src/test_parser.nit:59,33--36 text='args'
-Read token at ../src/test_parser.nit:59,37 text='.'
-Read token at ../src/test_parser.nit:59,38--42 text='first'
-Read token at ../src/test_parser.nit:59,43--47 text='}.\n"'
-Read token at ../src/test_parser.nit:59,48 text=')'
-Read token at ../src/test_parser.nit:59,49--60,0 text='
-'
-Read token at ../src/test_parser.nit:60,3--6 text='exit'
-Read token at ../src/test_parser.nit:60,7 text='('
-Read token at ../src/test_parser.nit:60,8 text='0'
-Read token at ../src/test_parser.nit:60,9 text=')'
-Read token at ../src/test_parser.nit:60,10--61,0 text='
-'
-Read token at ../src/test_parser.nit:61,2--4 text='end'
-Read token at ../src/test_parser.nit:61,5--62,0 text='
-'
-Read token at ../src/test_parser.nit:62,2--5 text='args'
-Read token at ../src/test_parser.nit:62,6 text='.'
-Read token at ../src/test_parser.nit:62,7--11 text='shift'
-Read token at ../src/test_parser.nit:62,12--63,0 text='
-'
-Read token at ../src/test_parser.nit:63,1--3 text='end'
-Read token at ../src/test_parser.nit:63,4--64,0 text='
-'
-Read token at ../src/test_parser.nit:64,1--65,0 text='
-'
-Read token at ../src/test_parser.nit:65,1--2 text='if'
-Read token at ../src/test_parser.nit:65,4 text='('
-Read token at ../src/test_parser.nit:65,5--8 text='args'
-Read token at ../src/test_parser.nit:65,9 text='.'
-Read token at ../src/test_parser.nit:65,10--17 text='is_empty'
-Read token at ../src/test_parser.nit:65,19--21 text='and'
-Read token at ../src/test_parser.nit:65,23--25 text='not'
-Read token at ../src/test_parser.nit:65,27--37 text='interactive'
-Read token at ../src/test_parser.nit:65,38 text=')'
-Read token at ../src/test_parser.nit:65,40--41 text='or'
-Read token at ../src/test_parser.nit:65,43--51 text='need_help'
-Read token at ../src/test_parser.nit:65,53--56 text='then'
-Read token at ../src/test_parser.nit:65,57--66,0 text='
-'
-Read token at ../src/test_parser.nit:66,2--6 text='print'
-Read token at ../src/test_parser.nit:66,7 text='('
-Read token at ../src/test_parser.nit:66,8--15 text='"usage:"'
-Read token at ../src/test_parser.nit:66,16 text=')'
-Read token at ../src/test_parser.nit:66,17--67,0 text='
-'
-Read token at ../src/test_parser.nit:67,2--6 text='print'
-Read token at ../src/test_parser.nit:67,7 text='('
-Read token at ../src/test_parser.nit:67,8--53 text='" test_parser [options]... <filename.nit>..."'
-Read token at ../src/test_parser.nit:67,54 text=')'
-Read token at ../src/test_parser.nit:67,55--68,0 text='
-'
-Read token at ../src/test_parser.nit:68,2--6 text='print'
-Read token at ../src/test_parser.nit:68,7 text='('
-Read token at ../src/test_parser.nit:68,8--48 text='" test_parser -e [options]... <text>..."'
-Read token at ../src/test_parser.nit:68,49 text=')'
-Read token at ../src/test_parser.nit:68,50--69,0 text='
-'
-Read token at ../src/test_parser.nit:69,2--6 text='print'
-Read token at ../src/test_parser.nit:69,7 text='('
-Read token at ../src/test_parser.nit:69,8--38 text='" test_parser -i [options]..."'
-Read token at ../src/test_parser.nit:69,39 text=')'
-Read token at ../src/test_parser.nit:69,40--70,0 text='
-'
-Read token at ../src/test_parser.nit:70,2--6 text='print'
-Read token at ../src/test_parser.nit:70,7 text='('
-Read token at ../src/test_parser.nit:70,8--17 text='"options:"'
-Read token at ../src/test_parser.nit:70,18 text=')'
-Read token at ../src/test_parser.nit:70,19--71,0 text='
+Read token at ../src/test_parser.nit:43,5--13 text='need_help'
+Read token at ../src/test_parser.nit:43,15 text='='
+Read token at ../src/test_parser.nit:43,17--21 text='false'
+Read token at ../src/test_parser.nit:43,22--44,0 text='
+'
+Read token at ../src/test_parser.nit:44,1--3 text='var'
+Read token at ../src/test_parser.nit:44,5--11 text='no_file'
+Read token at ../src/test_parser.nit:44,13 text='='
+Read token at ../src/test_parser.nit:44,15--19 text='false'
+Read token at ../src/test_parser.nit:44,20--45,0 text='
+'
+Read token at ../src/test_parser.nit:45,1--3 text='var'
+Read token at ../src/test_parser.nit:45,5--15 text='interactive'
+Read token at ../src/test_parser.nit:45,17 text='='
+Read token at ../src/test_parser.nit:45,19--23 text='false'
+Read token at ../src/test_parser.nit:45,24--46,0 text='
+'
+Read token at ../src/test_parser.nit:46,1--3 text='var'
+Read token at ../src/test_parser.nit:46,5--7 text='xml'
+Read token at ../src/test_parser.nit:46,9 text='='
+Read token at ../src/test_parser.nit:46,11--15 text='false'
+Read token at ../src/test_parser.nit:46,16--47,0 text='
+'
+Read token at ../src/test_parser.nit:47,1--48,0 text='
+'
+Read token at ../src/test_parser.nit:48,1--5 text='while'
+Read token at ../src/test_parser.nit:48,7--9 text='not'
+Read token at ../src/test_parser.nit:48,11--14 text='args'
+Read token at ../src/test_parser.nit:48,15 text='.'
+Read token at ../src/test_parser.nit:48,16--23 text='is_empty'
+Read token at ../src/test_parser.nit:48,25--27 text='and'
+Read token at ../src/test_parser.nit:48,29--32 text='args'
+Read token at ../src/test_parser.nit:48,33 text='.'
+Read token at ../src/test_parser.nit:48,34--38 text='first'
+Read token at ../src/test_parser.nit:48,39 text='.'
+Read token at ../src/test_parser.nit:48,40--44 text='chars'
+Read token at ../src/test_parser.nit:48,45 text='.'
+Read token at ../src/test_parser.nit:48,46--50 text='first'
+Read token at ../src/test_parser.nit:48,52--53 text='=='
+Read token at ../src/test_parser.nit:48,55--57 text=''-''
+Read token at ../src/test_parser.nit:48,59--60 text='do'
+Read token at ../src/test_parser.nit:48,61--49,0 text='
+'
+Read token at ../src/test_parser.nit:49,2--3 text='if'
+Read token at ../src/test_parser.nit:49,5--8 text='args'
+Read token at ../src/test_parser.nit:49,9 text='.'
+Read token at ../src/test_parser.nit:49,10--14 text='first'
+Read token at ../src/test_parser.nit:49,16--17 text='=='
+Read token at ../src/test_parser.nit:49,19--22 text='"-n"'
+Read token at ../src/test_parser.nit:49,24--27 text='then'
+Read token at ../src/test_parser.nit:49,28--50,0 text='
+'
+Read token at ../src/test_parser.nit:50,3--10 text='no_print'
+Read token at ../src/test_parser.nit:50,12 text='='
+Read token at ../src/test_parser.nit:50,14--17 text='true'
+Read token at ../src/test_parser.nit:50,18--51,0 text='
+'
+Read token at ../src/test_parser.nit:51,2--5 text='else'
+Read token at ../src/test_parser.nit:51,7--8 text='if'
+Read token at ../src/test_parser.nit:51,10--13 text='args'
+Read token at ../src/test_parser.nit:51,14 text='.'
+Read token at ../src/test_parser.nit:51,15--19 text='first'
+Read token at ../src/test_parser.nit:51,21--22 text='=='
+Read token at ../src/test_parser.nit:51,24--27 text='"-l"'
+Read token at ../src/test_parser.nit:51,29--32 text='then'
+Read token at ../src/test_parser.nit:51,33--52,0 text='
+'
+Read token at ../src/test_parser.nit:52,3--12 text='only_lexer'
+Read token at ../src/test_parser.nit:52,14 text='='
+Read token at ../src/test_parser.nit:52,16--19 text='true'
+Read token at ../src/test_parser.nit:52,20--53,0 text='
+'
+Read token at ../src/test_parser.nit:53,2--5 text='else'
+Read token at ../src/test_parser.nit:53,7--8 text='if'
+Read token at ../src/test_parser.nit:53,10--13 text='args'
+Read token at ../src/test_parser.nit:53,14 text='.'
+Read token at ../src/test_parser.nit:53,15--19 text='first'
+Read token at ../src/test_parser.nit:53,21--22 text='=='
+Read token at ../src/test_parser.nit:53,24--27 text='"-p"'
+Read token at ../src/test_parser.nit:53,29--32 text='then'
+Read token at ../src/test_parser.nit:53,33--54,0 text='
+'
+Read token at ../src/test_parser.nit:54,3--12 text='only_lexer'
+Read token at ../src/test_parser.nit:54,14 text='='
+Read token at ../src/test_parser.nit:54,16--20 text='false'
+Read token at ../src/test_parser.nit:54,21--55,0 text='
+'
+Read token at ../src/test_parser.nit:55,2--5 text='else'
+Read token at ../src/test_parser.nit:55,7--8 text='if'
+Read token at ../src/test_parser.nit:55,10--13 text='args'
+Read token at ../src/test_parser.nit:55,14 text='.'
+Read token at ../src/test_parser.nit:55,15--19 text='first'
+Read token at ../src/test_parser.nit:55,21--22 text='=='
+Read token at ../src/test_parser.nit:55,24--27 text='"-x"'
+Read token at ../src/test_parser.nit:55,29--32 text='then'
+Read token at ../src/test_parser.nit:55,33--56,0 text='
+'
+Read token at ../src/test_parser.nit:56,3--5 text='xml'
+Read token at ../src/test_parser.nit:56,7 text='='
+Read token at ../src/test_parser.nit:56,9--12 text='true'
+Read token at ../src/test_parser.nit:56,13--57,0 text='
+'
+Read token at ../src/test_parser.nit:57,2--5 text='else'
+Read token at ../src/test_parser.nit:57,7--8 text='if'
+Read token at ../src/test_parser.nit:57,10--13 text='args'
+Read token at ../src/test_parser.nit:57,14 text='.'
+Read token at ../src/test_parser.nit:57,15--19 text='first'
+Read token at ../src/test_parser.nit:57,21--22 text='=='
+Read token at ../src/test_parser.nit:57,24--27 text='"-e"'
+Read token at ../src/test_parser.nit:57,29--32 text='then'
+Read token at ../src/test_parser.nit:57,33--58,0 text='
+'
+Read token at ../src/test_parser.nit:58,3--9 text='no_file'
+Read token at ../src/test_parser.nit:58,11 text='='
+Read token at ../src/test_parser.nit:58,13--16 text='true'
+Read token at ../src/test_parser.nit:58,17--59,0 text='
+'
+Read token at ../src/test_parser.nit:59,2--5 text='else'
+Read token at ../src/test_parser.nit:59,7--8 text='if'
+Read token at ../src/test_parser.nit:59,10--13 text='args'
+Read token at ../src/test_parser.nit:59,14 text='.'
+Read token at ../src/test_parser.nit:59,15--19 text='first'
+Read token at ../src/test_parser.nit:59,21--22 text='=='
+Read token at ../src/test_parser.nit:59,24--27 text='"-i"'
+Read token at ../src/test_parser.nit:59,29--32 text='then'
+Read token at ../src/test_parser.nit:59,33--60,0 text='
+'
+Read token at ../src/test_parser.nit:60,3--13 text='interactive'
+Read token at ../src/test_parser.nit:60,15 text='='
+Read token at ../src/test_parser.nit:60,17--20 text='true'
+Read token at ../src/test_parser.nit:60,21--61,0 text='
+'
+Read token at ../src/test_parser.nit:61,2--5 text='else'
+Read token at ../src/test_parser.nit:61,7--8 text='if'
+Read token at ../src/test_parser.nit:61,10--13 text='args'
+Read token at ../src/test_parser.nit:61,14 text='.'
+Read token at ../src/test_parser.nit:61,15--19 text='first'
+Read token at ../src/test_parser.nit:61,21--22 text='=='
+Read token at ../src/test_parser.nit:61,24--27 text='"-h"'
+Read token at ../src/test_parser.nit:61,29--30 text='or'
+Read token at ../src/test_parser.nit:61,32--35 text='args'
+Read token at ../src/test_parser.nit:61,36 text='.'
+Read token at ../src/test_parser.nit:61,37--41 text='first'
+Read token at ../src/test_parser.nit:61,43--44 text='=='
+Read token at ../src/test_parser.nit:61,46--49 text='"-?"'
+Read token at ../src/test_parser.nit:61,51--54 text='then'
+Read token at ../src/test_parser.nit:61,55--62,0 text='
+'
+Read token at ../src/test_parser.nit:62,3--11 text='need_help'
+Read token at ../src/test_parser.nit:62,13 text='='
+Read token at ../src/test_parser.nit:62,15--18 text='true'
+Read token at ../src/test_parser.nit:62,19--63,0 text='
+'
+Read token at ../src/test_parser.nit:63,2--5 text='else'
+Read token at ../src/test_parser.nit:63,6--64,0 text='
+'
+Read token at ../src/test_parser.nit:64,3--8 text='stderr'
+Read token at ../src/test_parser.nit:64,9 text='.'
+Read token at ../src/test_parser.nit:64,10--14 text='write'
+Read token at ../src/test_parser.nit:64,15 text='('
+Read token at ../src/test_parser.nit:64,16--32 text='"Unknown option {'
+Read token at ../src/test_parser.nit:64,33--36 text='args'
+Read token at ../src/test_parser.nit:64,37 text='.'
+Read token at ../src/test_parser.nit:64,38--42 text='first'
+Read token at ../src/test_parser.nit:64,43--47 text='}.\n"'
+Read token at ../src/test_parser.nit:64,48 text=')'
+Read token at ../src/test_parser.nit:64,49--65,0 text='
+'
+Read token at ../src/test_parser.nit:65,3--6 text='exit'
+Read token at ../src/test_parser.nit:65,7 text='('
+Read token at ../src/test_parser.nit:65,8 text='0'
+Read token at ../src/test_parser.nit:65,9 text=')'
+Read token at ../src/test_parser.nit:65,10--66,0 text='
+'
+Read token at ../src/test_parser.nit:66,2--4 text='end'
+Read token at ../src/test_parser.nit:66,5--67,0 text='
+'
+Read token at ../src/test_parser.nit:67,2--5 text='args'
+Read token at ../src/test_parser.nit:67,6 text='.'
+Read token at ../src/test_parser.nit:67,7--11 text='shift'
+Read token at ../src/test_parser.nit:67,12--68,0 text='
+'
+Read token at ../src/test_parser.nit:68,1--3 text='end'
+Read token at ../src/test_parser.nit:68,4--69,0 text='
+'
+Read token at ../src/test_parser.nit:69,1--70,0 text='
+'
+Read token at ../src/test_parser.nit:70,1--2 text='if'
+Read token at ../src/test_parser.nit:70,4 text='('
+Read token at ../src/test_parser.nit:70,5--8 text='args'
+Read token at ../src/test_parser.nit:70,9 text='.'
+Read token at ../src/test_parser.nit:70,10--17 text='is_empty'
+Read token at ../src/test_parser.nit:70,19--21 text='and'
+Read token at ../src/test_parser.nit:70,23--25 text='not'
+Read token at ../src/test_parser.nit:70,27--37 text='interactive'
+Read token at ../src/test_parser.nit:70,38 text=')'
+Read token at ../src/test_parser.nit:70,40--41 text='or'
+Read token at ../src/test_parser.nit:70,43--51 text='need_help'
+Read token at ../src/test_parser.nit:70,53--56 text='then'
+Read token at ../src/test_parser.nit:70,57--71,0 text='
'
Read token at ../src/test_parser.nit:71,2--6 text='print'
Read token at ../src/test_parser.nit:71,7 text='('
-Read token at ../src/test_parser.nit:71,8--35 text='" -n do not print anything"'
-Read token at ../src/test_parser.nit:71,36 text=')'
-Read token at ../src/test_parser.nit:71,37--72,0 text='
+Read token at ../src/test_parser.nit:71,8--15 text='"usage:"'
+Read token at ../src/test_parser.nit:71,16 text=')'
+Read token at ../src/test_parser.nit:71,17--72,0 text='
'
Read token at ../src/test_parser.nit:72,2--6 text='print'
Read token at ../src/test_parser.nit:72,7 text='('
-Read token at ../src/test_parser.nit:72,8--24 text='" -l only lexer"'
-Read token at ../src/test_parser.nit:72,25 text=')'
-Read token at ../src/test_parser.nit:72,26--73,0 text='
+Read token at ../src/test_parser.nit:72,8--53 text='" test_parser [options]... <filename.nit>..."'
+Read token at ../src/test_parser.nit:72,54 text=')'
+Read token at ../src/test_parser.nit:72,55--73,0 text='
'
Read token at ../src/test_parser.nit:73,2--6 text='print'
Read token at ../src/test_parser.nit:73,7 text='('
-Read token at ../src/test_parser.nit:73,8--40 text='" -p lexer and parser (default)"'
-Read token at ../src/test_parser.nit:73,41 text=')'
-Read token at ../src/test_parser.nit:73,42--74,0 text='
+Read token at ../src/test_parser.nit:73,8--48 text='" test_parser -e [options]... <text>..."'
+Read token at ../src/test_parser.nit:73,49 text=')'
+Read token at ../src/test_parser.nit:73,50--74,0 text='
'
Read token at ../src/test_parser.nit:74,2--6 text='print'
Read token at ../src/test_parser.nit:74,7 text='('
-Read token at ../src/test_parser.nit:74,8--67 text='" -e instead on files, each argument is a content to parse"'
-Read token at ../src/test_parser.nit:74,68 text=')'
-Read token at ../src/test_parser.nit:74,69--75,0 text='
+Read token at ../src/test_parser.nit:74,8--38 text='" test_parser -i [options]..."'
+Read token at ../src/test_parser.nit:74,39 text=')'
+Read token at ../src/test_parser.nit:74,40--75,0 text='
'
Read token at ../src/test_parser.nit:75,2--6 text='print'
Read token at ../src/test_parser.nit:75,7 text='('
-Read token at ../src/test_parser.nit:75,8--50 text='" -i tree to parse are read interactively"'
-Read token at ../src/test_parser.nit:75,51 text=')'
-Read token at ../src/test_parser.nit:75,52--76,0 text='
+Read token at ../src/test_parser.nit:75,8--17 text='"options:"'
+Read token at ../src/test_parser.nit:75,18 text=')'
+Read token at ../src/test_parser.nit:75,19--76,0 text='
'
Read token at ../src/test_parser.nit:76,2--6 text='print'
Read token at ../src/test_parser.nit:76,7 text='('
-Read token at ../src/test_parser.nit:76,8--29 text='" -h print this help"'
-Read token at ../src/test_parser.nit:76,30 text=')'
-Read token at ../src/test_parser.nit:76,31--77,0 text='
-'
-Read token at ../src/test_parser.nit:77,1--4 text='else'
-Read token at ../src/test_parser.nit:77,6--7 text='if'
-Read token at ../src/test_parser.nit:77,9--19 text='interactive'
-Read token at ../src/test_parser.nit:77,21--24 text='then'
-Read token at ../src/test_parser.nit:77,25--78,0 text='
-'
-Read token at ../src/test_parser.nit:78,2--3 text='if'
-Read token at ../src/test_parser.nit:78,5--14 text='only_lexer'
-Read token at ../src/test_parser.nit:78,16--19 text='then'
-Read token at ../src/test_parser.nit:78,20--79,0 text='
-'
-Read token at ../src/test_parser.nit:79,3--7 text='print'
-Read token at ../src/test_parser.nit:79,9--44 text='"Error: -l and -i are incompatibles"'
-Read token at ../src/test_parser.nit:79,45--80,0 text='
-'
-Read token at ../src/test_parser.nit:80,3--6 text='exit'
-Read token at ../src/test_parser.nit:80,8 text='1'
-Read token at ../src/test_parser.nit:80,9--81,0 text='
-'
-Read token at ../src/test_parser.nit:81,2--5 text='else'
-Read token at ../src/test_parser.nit:81,7--8 text='if'
-Read token at ../src/test_parser.nit:81,10--16 text='no_file'
-Read token at ../src/test_parser.nit:81,18--21 text='then'
-Read token at ../src/test_parser.nit:81,22--82,0 text='
-'
-Read token at ../src/test_parser.nit:82,3--7 text='print'
-Read token at ../src/test_parser.nit:82,9--44 text='"Error: -e and -i are incompatibles"'
-Read token at ../src/test_parser.nit:82,45--83,0 text='
-'
-Read token at ../src/test_parser.nit:83,3--6 text='exit'
-Read token at ../src/test_parser.nit:83,8 text='1'
-Read token at ../src/test_parser.nit:83,9--84,0 text='
-'
-Read token at ../src/test_parser.nit:84,2--5 text='else'
-Read token at ../src/test_parser.nit:84,7--8 text='if'
-Read token at ../src/test_parser.nit:84,10--12 text='not'
-Read token at ../src/test_parser.nit:84,14--17 text='args'
-Read token at ../src/test_parser.nit:84,18 text='.'
-Read token at ../src/test_parser.nit:84,19--26 text='is_empty'
-Read token at ../src/test_parser.nit:84,28--31 text='then'
-Read token at ../src/test_parser.nit:84,32--85,0 text='
+Read token at ../src/test_parser.nit:76,8--35 text='" -n do not print anything"'
+Read token at ../src/test_parser.nit:76,36 text=')'
+Read token at ../src/test_parser.nit:76,37--77,0 text='
+'
+Read token at ../src/test_parser.nit:77,2--6 text='print'
+Read token at ../src/test_parser.nit:77,7 text='('
+Read token at ../src/test_parser.nit:77,8--24 text='" -l only lexer"'
+Read token at ../src/test_parser.nit:77,25 text=')'
+Read token at ../src/test_parser.nit:77,26--78,0 text='
+'
+Read token at ../src/test_parser.nit:78,2--6 text='print'
+Read token at ../src/test_parser.nit:78,7 text='('
+Read token at ../src/test_parser.nit:78,8--40 text='" -p lexer and parser (default)"'
+Read token at ../src/test_parser.nit:78,41 text=')'
+Read token at ../src/test_parser.nit:78,42--79,0 text='
+'
+Read token at ../src/test_parser.nit:79,2--6 text='print'
+Read token at ../src/test_parser.nit:79,7 text='('
+Read token at ../src/test_parser.nit:79,8--60 text='" -x instead of a ascii tree, output a XML document"'
+Read token at ../src/test_parser.nit:79,61 text=')'
+Read token at ../src/test_parser.nit:79,62--80,0 text='
+'
+Read token at ../src/test_parser.nit:80,2--6 text='print'
+Read token at ../src/test_parser.nit:80,7 text='('
+Read token at ../src/test_parser.nit:80,8--67 text='" -e instead on files, each argument is a content to parse"'
+Read token at ../src/test_parser.nit:80,68 text=')'
+Read token at ../src/test_parser.nit:80,69--81,0 text='
+'
+Read token at ../src/test_parser.nit:81,2--6 text='print'
+Read token at ../src/test_parser.nit:81,7 text='('
+Read token at ../src/test_parser.nit:81,8--50 text='" -i tree to parse are read interactively"'
+Read token at ../src/test_parser.nit:81,51 text=')'
+Read token at ../src/test_parser.nit:81,52--82,0 text='
+'
+Read token at ../src/test_parser.nit:82,2--6 text='print'
+Read token at ../src/test_parser.nit:82,7 text='('
+Read token at ../src/test_parser.nit:82,8--29 text='" -h print this help"'
+Read token at ../src/test_parser.nit:82,30 text=')'
+Read token at ../src/test_parser.nit:82,31--83,0 text='
+'
+Read token at ../src/test_parser.nit:83,1--4 text='else'
+Read token at ../src/test_parser.nit:83,6--7 text='if'
+Read token at ../src/test_parser.nit:83,9--19 text='interactive'
+Read token at ../src/test_parser.nit:83,21--24 text='then'
+Read token at ../src/test_parser.nit:83,25--84,0 text='
+'
+Read token at ../src/test_parser.nit:84,2--3 text='if'
+Read token at ../src/test_parser.nit:84,5--14 text='only_lexer'
+Read token at ../src/test_parser.nit:84,16--19 text='then'
+Read token at ../src/test_parser.nit:84,20--85,0 text='
'
Read token at ../src/test_parser.nit:85,3--7 text='print'
-Read token at ../src/test_parser.nit:85,9--43 text='"Error: -i works without arguments"'
+Read token at ../src/test_parser.nit:85,9--43 text='"Error: -l and -i are incompatible"'
Read token at ../src/test_parser.nit:85,44--86,0 text='
'
Read token at ../src/test_parser.nit:86,3--6 text='exit'
Read token at ../src/test_parser.nit:86,8 text='1'
Read token at ../src/test_parser.nit:86,9--87,0 text='
'
-Read token at ../src/test_parser.nit:87,2--4 text='end'
-Read token at ../src/test_parser.nit:87,5--88,0 text='
-'
-Read token at ../src/test_parser.nit:88,1--89,0 text='
-'
-Read token at ../src/test_parser.nit:89,2--4 text='var'
-Read token at ../src/test_parser.nit:89,6--7 text='tc'
-Read token at ../src/test_parser.nit:89,9 text='='
-Read token at ../src/test_parser.nit:89,11--13 text='new'
-Read token at ../src/test_parser.nit:89,15--25 text='ToolContext'
-Read token at ../src/test_parser.nit:89,26--90,0 text='
-'
-Read token at ../src/test_parser.nit:90,1--91,0 text='
-'
-Read token at ../src/test_parser.nit:91,2--5 text='loop'
-Read token at ../src/test_parser.nit:91,6--92,0 text='
-'
-Read token at ../src/test_parser.nit:92,3--5 text='var'
-Read token at ../src/test_parser.nit:92,7 text='n'
-Read token at ../src/test_parser.nit:92,9 text='='
-Read token at ../src/test_parser.nit:92,11--12 text='tc'
-Read token at ../src/test_parser.nit:92,13 text='.'
-Read token at ../src/test_parser.nit:92,14--30 text='interactive_parse'
-Read token at ../src/test_parser.nit:92,31 text='('
-Read token at ../src/test_parser.nit:92,32--36 text='"-->"'
-Read token at ../src/test_parser.nit:92,37 text=')'
-Read token at ../src/test_parser.nit:92,38--93,0 text='
-'
-Read token at ../src/test_parser.nit:93,3--4 text='if'
-Read token at ../src/test_parser.nit:93,6 text='n'
-Read token at ../src/test_parser.nit:93,8--10 text='isa'
-Read token at ../src/test_parser.nit:93,12--18 text='TString'
-Read token at ../src/test_parser.nit:93,20--23 text='then'
-Read token at ../src/test_parser.nit:93,24--94,0 text='
-'
-Read token at ../src/test_parser.nit:94,4--6 text='var'
-Read token at ../src/test_parser.nit:94,8 text='s'
-Read token at ../src/test_parser.nit:94,10 text='='
-Read token at ../src/test_parser.nit:94,12 text='n'
-Read token at ../src/test_parser.nit:94,13 text='.'
-Read token at ../src/test_parser.nit:94,14--17 text='text'
-Read token at ../src/test_parser.nit:94,18--95,0 text='
-'
-Read token at ../src/test_parser.nit:95,4--5 text='if'
-Read token at ../src/test_parser.nit:95,7 text='s'
-Read token at ../src/test_parser.nit:95,9--10 text='=='
-Read token at ../src/test_parser.nit:95,12--15 text='":q"'
-Read token at ../src/test_parser.nit:95,17--20 text='then'
-Read token at ../src/test_parser.nit:95,21--96,0 text='
-'
-Read token at ../src/test_parser.nit:96,5--9 text='break'
-Read token at ../src/test_parser.nit:96,10--97,0 text='
-'
-Read token at ../src/test_parser.nit:97,4--7 text='else'
-Read token at ../src/test_parser.nit:97,8--98,0 text='
-'
-Read token at ../src/test_parser.nit:98,5--9 text='print'
-Read token at ../src/test_parser.nit:98,11--24 text='"`:q` to quit"'
-Read token at ../src/test_parser.nit:98,25--99,0 text='
-'
-Read token at ../src/test_parser.nit:99,4--6 text='end'
-Read token at ../src/test_parser.nit:99,7--100,0 text='
-'
-Read token at ../src/test_parser.nit:100,4--11 text='continue'
-Read token at ../src/test_parser.nit:100,12--101,0 text='
-'
-Read token at ../src/test_parser.nit:101,3--5 text='end'
-Read token at ../src/test_parser.nit:101,6--102,0 text='
-'
-Read token at ../src/test_parser.nit:102,1--103,0 text='
-'
-Read token at ../src/test_parser.nit:103,3--4 text='if'
-Read token at ../src/test_parser.nit:103,6 text='n'
-Read token at ../src/test_parser.nit:103,8--10 text='isa'
-Read token at ../src/test_parser.nit:103,12--17 text='AError'
-Read token at ../src/test_parser.nit:103,19--22 text='then'
-Read token at ../src/test_parser.nit:103,23--104,0 text='
-'
-Read token at ../src/test_parser.nit:104,4--8 text='print'
-Read token at ../src/test_parser.nit:104,10--11 text='"{'
-Read token at ../src/test_parser.nit:104,12 text='n'
-Read token at ../src/test_parser.nit:104,13 text='.'
-Read token at ../src/test_parser.nit:104,14--21 text='location'
-Read token at ../src/test_parser.nit:104,22 text='.'
-Read token at ../src/test_parser.nit:104,23--34 text='colored_line'
-Read token at ../src/test_parser.nit:104,35 text='('
-Read token at ../src/test_parser.nit:104,36--41 text='"0;31"'
-Read token at ../src/test_parser.nit:104,42 text=')'
-Read token at ../src/test_parser.nit:104,43--46 text='}: {'
-Read token at ../src/test_parser.nit:104,47 text='n'
-Read token at ../src/test_parser.nit:104,48 text='.'
-Read token at ../src/test_parser.nit:104,49--55 text='message'
-Read token at ../src/test_parser.nit:104,56--57 text='}"'
-Read token at ../src/test_parser.nit:104,58--105,0 text='
-'
-Read token at ../src/test_parser.nit:105,4--11 text='continue'
-Read token at ../src/test_parser.nit:105,12--106,0 text='
-'
-Read token at ../src/test_parser.nit:106,3--5 text='end'
-Read token at ../src/test_parser.nit:106,6--107,0 text='
-'
-Read token at ../src/test_parser.nit:107,1--108,0 text='
-'
-Read token at ../src/test_parser.nit:108,3--4 text='if'
-Read token at ../src/test_parser.nit:108,6--8 text='not'
-Read token at ../src/test_parser.nit:108,10--17 text='no_print'
-Read token at ../src/test_parser.nit:108,19--22 text='then'
-Read token at ../src/test_parser.nit:108,23--109,0 text='
-'
-Read token at ../src/test_parser.nit:109,4 text='('
-Read token at ../src/test_parser.nit:109,5--7 text='new'
-Read token at ../src/test_parser.nit:109,9--24 text='PrintTreeVisitor'
-Read token at ../src/test_parser.nit:109,25 text=')'
-Read token at ../src/test_parser.nit:109,26 text='.'
-Read token at ../src/test_parser.nit:109,27--37 text='enter_visit'
-Read token at ../src/test_parser.nit:109,38 text='('
-Read token at ../src/test_parser.nit:109,39 text='n'
-Read token at ../src/test_parser.nit:109,40 text=')'
-Read token at ../src/test_parser.nit:109,41--110,0 text='
-'
-Read token at ../src/test_parser.nit:110,3--5 text='end'
-Read token at ../src/test_parser.nit:110,6--111,0 text='
-'
-Read token at ../src/test_parser.nit:111,2--4 text='end'
-Read token at ../src/test_parser.nit:111,5--112,0 text='
-'
-Read token at ../src/test_parser.nit:112,1--4 text='else'
-Read token at ../src/test_parser.nit:112,5--113,0 text='
-'
-Read token at ../src/test_parser.nit:113,2--4 text='for'
-Read token at ../src/test_parser.nit:113,6 text='a'
-Read token at ../src/test_parser.nit:113,8--9 text='in'
-Read token at ../src/test_parser.nit:113,11--14 text='args'
-Read token at ../src/test_parser.nit:113,16--17 text='do'
-Read token at ../src/test_parser.nit:113,18--114,0 text='
-'
-Read token at ../src/test_parser.nit:114,3--5 text='var'
-Read token at ../src/test_parser.nit:114,7--12 text='source'
-Read token at ../src/test_parser.nit:114,13--115,0 text='
-'
-Read token at ../src/test_parser.nit:115,3--4 text='if'
-Read token at ../src/test_parser.nit:115,6--12 text='no_file'
-Read token at ../src/test_parser.nit:115,14--17 text='then'
-Read token at ../src/test_parser.nit:115,18--116,0 text='
-'
-Read token at ../src/test_parser.nit:116,4--9 text='source'
-Read token at ../src/test_parser.nit:116,11 text='='
-Read token at ../src/test_parser.nit:116,13--15 text='new'
-Read token at ../src/test_parser.nit:116,17--26 text='SourceFile'
-Read token at ../src/test_parser.nit:116,27 text='.'
-Read token at ../src/test_parser.nit:116,28--38 text='from_string'
-Read token at ../src/test_parser.nit:116,39 text='('
-Read token at ../src/test_parser.nit:116,40--41 text='""'
-Read token at ../src/test_parser.nit:116,42 text=','
-Read token at ../src/test_parser.nit:116,44 text='a'
-Read token at ../src/test_parser.nit:116,45 text=')'
-Read token at ../src/test_parser.nit:116,46--117,0 text='
-'
-Read token at ../src/test_parser.nit:117,3--6 text='else'
-Read token at ../src/test_parser.nit:117,7--118,0 text='
-'
-Read token at ../src/test_parser.nit:118,4--6 text='var'
-Read token at ../src/test_parser.nit:118,8 text='f'
-Read token at ../src/test_parser.nit:118,10 text='='
-Read token at ../src/test_parser.nit:118,12--14 text='new'
-Read token at ../src/test_parser.nit:118,16--25 text='FileReader'
-Read token at ../src/test_parser.nit:118,26 text='.'
-Read token at ../src/test_parser.nit:118,27--30 text='open'
-Read token at ../src/test_parser.nit:118,31 text='('
-Read token at ../src/test_parser.nit:118,32 text='a'
-Read token at ../src/test_parser.nit:118,33 text=')'
-Read token at ../src/test_parser.nit:118,34--119,0 text='
-'
-Read token at ../src/test_parser.nit:119,4--9 text='source'
-Read token at ../src/test_parser.nit:119,11 text='='
-Read token at ../src/test_parser.nit:119,13--15 text='new'
-Read token at ../src/test_parser.nit:119,17--26 text='SourceFile'
-Read token at ../src/test_parser.nit:119,27 text='('
-Read token at ../src/test_parser.nit:119,28 text='a'
-Read token at ../src/test_parser.nit:119,29 text=','
-Read token at ../src/test_parser.nit:119,31 text='f'
-Read token at ../src/test_parser.nit:119,32 text=')'
-Read token at ../src/test_parser.nit:119,33--120,0 text='
-'
-Read token at ../src/test_parser.nit:120,4 text='f'
-Read token at ../src/test_parser.nit:120,5 text='.'
-Read token at ../src/test_parser.nit:120,6--10 text='close'
-Read token at ../src/test_parser.nit:120,11--121,0 text='
-'
-Read token at ../src/test_parser.nit:121,3--5 text='end'
-Read token at ../src/test_parser.nit:121,6--122,0 text='
-'
-Read token at ../src/test_parser.nit:122,3--5 text='var'
-Read token at ../src/test_parser.nit:122,7--11 text='lexer'
-Read token at ../src/test_parser.nit:122,13 text='='
-Read token at ../src/test_parser.nit:122,15--17 text='new'
-Read token at ../src/test_parser.nit:122,19--23 text='Lexer'
-Read token at ../src/test_parser.nit:122,24 text='('
-Read token at ../src/test_parser.nit:122,25--30 text='source'
-Read token at ../src/test_parser.nit:122,31 text=')'
-Read token at ../src/test_parser.nit:122,32--123,0 text='
-'
-Read token at ../src/test_parser.nit:123,3--4 text='if'
-Read token at ../src/test_parser.nit:123,6--15 text='only_lexer'
-Read token at ../src/test_parser.nit:123,17--20 text='then'
-Read token at ../src/test_parser.nit:123,21--124,0 text='
+Read token at ../src/test_parser.nit:87,2--5 text='else'
+Read token at ../src/test_parser.nit:87,7--8 text='if'
+Read token at ../src/test_parser.nit:87,10--16 text='no_file'
+Read token at ../src/test_parser.nit:87,18--21 text='then'
+Read token at ../src/test_parser.nit:87,22--88,0 text='
+'
+Read token at ../src/test_parser.nit:88,3--7 text='print'
+Read token at ../src/test_parser.nit:88,9--43 text='"Error: -e and -i are incompatible"'
+Read token at ../src/test_parser.nit:88,44--89,0 text='
+'
+Read token at ../src/test_parser.nit:89,3--6 text='exit'
+Read token at ../src/test_parser.nit:89,8 text='1'
+Read token at ../src/test_parser.nit:89,9--90,0 text='
+'
+Read token at ../src/test_parser.nit:90,2--5 text='else'
+Read token at ../src/test_parser.nit:90,7--8 text='if'
+Read token at ../src/test_parser.nit:90,10--12 text='not'
+Read token at ../src/test_parser.nit:90,14--17 text='args'
+Read token at ../src/test_parser.nit:90,18 text='.'
+Read token at ../src/test_parser.nit:90,19--26 text='is_empty'
+Read token at ../src/test_parser.nit:90,28--31 text='then'
+Read token at ../src/test_parser.nit:90,32--91,0 text='
+'
+Read token at ../src/test_parser.nit:91,3--7 text='print'
+Read token at ../src/test_parser.nit:91,9--43 text='"Error: -i works without arguments"'
+Read token at ../src/test_parser.nit:91,44--92,0 text='
+'
+Read token at ../src/test_parser.nit:92,3--6 text='exit'
+Read token at ../src/test_parser.nit:92,8 text='1'
+Read token at ../src/test_parser.nit:92,9--93,0 text='
+'
+Read token at ../src/test_parser.nit:93,2--4 text='end'
+Read token at ../src/test_parser.nit:93,5--94,0 text='
+'
+Read token at ../src/test_parser.nit:94,1--95,0 text='
+'
+Read token at ../src/test_parser.nit:95,2--4 text='var'
+Read token at ../src/test_parser.nit:95,6--7 text='tc'
+Read token at ../src/test_parser.nit:95,9 text='='
+Read token at ../src/test_parser.nit:95,11--13 text='new'
+Read token at ../src/test_parser.nit:95,15--25 text='ToolContext'
+Read token at ../src/test_parser.nit:95,26--96,0 text='
+'
+Read token at ../src/test_parser.nit:96,1--97,0 text='
+'
+Read token at ../src/test_parser.nit:97,2--5 text='loop'
+Read token at ../src/test_parser.nit:97,6--98,0 text='
+'
+Read token at ../src/test_parser.nit:98,3--5 text='var'
+Read token at ../src/test_parser.nit:98,7 text='n'
+Read token at ../src/test_parser.nit:98,9 text='='
+Read token at ../src/test_parser.nit:98,11--12 text='tc'
+Read token at ../src/test_parser.nit:98,13 text='.'
+Read token at ../src/test_parser.nit:98,14--30 text='interactive_parse'
+Read token at ../src/test_parser.nit:98,31 text='('
+Read token at ../src/test_parser.nit:98,32--36 text='"-->"'
+Read token at ../src/test_parser.nit:98,37 text=')'
+Read token at ../src/test_parser.nit:98,38--99,0 text='
+'
+Read token at ../src/test_parser.nit:99,3--4 text='if'
+Read token at ../src/test_parser.nit:99,6 text='n'
+Read token at ../src/test_parser.nit:99,8--10 text='isa'
+Read token at ../src/test_parser.nit:99,12--18 text='TString'
+Read token at ../src/test_parser.nit:99,20--23 text='then'
+Read token at ../src/test_parser.nit:99,24--100,0 text='
+'
+Read token at ../src/test_parser.nit:100,4--6 text='var'
+Read token at ../src/test_parser.nit:100,8 text='s'
+Read token at ../src/test_parser.nit:100,10 text='='
+Read token at ../src/test_parser.nit:100,12 text='n'
+Read token at ../src/test_parser.nit:100,13 text='.'
+Read token at ../src/test_parser.nit:100,14--17 text='text'
+Read token at ../src/test_parser.nit:100,18--101,0 text='
+'
+Read token at ../src/test_parser.nit:101,4--5 text='if'
+Read token at ../src/test_parser.nit:101,7 text='s'
+Read token at ../src/test_parser.nit:101,9--10 text='=='
+Read token at ../src/test_parser.nit:101,12--15 text='":q"'
+Read token at ../src/test_parser.nit:101,17--20 text='then'
+Read token at ../src/test_parser.nit:101,21--102,0 text='
+'
+Read token at ../src/test_parser.nit:102,5--9 text='break'
+Read token at ../src/test_parser.nit:102,10--103,0 text='
+'
+Read token at ../src/test_parser.nit:103,4--7 text='else'
+Read token at ../src/test_parser.nit:103,8--104,0 text='
+'
+Read token at ../src/test_parser.nit:104,5--9 text='print'
+Read token at ../src/test_parser.nit:104,11--24 text='"`:q` to quit"'
+Read token at ../src/test_parser.nit:104,25--105,0 text='
+'
+Read token at ../src/test_parser.nit:105,4--6 text='end'
+Read token at ../src/test_parser.nit:105,7--106,0 text='
+'
+Read token at ../src/test_parser.nit:106,4--11 text='continue'
+Read token at ../src/test_parser.nit:106,12--107,0 text='
+'
+Read token at ../src/test_parser.nit:107,3--5 text='end'
+Read token at ../src/test_parser.nit:107,6--108,0 text='
+'
+Read token at ../src/test_parser.nit:108,1--109,0 text='
+'
+Read token at ../src/test_parser.nit:109,3--4 text='if'
+Read token at ../src/test_parser.nit:109,6 text='n'
+Read token at ../src/test_parser.nit:109,8--10 text='isa'
+Read token at ../src/test_parser.nit:109,12--17 text='AError'
+Read token at ../src/test_parser.nit:109,19--22 text='then'
+Read token at ../src/test_parser.nit:109,23--110,0 text='
+'
+Read token at ../src/test_parser.nit:110,4--8 text='print'
+Read token at ../src/test_parser.nit:110,10--11 text='"{'
+Read token at ../src/test_parser.nit:110,12 text='n'
+Read token at ../src/test_parser.nit:110,13 text='.'
+Read token at ../src/test_parser.nit:110,14--21 text='location'
+Read token at ../src/test_parser.nit:110,22 text='.'
+Read token at ../src/test_parser.nit:110,23--34 text='colored_line'
+Read token at ../src/test_parser.nit:110,35 text='('
+Read token at ../src/test_parser.nit:110,36--41 text='"0;31"'
+Read token at ../src/test_parser.nit:110,42 text=')'
+Read token at ../src/test_parser.nit:110,43--46 text='}: {'
+Read token at ../src/test_parser.nit:110,47 text='n'
+Read token at ../src/test_parser.nit:110,48 text='.'
+Read token at ../src/test_parser.nit:110,49--55 text='message'
+Read token at ../src/test_parser.nit:110,56--57 text='}"'
+Read token at ../src/test_parser.nit:110,58--111,0 text='
+'
+Read token at ../src/test_parser.nit:111,4--11 text='continue'
+Read token at ../src/test_parser.nit:111,12--112,0 text='
+'
+Read token at ../src/test_parser.nit:112,3--5 text='end'
+Read token at ../src/test_parser.nit:112,6--113,0 text='
+'
+Read token at ../src/test_parser.nit:113,1--114,0 text='
+'
+Read token at ../src/test_parser.nit:114,3--4 text='if'
+Read token at ../src/test_parser.nit:114,6--8 text='not'
+Read token at ../src/test_parser.nit:114,10--17 text='no_print'
+Read token at ../src/test_parser.nit:114,19--22 text='then'
+Read token at ../src/test_parser.nit:114,23--115,0 text='
+'
+Read token at ../src/test_parser.nit:115,4 text='('
+Read token at ../src/test_parser.nit:115,5--7 text='new'
+Read token at ../src/test_parser.nit:115,9--24 text='PrintTreeVisitor'
+Read token at ../src/test_parser.nit:115,25 text=')'
+Read token at ../src/test_parser.nit:115,26 text='.'
+Read token at ../src/test_parser.nit:115,27--37 text='enter_visit'
+Read token at ../src/test_parser.nit:115,38 text='('
+Read token at ../src/test_parser.nit:115,39 text='n'
+Read token at ../src/test_parser.nit:115,40 text=')'
+Read token at ../src/test_parser.nit:115,41--116,0 text='
+'
+Read token at ../src/test_parser.nit:116,3--5 text='end'
+Read token at ../src/test_parser.nit:116,6--117,0 text='
+'
+Read token at ../src/test_parser.nit:117,2--4 text='end'
+Read token at ../src/test_parser.nit:117,5--118,0 text='
+'
+Read token at ../src/test_parser.nit:118,1--4 text='else'
+Read token at ../src/test_parser.nit:118,5--119,0 text='
+'
+Read token at ../src/test_parser.nit:119,2--4 text='for'
+Read token at ../src/test_parser.nit:119,6 text='a'
+Read token at ../src/test_parser.nit:119,8--9 text='in'
+Read token at ../src/test_parser.nit:119,11--14 text='args'
+Read token at ../src/test_parser.nit:119,16--17 text='do'
+Read token at ../src/test_parser.nit:119,18--120,0 text='
+'
+Read token at ../src/test_parser.nit:120,3--5 text='var'
+Read token at ../src/test_parser.nit:120,7--12 text='source'
+Read token at ../src/test_parser.nit:120,13--121,0 text='
+'
+Read token at ../src/test_parser.nit:121,3--4 text='if'
+Read token at ../src/test_parser.nit:121,6--12 text='no_file'
+Read token at ../src/test_parser.nit:121,14--17 text='then'
+Read token at ../src/test_parser.nit:121,18--122,0 text='
+'
+Read token at ../src/test_parser.nit:122,4--9 text='source'
+Read token at ../src/test_parser.nit:122,11 text='='
+Read token at ../src/test_parser.nit:122,13--15 text='new'
+Read token at ../src/test_parser.nit:122,17--26 text='SourceFile'
+Read token at ../src/test_parser.nit:122,27 text='.'
+Read token at ../src/test_parser.nit:122,28--38 text='from_string'
+Read token at ../src/test_parser.nit:122,39 text='('
+Read token at ../src/test_parser.nit:122,40--41 text='""'
+Read token at ../src/test_parser.nit:122,42 text=','
+Read token at ../src/test_parser.nit:122,44 text='a'
+Read token at ../src/test_parser.nit:122,45 text=')'
+Read token at ../src/test_parser.nit:122,46--123,0 text='
+'
+Read token at ../src/test_parser.nit:123,3--6 text='else'
+Read token at ../src/test_parser.nit:123,7--124,0 text='
'
Read token at ../src/test_parser.nit:124,4--6 text='var'
-Read token at ../src/test_parser.nit:124,8--12 text='token'
-Read token at ../src/test_parser.nit:124,14 text='='
-Read token at ../src/test_parser.nit:124,16--20 text='lexer'
-Read token at ../src/test_parser.nit:124,21 text='.'
-Read token at ../src/test_parser.nit:124,22--25 text='next'
-Read token at ../src/test_parser.nit:124,26--125,0 text='
-'
-Read token at ../src/test_parser.nit:125,4--8 text='while'
-Read token at ../src/test_parser.nit:125,10--12 text='not'
-Read token at ../src/test_parser.nit:125,14--18 text='token'
-Read token at ../src/test_parser.nit:125,20--22 text='isa'
-Read token at ../src/test_parser.nit:125,24--26 text='EOF'
-Read token at ../src/test_parser.nit:125,28--29 text='do'
-Read token at ../src/test_parser.nit:125,30--126,0 text='
-'
-Read token at ../src/test_parser.nit:126,5--6 text='if'
-Read token at ../src/test_parser.nit:126,8--10 text='not'
-Read token at ../src/test_parser.nit:126,12--19 text='no_print'
-Read token at ../src/test_parser.nit:126,21--24 text='then'
-Read token at ../src/test_parser.nit:126,25--127,0 text='
-'
-Read token at ../src/test_parser.nit:127,6--10 text='print'
-Read token at ../src/test_parser.nit:127,11 text='('
-Read token at ../src/test_parser.nit:127,12--27 text='"Read token at {'
-Read token at ../src/test_parser.nit:127,28--32 text='token'
-Read token at ../src/test_parser.nit:127,33 text='.'
-Read token at ../src/test_parser.nit:127,34--41 text='location'
-Read token at ../src/test_parser.nit:127,42--50 text='} text='{'
-Read token at ../src/test_parser.nit:127,51--55 text='token'
-Read token at ../src/test_parser.nit:127,56 text='.'
-Read token at ../src/test_parser.nit:127,57--60 text='text'
-Read token at ../src/test_parser.nit:127,61--63 text='}'"'
-Read token at ../src/test_parser.nit:127,64 text=')'
-Read token at ../src/test_parser.nit:127,65--128,0 text='
-'
-Read token at ../src/test_parser.nit:128,5--7 text='end'
-Read token at ../src/test_parser.nit:128,8--129,0 text='
-'
-Read token at ../src/test_parser.nit:129,5--9 text='token'
-Read token at ../src/test_parser.nit:129,11 text='='
-Read token at ../src/test_parser.nit:129,13--17 text='lexer'
-Read token at ../src/test_parser.nit:129,18 text='.'
-Read token at ../src/test_parser.nit:129,19--22 text='next'
-Read token at ../src/test_parser.nit:129,23--130,0 text='
-'
-Read token at ../src/test_parser.nit:130,4--6 text='end'
-Read token at ../src/test_parser.nit:130,7--131,0 text='
-'
-Read token at ../src/test_parser.nit:131,3--6 text='else'
-Read token at ../src/test_parser.nit:131,7--132,0 text='
-'
-Read token at ../src/test_parser.nit:132,4--6 text='var'
-Read token at ../src/test_parser.nit:132,8--13 text='parser'
-Read token at ../src/test_parser.nit:132,15 text='='
-Read token at ../src/test_parser.nit:132,17--19 text='new'
-Read token at ../src/test_parser.nit:132,21--26 text='Parser'
-Read token at ../src/test_parser.nit:132,27 text='('
-Read token at ../src/test_parser.nit:132,28--32 text='lexer'
-Read token at ../src/test_parser.nit:132,33 text=')'
-Read token at ../src/test_parser.nit:132,34--133,0 text='
-'
-Read token at ../src/test_parser.nit:133,4--6 text='var'
-Read token at ../src/test_parser.nit:133,8--11 text='tree'
-Read token at ../src/test_parser.nit:133,13 text='='
-Read token at ../src/test_parser.nit:133,15--20 text='parser'
-Read token at ../src/test_parser.nit:133,21 text='.'
-Read token at ../src/test_parser.nit:133,22--26 text='parse'
-Read token at ../src/test_parser.nit:133,27--134,0 text='
-'
-Read token at ../src/test_parser.nit:134,1--135,0 text='
-'
-Read token at ../src/test_parser.nit:135,4--6 text='var'
-Read token at ../src/test_parser.nit:135,8--12 text='error'
-Read token at ../src/test_parser.nit:135,14 text='='
-Read token at ../src/test_parser.nit:135,16--19 text='tree'
-Read token at ../src/test_parser.nit:135,20 text='.'
-Read token at ../src/test_parser.nit:135,21--25 text='n_eof'
-Read token at ../src/test_parser.nit:135,26--136,0 text='
-'
-Read token at ../src/test_parser.nit:136,4--5 text='if'
-Read token at ../src/test_parser.nit:136,7--11 text='error'
-Read token at ../src/test_parser.nit:136,13--15 text='isa'
-Read token at ../src/test_parser.nit:136,17--22 text='AError'
-Read token at ../src/test_parser.nit:136,24--27 text='then'
-Read token at ../src/test_parser.nit:136,28--137,0 text='
-'
-Read token at ../src/test_parser.nit:137,5--9 text='print'
-Read token at ../src/test_parser.nit:137,10 text='('
-Read token at ../src/test_parser.nit:137,11--21 text='"Error at {'
-Read token at ../src/test_parser.nit:137,22--26 text='error'
-Read token at ../src/test_parser.nit:137,27 text='.'
-Read token at ../src/test_parser.nit:137,28--35 text='location'
-Read token at ../src/test_parser.nit:137,36--42 text='}:\n\t{'
-Read token at ../src/test_parser.nit:137,43--47 text='error'
-Read token at ../src/test_parser.nit:137,48 text='.'
-Read token at ../src/test_parser.nit:137,49--55 text='message'
-Read token at ../src/test_parser.nit:137,56--57 text='}"'
-Read token at ../src/test_parser.nit:137,58 text=')'
-Read token at ../src/test_parser.nit:137,59--138,0 text='
-'
-Read token at ../src/test_parser.nit:138,5--10 text='return'
-Read token at ../src/test_parser.nit:138,11--139,0 text='
-'
-Read token at ../src/test_parser.nit:139,4--6 text='end'
-Read token at ../src/test_parser.nit:139,7--140,0 text='
+Read token at ../src/test_parser.nit:124,8 text='f'
+Read token at ../src/test_parser.nit:124,10 text='='
+Read token at ../src/test_parser.nit:124,12--14 text='new'
+Read token at ../src/test_parser.nit:124,16--25 text='FileReader'
+Read token at ../src/test_parser.nit:124,26 text='.'
+Read token at ../src/test_parser.nit:124,27--30 text='open'
+Read token at ../src/test_parser.nit:124,31 text='('
+Read token at ../src/test_parser.nit:124,32 text='a'
+Read token at ../src/test_parser.nit:124,33 text=')'
+Read token at ../src/test_parser.nit:124,34--125,0 text='
+'
+Read token at ../src/test_parser.nit:125,4--9 text='source'
+Read token at ../src/test_parser.nit:125,11 text='='
+Read token at ../src/test_parser.nit:125,13--15 text='new'
+Read token at ../src/test_parser.nit:125,17--26 text='SourceFile'
+Read token at ../src/test_parser.nit:125,27 text='('
+Read token at ../src/test_parser.nit:125,28 text='a'
+Read token at ../src/test_parser.nit:125,29 text=','
+Read token at ../src/test_parser.nit:125,31 text='f'
+Read token at ../src/test_parser.nit:125,32 text=')'
+Read token at ../src/test_parser.nit:125,33--126,0 text='
+'
+Read token at ../src/test_parser.nit:126,4 text='f'
+Read token at ../src/test_parser.nit:126,5 text='.'
+Read token at ../src/test_parser.nit:126,6--10 text='close'
+Read token at ../src/test_parser.nit:126,11--127,0 text='
+'
+Read token at ../src/test_parser.nit:127,3--5 text='end'
+Read token at ../src/test_parser.nit:127,6--128,0 text='
+'
+Read token at ../src/test_parser.nit:128,3--5 text='var'
+Read token at ../src/test_parser.nit:128,7--11 text='lexer'
+Read token at ../src/test_parser.nit:128,13 text='='
+Read token at ../src/test_parser.nit:128,15--17 text='new'
+Read token at ../src/test_parser.nit:128,19--23 text='Lexer'
+Read token at ../src/test_parser.nit:128,24 text='('
+Read token at ../src/test_parser.nit:128,25--30 text='source'
+Read token at ../src/test_parser.nit:128,31 text=')'
+Read token at ../src/test_parser.nit:128,32--129,0 text='
+'
+Read token at ../src/test_parser.nit:129,3--4 text='if'
+Read token at ../src/test_parser.nit:129,6--15 text='only_lexer'
+Read token at ../src/test_parser.nit:129,17--20 text='then'
+Read token at ../src/test_parser.nit:129,21--130,0 text='
+'
+Read token at ../src/test_parser.nit:130,4--6 text='var'
+Read token at ../src/test_parser.nit:130,8--12 text='token'
+Read token at ../src/test_parser.nit:130,14 text='='
+Read token at ../src/test_parser.nit:130,16--20 text='lexer'
+Read token at ../src/test_parser.nit:130,21 text='.'
+Read token at ../src/test_parser.nit:130,22--25 text='next'
+Read token at ../src/test_parser.nit:130,26--131,0 text='
+'
+Read token at ../src/test_parser.nit:131,4--8 text='while'
+Read token at ../src/test_parser.nit:131,10--12 text='not'
+Read token at ../src/test_parser.nit:131,14--18 text='token'
+Read token at ../src/test_parser.nit:131,20--22 text='isa'
+Read token at ../src/test_parser.nit:131,24--26 text='EOF'
+Read token at ../src/test_parser.nit:131,28--29 text='do'
+Read token at ../src/test_parser.nit:131,30--132,0 text='
+'
+Read token at ../src/test_parser.nit:132,5--6 text='if'
+Read token at ../src/test_parser.nit:132,8--10 text='not'
+Read token at ../src/test_parser.nit:132,12--19 text='no_print'
+Read token at ../src/test_parser.nit:132,21--24 text='then'
+Read token at ../src/test_parser.nit:132,25--133,0 text='
+'
+Read token at ../src/test_parser.nit:133,6--10 text='print'
+Read token at ../src/test_parser.nit:133,11 text='('
+Read token at ../src/test_parser.nit:133,12--27 text='"Read token at {'
+Read token at ../src/test_parser.nit:133,28--32 text='token'
+Read token at ../src/test_parser.nit:133,33 text='.'
+Read token at ../src/test_parser.nit:133,34--41 text='location'
+Read token at ../src/test_parser.nit:133,42--50 text='} text='{'
+Read token at ../src/test_parser.nit:133,51--55 text='token'
+Read token at ../src/test_parser.nit:133,56 text='.'
+Read token at ../src/test_parser.nit:133,57--60 text='text'
+Read token at ../src/test_parser.nit:133,61--63 text='}'"'
+Read token at ../src/test_parser.nit:133,64 text=')'
+Read token at ../src/test_parser.nit:133,65--134,0 text='
+'
+Read token at ../src/test_parser.nit:134,5--7 text='end'
+Read token at ../src/test_parser.nit:134,8--135,0 text='
+'
+Read token at ../src/test_parser.nit:135,5--9 text='token'
+Read token at ../src/test_parser.nit:135,11 text='='
+Read token at ../src/test_parser.nit:135,13--17 text='lexer'
+Read token at ../src/test_parser.nit:135,18 text='.'
+Read token at ../src/test_parser.nit:135,19--22 text='next'
+Read token at ../src/test_parser.nit:135,23--136,0 text='
+'
+Read token at ../src/test_parser.nit:136,4--6 text='end'
+Read token at ../src/test_parser.nit:136,7--137,0 text='
+'
+Read token at ../src/test_parser.nit:137,3--6 text='else'
+Read token at ../src/test_parser.nit:137,7--138,0 text='
+'
+Read token at ../src/test_parser.nit:138,4--6 text='var'
+Read token at ../src/test_parser.nit:138,8--13 text='parser'
+Read token at ../src/test_parser.nit:138,15 text='='
+Read token at ../src/test_parser.nit:138,17--19 text='new'
+Read token at ../src/test_parser.nit:138,21--26 text='Parser'
+Read token at ../src/test_parser.nit:138,27 text='('
+Read token at ../src/test_parser.nit:138,28--32 text='lexer'
+Read token at ../src/test_parser.nit:138,33 text=')'
+Read token at ../src/test_parser.nit:138,34--139,0 text='
+'
+Read token at ../src/test_parser.nit:139,4--6 text='var'
+Read token at ../src/test_parser.nit:139,8--11 text='tree'
+Read token at ../src/test_parser.nit:139,13 text='='
+Read token at ../src/test_parser.nit:139,15--20 text='parser'
+Read token at ../src/test_parser.nit:139,21 text='.'
+Read token at ../src/test_parser.nit:139,22--26 text='parse'
+Read token at ../src/test_parser.nit:139,27--140,0 text='
'
Read token at ../src/test_parser.nit:140,1--141,0 text='
'
-Read token at ../src/test_parser.nit:141,4--5 text='if'
-Read token at ../src/test_parser.nit:141,7--9 text='not'
-Read token at ../src/test_parser.nit:141,11--18 text='no_print'
-Read token at ../src/test_parser.nit:141,20--23 text='then'
-Read token at ../src/test_parser.nit:141,24--142,0 text='
-'
-Read token at ../src/test_parser.nit:142,5 text='('
-Read token at ../src/test_parser.nit:142,6--8 text='new'
-Read token at ../src/test_parser.nit:142,10--25 text='PrintTreeVisitor'
-Read token at ../src/test_parser.nit:142,26 text=')'
-Read token at ../src/test_parser.nit:142,27 text='.'
-Read token at ../src/test_parser.nit:142,28--38 text='enter_visit'
-Read token at ../src/test_parser.nit:142,39 text='('
-Read token at ../src/test_parser.nit:142,40--43 text='tree'
-Read token at ../src/test_parser.nit:142,44 text=')'
-Read token at ../src/test_parser.nit:142,45--143,0 text='
-'
-Read token at ../src/test_parser.nit:143,4--6 text='end'
-Read token at ../src/test_parser.nit:143,7--144,0 text='
-'
-Read token at ../src/test_parser.nit:144,3--5 text='end'
-Read token at ../src/test_parser.nit:144,6--145,0 text='
-'
-Read token at ../src/test_parser.nit:145,2--4 text='end'
-Read token at ../src/test_parser.nit:145,5--146,0 text='
-'
-Read token at ../src/test_parser.nit:146,1--3 text='end'
-Read token at ../src/test_parser.nit:146,4--147,0 text='
+Read token at ../src/test_parser.nit:141,4--6 text='var'
+Read token at ../src/test_parser.nit:141,8--12 text='error'
+Read token at ../src/test_parser.nit:141,14 text='='
+Read token at ../src/test_parser.nit:141,16--19 text='tree'
+Read token at ../src/test_parser.nit:141,20 text='.'
+Read token at ../src/test_parser.nit:141,21--25 text='n_eof'
+Read token at ../src/test_parser.nit:141,26--142,0 text='
+'
+Read token at ../src/test_parser.nit:142,4--5 text='if'
+Read token at ../src/test_parser.nit:142,7--11 text='error'
+Read token at ../src/test_parser.nit:142,13--15 text='isa'
+Read token at ../src/test_parser.nit:142,17--22 text='AError'
+Read token at ../src/test_parser.nit:142,24--27 text='then'
+Read token at ../src/test_parser.nit:142,28--143,0 text='
+'
+Read token at ../src/test_parser.nit:143,5--9 text='print'
+Read token at ../src/test_parser.nit:143,10 text='('
+Read token at ../src/test_parser.nit:143,11--21 text='"Error at {'
+Read token at ../src/test_parser.nit:143,22--26 text='error'
+Read token at ../src/test_parser.nit:143,27 text='.'
+Read token at ../src/test_parser.nit:143,28--35 text='location'
+Read token at ../src/test_parser.nit:143,36--42 text='}:\n\t{'
+Read token at ../src/test_parser.nit:143,43--47 text='error'
+Read token at ../src/test_parser.nit:143,48 text='.'
+Read token at ../src/test_parser.nit:143,49--55 text='message'
+Read token at ../src/test_parser.nit:143,56--57 text='}"'
+Read token at ../src/test_parser.nit:143,58 text=')'
+Read token at ../src/test_parser.nit:143,59--144,0 text='
+'
+Read token at ../src/test_parser.nit:144,5--10 text='return'
+Read token at ../src/test_parser.nit:144,11--145,0 text='
+'
+Read token at ../src/test_parser.nit:145,4--6 text='end'
+Read token at ../src/test_parser.nit:145,7--146,0 text='
+'
+Read token at ../src/test_parser.nit:146,1--147,0 text='
+'
+Read token at ../src/test_parser.nit:147,4--5 text='if'
+Read token at ../src/test_parser.nit:147,7--9 text='xml'
+Read token at ../src/test_parser.nit:147,11--14 text='then'
+Read token at ../src/test_parser.nit:147,15--148,0 text='
+'
+Read token at ../src/test_parser.nit:148,5--8 text='tree'
+Read token at ../src/test_parser.nit:148,9 text='.'
+Read token at ../src/test_parser.nit:148,10--25 text='parentize_tokens'
+Read token at ../src/test_parser.nit:148,26--149,0 text='
+'
+Read token at ../src/test_parser.nit:149,5--8 text='tree'
+Read token at ../src/test_parser.nit:149,9 text='.'
+Read token at ../src/test_parser.nit:149,10--15 text='to_xml'
+Read token at ../src/test_parser.nit:149,16 text='.'
+Read token at ../src/test_parser.nit:149,17--24 text='write_to'
+Read token at ../src/test_parser.nit:149,25 text='('
+Read token at ../src/test_parser.nit:149,26--31 text='stdout'
+Read token at ../src/test_parser.nit:149,32 text=')'
+Read token at ../src/test_parser.nit:149,33--150,0 text='
+'
+Read token at ../src/test_parser.nit:150,4--7 text='else'
+Read token at ../src/test_parser.nit:150,9--10 text='if'
+Read token at ../src/test_parser.nit:150,12--14 text='not'
+Read token at ../src/test_parser.nit:150,16--23 text='no_print'
+Read token at ../src/test_parser.nit:150,25--28 text='then'
+Read token at ../src/test_parser.nit:150,29--151,0 text='
+'
+Read token at ../src/test_parser.nit:151,5 text='('
+Read token at ../src/test_parser.nit:151,6--8 text='new'
+Read token at ../src/test_parser.nit:151,10--25 text='PrintTreeVisitor'
+Read token at ../src/test_parser.nit:151,26 text=')'
+Read token at ../src/test_parser.nit:151,27 text='.'
+Read token at ../src/test_parser.nit:151,28--38 text='enter_visit'
+Read token at ../src/test_parser.nit:151,39 text='('
+Read token at ../src/test_parser.nit:151,40--43 text='tree'
+Read token at ../src/test_parser.nit:151,44 text=')'
+Read token at ../src/test_parser.nit:151,45--152,0 text='
+'
+Read token at ../src/test_parser.nit:152,4--6 text='end'
+Read token at ../src/test_parser.nit:152,7--153,0 text='
+'
+Read token at ../src/test_parser.nit:153,3--5 text='end'
+Read token at ../src/test_parser.nit:153,6--154,0 text='
+'
+Read token at ../src/test_parser.nit:154,2--4 text='end'
+Read token at ../src/test_parser.nit:154,5--155,0 text='
+'
+Read token at ../src/test_parser.nit:155,1--3 text='end'
+Read token at ../src/test_parser.nit:155,4--156,0 text='
'
Error at ./error_syntax.nit:19,2:
- Syntax error: unknown token ?.
+ Syntax Error: unknown token `?`.
Error at ./error_syntax3.nit:1,1--4:
- Syntax error: unexpected keyword 'else'.
+ Syntax Error: unexpected keyword 'else'.
AImplicitSelfExpr 1,32
TId "toto" 1,32--35
AListExprs 1,35
+ TPlus "+" 1,36
ACallExpr 1,37--40
AImplicitSelfExpr 1,37
TId "toto" 1,37--40
TKwend "end" 4,1--3
TKwend "end" 5,1--3
--> ... \e[0;31mfun\e[0m fun fun fu
- ^: Syntax error: unexpected keyword 'fun'.
+ ^: Syntax Error: unexpected keyword 'fun'.
--> %\e[0;31m$\e[0m&^*
- ^: Syntax error: unknown token $.
+ ^: Syntax Error: unknown token `$`.
-->
\ No newline at end of file
-error_syntax3.nit:1,1--4: Syntax error: unexpected keyword 'else'.
+error_syntax3.nit:1,1--4: Syntax Error: unexpected keyword 'else'.
--- /dev/null
+out/test_platform_ios.bin
+out/test_platform_ios.bin/Info.plist
+out/test_platform_ios.bin/PkgInfo
+out/test_platform_ios.bin/test_platform_ios
-alt/test_string_triple4_alt1.nit:15,7--14: Syntax error: unexpected malformed string "#alt1# .
+alt/test_string_triple4_alt1.nit:15,7--14: Syntax Error: unexpected malformed string "#alt1# .
-test_super_gen.nit:27,12--14: Warning: Useless formal parameter type since `Int` cannnot have subclasses.
+test_super_gen.nit:27,12--14: Warning: useless formal parameter type since `Int` cannot have subclasses.
1
0
5
-test_super_gen.nit:27,12--14: Warning: Useless formal parameter type since `Int` cannnot have subclasses.
-test_super_gen_raf.nit:19,12--14: Warning: Useless formal parameter type since `Int` cannnot have subclasses.
+test_super_gen.nit:27,12--14: Warning: useless formal parameter type since `Int` cannot have subclasses.
+test_super_gen_raf.nit:19,12--14: Warning: useless formal parameter type since `Int` cannot have subclasses.
0
20
-test_super_param2.nit:20,10: Type error: class C not found in module test_super_param2.
+test_super_param2.nit:20,10: Error: class `C` not found in module `test_super_param2`.
-alt/test_superstring_alt1.nit:24,16--19: Type error: expected Object, got null
+alt/test_superstring_alt1.nit:24,16--19: Type Error: expected `Object`, got `null`.
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
- opts="--warn --warning --quiet --stop-on-first-error --no-color --log --log-dir --nit-dir --help --version --set-dummy-tool --verbose --bash-completion --stub-man --option-a --option-b"
+ opts="--warn --warning --quiet --stop-on-first-error --keep-going --no-color --log --log-dir --nit-dir --help --version --set-dummy-tool --verbose --bash-completion --stub-man --option-a --option-b"
if [[ ${cur} == -* ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
-w, --warning Show/hide a specific warning
-q, --quiet Do not show warnings
--stop-on-first-error Stop on first error
+ --keep-going Continue after errors, whatever the consequences
--no-color Do not use color to display errors and warnings
--log Generate various log files
--log-dir Directory where to generate log files
-test_variance_attr.nit:28,20--31: Redef Error: Wrong type for parameter `foo'. found nullable Int, expected nullable Object.
-test_variance_attr.nit:29,20--29: Redef Error: Wrong type for parameter `bar'. found nullable B, expected nullable A.
+test_variance_attr.nit:28,20--31: Redef Error: expected `nullable Object` type for parameter `foo'; got `nullable Int`.
+test_variance_attr.nit:29,20--29: Redef Error: expected `nullable A` type for parameter `bar'; got `nullable B`.
-../examples/nitcorn/src/xymus_net.nit:24,8--14: Error: cannot find module tnitter from nitcorn. tried alt, ../lib, ../examples/nitcorn
-../examples/nitcorn/src/xymus_net.nit:25,8--26: Error: cannot find module benitlux_controller from nitcorn. tried alt, ../lib, ../examples/nitcorn
-../examples/nitcorn/src/xymus_net.nit:26,8--29: Error: cannot find module opportunity_controller from nitcorn. tried alt, ../lib, ../examples/nitcorn
+../examples/nitcorn/src/xymus_net.nit:24,8--14: Error: cannot find module `tnitter` from `nitcorn`. Tried: alt, ../lib, ../examples/nitcorn.
+../examples/nitcorn/src/xymus_net.nit:25,8--26: Error: cannot find module `benitlux_controller` from `nitcorn`. Tried: alt, ../lib, ../examples/nitcorn.
+../examples/nitcorn/src/xymus_net.nit:26,8--29: Error: cannot find module `opportunity_controller` from `nitcorn`. Tried: alt, ../lib, ../examples/nitcorn.
fun foo do print "foo"
fun call_a_fun import foo `{
- Object_foo(recv);
+ Sys_foo(recv);
`}
fun call_a_constructor import A, A.bar `{
fun out(i: Int, f: Float): Int import in1, in2, A, A.alt, A.to_i `{
printf("From C, beginning out: %ld\n", i);
- Object_in1(recv, i);
+ Sys_in1(recv, i);
A a = new_A();
A b = new_A_alt(10);
printf("From C, a=%ld\n", A_to_i(a));
# limitations under the License.
class A
- var value : Int
+ var value: Int
- init ( value : Int ) do self.value = value
+ init(value: Int) do self.value = value
- fun +( other : A ) : A import value, A `{
+ fun +(other: A): A import value, A `{
int s = A_value( recv );
int o = A_value( other );
return new_A( s + o );
`}
- fun -( other : A ) : A import value, A `{
+ fun +: A import value, A `{
+ int s = A_value(recv);
+ return new_A(+s);
+ `}
+
+ fun -(other: A): A import value, A `{
int s = A_value( recv );
int o = A_value( other );
return new_A(-s);
`}
- fun *( by : Int ) : A import value, A `{
+ fun *(by: Int): A import value, A `{
int s = A_value( recv );
return new_A( s * by );
`}
- fun /( by : Int ) : A import value, A `{
+ fun /(by: Int): A import value, A `{
int s = A_value( recv );
return new_A( s / by );
`}
- redef fun ==( other ) import value, nullable Object.as(A) `{
+ redef fun ==(other) import value, nullable Object.as(A) `{
if ( nullable_Object_is_a_A( other ) &&
A_value( nullable_Object_as_A(other) ) == A_value( recv ) )
return 1;
return 0;
`}
- fun %( other : A ) : A import value, A `{
+ fun %(other: A): A import value, A `{
return new_A( A_value( recv ) % A_value( other ) );
`}
-# fun +=( other : A ) : A import value, value=, A `{
-# int new_val = A_value( recv ) + A_value( other );
-# A_value__assign( recv, new_val );
-# return new_A( new_val );
-# `}
-
-# fun -=( other : A ) : A import +=, A, value `{
-# A inv_other = new_A( -1*A_value( other ) );
-# return A__plus_equal( recv, int_other );
-# `}
-
- fun <=>( other : A ) : A import value, A `{
+ fun <=>(other: A): A import value, A `{
return new_A( A_value( recv )* 1024 );
`}
-# fun @( other : A ) : A import value, A `{
-# return new_A( A_value( recv )* 1000 );
-# `}
-
- fun >( other : A ) : Bool import value `{
+ fun >(other: A): Bool import value `{
return A_value( recv ) > A_value( other );
`}
- fun <( other : A ) : Bool import value `{
+ fun <(other: A): Bool import value `{
return A_value( recv ) < A_value( other );
`}
- fun >=( other : A ) : Bool import value `{
+ fun >=(other: A): Bool import value `{
return A_value( recv ) >= A_value( other );
`}
- fun <=( other : A ) : Bool import value `{
+ fun <=(other: A): Bool import value `{
return A_value( recv ) <= A_value( other );
`}
- fun >>( other : A ) import value, value=, A `{
+ fun >>(other: A): A import value, value=, A `{
int new_val = A_value( recv ) >> A_value( other );
- A_value__assign( recv, new_val );
+ return new_A(new_val);
`}
- fun <<( other : A ) import value, A `{
+ fun <<(other: A): A import value, A `{
int new_val = A_value( recv ) << A_value( other );
- A_value__assign( recv, new_val );
+ return new_A(new_val);
+ `}
+
+ fun |(other: A): A import value, A `{
+ int new_val = A_value( recv ) | A_value( other );
+ return new_A(new_val);
`}
- fun []( index : Int ) : A import A `{
+ fun ^(other: A): A import value, A `{
+ int new_val = A_value( recv ) ^ A_value( other );
+ return new_A(new_val);
+ `}
+
+ fun ~: A import value, A `{
+ int new_val = ~A_value( recv );
+ return new_A(new_val);
+ `}
+
+ fun &(other: A): A import value, A `{
+ int new_val = A_value( recv ) & A_value( other );
+ return new_A(new_val);
+ `}
+
+ fun [](index: Int): A import A `{
return new_A( index );
`}
- fun []=( index : Int, value : A ) : A import A `{
+ fun []=(index: Int, value: A): A import A `{
return new_A( index + A_value( value ) );
`}
redef fun to_s do return value.to_s
end
-print new A( 1 ) + new A( 10 ) # 11
-print new A( 10 ) - new A( 1 ) # 9
+print new A(1) + new A(10) # 11
+print +new A(123)
+print new A(10) - new A(1) # 9
+print -new A(123)
-print new A( 2 ) * 11 # 22
-print new A( 33 ) / 11 # 3
+print new A(2) * 11 # 22
+print new A(33) / 11 # 3
-#print new A( 44 ) == null # false
-print new A( 55 ) == 55 # false
-print new A( 33 ) == new A( 11 ) # false
-print new A( 22 ) == new A( 77 ) # false
-print new A( 11 ) == new A( 11 ) # true
+print new A(44) == null # false
+print new A(55) == 55 # false
+print new A(33) == new A(11) # false
+print new A(22) == new A(77) # false
+print new A(11) == new A(11) # true
-print new A( 147 ) % new A( 12 ) # 3
-print new A( 4 ) <=> new A( 123 ) # 4096
+print new A(147) % new A(12) # 3
+print new A(4) <=> new A(123) # 4096
-print new A( 1 ) < new A( 100 ) # true
-print new A( 100 ) < new A( 100 ) # false
-print new A( 100 ) < new A( 1 ) # false
+print new A(1) < new A(100) # true
+print new A(100) < new A(100) # false
+print new A(100) < new A(1) # false
-print new A( 1 ) > new A( 100 ) # false
-print new A( 100 ) > new A( 100 ) # false
-print new A( 100 ) > new A( 1 ) # true
+print new A(1) > new A(100) # false
+print new A(100) > new A(100) # false
+print new A(100) > new A(1) # true
-print new A( 1 ) <= new A( 100 ) # true
-print new A( 100 ) <= new A( 100 ) # true
-print new A( 100 ) <= new A( 1 ) # false
+print new A(1) <= new A(100) # true
+print new A(100) <= new A(100) # true
+print new A(100) <= new A(1) # false
-print new A( 1 ) >= new A( 100 ) # false
-print new A( 100 ) >= new A( 100 ) # true
-print new A( 100 ) >= new A( 1 ) # true
+print new A(1) >= new A(100) # false
+print new A(100) >= new A(100) # true
+print new A(100) >= new A(1) # true
-#var x = new A( 1 )
-#x << new A( 5 )
-#print x # 16
+print new A(1) << new A(5) # 32
+print new A(32) >> new A(2) # 8
-#var y = new A( 32 )
-#y >> new A( 2 )
-#print y # 8
+print new A(3) | new A(6) # 7
+print new A(3) ^ new A(6) # 5
+print new A(3) & new A(6) # 2
+print ~new A(3) # -4
-var a = new A( 456 )
-print a[ 52 ] # 52
+var a = new A(456)
+print a[52] # 52
-a[ 74 ] = new A( 96 )
+a[74] = new A(96)
print a # 96
-
-print(-(new A(123)))
printf("From Objective-C: %ld %f %s\n", ii, f, cstr);
- Object_bar(recv, ii, f, s);
+ Sys_bar(recv, ii, f, s);
`}
fun bar(i: Int, f: Float, s: String)
fun test2(h: Map[Int, Int])
do
print("* test 2 *")
- var nb = 999
+ var nb = 99
var i = 0
while i <= nb do
return a
end
-print(foo(23))
+var n = 10
+if args.not_empty then n = args.first.to_i
+
+print(foo(n))
--- /dev/null
+#!/bin/bash
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Tests to run on OS X for the host platform and iOS
+./tests.sh $@ \
+ test_ffi_objc_*.nit \
+ test_*ios.nit \
+ ../lib/ios/examples/*.nit \
+ ../lib/cocoa*/examples/*.nit
--outdir Use a specific output folder (default=out/)
--compdir Use a specific temporary compilation folder (default=.nit_compile)
--node Run as a node in parallel, will not output context information
+--autosav Copy the .res files directly in the sav folder overriding existing .res files
END
}
*) stop=true
esac
done
- if test -n "$TIME"; then
+ if test -d "$1"; then
+ find $1 | sort
+ elif test -n "$TIME"; then
$TIME -o "$o" $a $TIMEOUT "$@"
else
if test -n "$a"; then echo 0 >> "$o"; else echo 0 > "$o"; fi
echo "[*ok*] $outdir/$pattern.res $SAV - but $OLD remains!"
echo >>$xml "<error message='`xmlesc "ok $outdir/$pattern.res - but $OLD remains"`'/>"
remains="$remains $OLD"
+ test "$autosav" = "true" && rm "$OLD"
else
echo "[ok] $outdir/$pattern.res $SAV"
fi
echo "[*fixme*] $outdir/$pattern.res $FIXME - but $OLD remains!"
echo >>$xml "<error message='`xmlesc "ok $outdir/$pattern.res - but $OLD remains"`'/>"
remains="$remains $OLD"
+ test "$autosav" = "true" && rm "$OLD"
else
echo "[fixme] $outdir/$pattern.res $FIXME"
echo >>$xml "<skipped/>"
echo >>$xml "]]></system-out>"
nok="$nok $pattern"
echo "$ii" >> "$ERRLIST"
+ test "$autosav" = "true" && cp "$outdir/$pattern.res" "$SOSO"
elif [ -n "$SOSOF" ]; then
echo "[======= fixme soso $outdir/$pattern.res $SOSOF =======]"
echo >>$xml "<error message='`xmlesc "soso $outdir/$pattern.res $SOSO"`'/>"
echo >>$xml "]]></system-out>"
nok="$nok $pattern"
echo "$ii" >> "$ERRLIST"
+ test "$autosav" = "true" && cp "$outdir/$pattern.res" && "$SOSO"
elif [ -n "$NSAV" ]; then
echo "[======= fail $outdir/$pattern.res $NSAV =======]"
echo >>$xml "<error message='`xmlesc "fail $outdir/$pattern.res $NSAV"`'/>"
echo >>$xml "]]></system-out>"
nok="$nok $pattern"
echo "$ii" >> "$ERRLIST"
+ test "$autosav" = "true" && cp "$outdir/$pattern.res" "$NSAV"
elif [ -n "$NFIXME" ]; then
echo "[======= changed $outdir/$pattern.res $NFIXME ======]"
echo >>$xml "<error message='`xmlesc "changed $outdir/$pattern.res $NFIXME"`'/>"
echo >>$xml "]]></system-out>"
nok="$nok $pattern"
echo "$ii" >> "$ERRLIST"
+ test "$autosav" = "true" && cp "$outdir/$pattern.res" "$NFIXME"
elif [ -s "$outdir/$pattern.res" ]; then
echo "[=== no sav ===] $outdir/$pattern.res is not empty"
echo >>$xml "<error message='no sav and not empty'/>"
echo >>$xml "]]></system-out>"
nos="$nos $pattern"
echo "$ii" >> "$ERRLIST"
+ test "$autosav" = "true" && cp "$outdir/$pattern.res" "sav/"
else
# no sav but empty res
echo "[0k] $outdir/$pattern.res is empty"
verbose=false
isnode=false
+autosav=false
stop=false
engine=nitc
noskip=
--outdir) outdir="$2"; shift; shift;;
--compdir) compdir="$2"; shift; shift;;
--node) isnode=true; shift;;
+ --autosav) autosav=true; shift;;
*) stop=true
esac
done