# limitations under the License.
# A simple exemple of refinement where a method is added to the integer class.
-package fibonacci
+module fibonacci
redef class Int
# Calculate the self-th element of the fibonacci sequence.
# limitations under the License.
# How to print arguments of the command line.
-package print_arguments
+module print_arguments
for a in args do
print a
# A procedural program (without explicit class definition).
# This program manipulates arrays of integers.
-package procedural_array
+module procedural_array
# The sum of the elements of `a'.
# Uses a 'for' control structure.
# another product.
class DummyArray
-special Set[Int]
-special ArrayCapable[Int]
+ super Set[Int]
+ super ArrayCapable[Int]
var _capacity: Int
redef readable var _length: Int
var _keys: NativeArray[Int]
end
class DummyIterator
-special Iterator[Int]
+ super Iterator[Int]
var _array: DummyArray
var _pos: Int
# another product.
class FilterIStream
-special IStream
+ super IStream
# Filter readed elements
readable var _stream: nullable IStream
end
class FilterOStream
-special OStream
+ super OStream
# Filter outputed elements
readable var _stream: nullable OStream
end
class StreamCat
-special FilterIStream
+ super FilterIStream
var _streams: Iterator[IStream]
redef fun eof: Bool
end
class StreamDemux
-special FilterOStream
+ super FilterOStream
var _streams: Array[OStream]
redef fun is_writable: Bool
# A sprite is a drawable element.
# It is represented by a main pixel (x,y) and an image (image)
class Sprite
-special Rectangle
+ super Rectangle
# Absolute X coordinate of the main pixel in the screen
readable writable var _x: Int
end
class OptionText
-special Option
+ super Option
init(text: String) do init_opt(text, null, null)
redef fun pretty(off) do return to_s
end
class OptionBool
-special Option
+ super Option
redef type VALUE: Bool
init(help: String, names: String...) do init_opt(help, false, names)
end
class OptionCount
-special Option
+ super Option
redef type VALUE: Int
init(help: String, names: String...) do init_opt(help, 0, names)
# Option with one mandatory parameter
class OptionParameter
-special Option
+ super Option
protected fun convert(str: String): VALUE is abstract
redef fun read_param(it)
end
class OptionString
-special OptionParameter
+ super OptionParameter
redef type VALUE: nullable String
init(help: String, names: String...) do init_opt(help, null, names)
end
class OptionEnum
-special OptionParameter
+ super OptionParameter
redef type VALUE: Int
- var _enum: Array[String]
+ var _values: Array[String]
- init(enum: Array[String], help: String, default: Int, names: String...)
+ init(values: Array[String], help: String, default: Int, names: String...)
do
- assert enum.length > 0
- _enum = enum.to_a
- init_opt("{help} <{enum.join(", ")}>", default, names)
+ assert values.length > 0
+ _values = values.to_a
+ init_opt("{help} <{values.join(", ")}>", default, names)
end
redef fun convert(str)
do
- var id = _enum.index_of(str)
+ var id = _values.index_of(str)
return id
end
- fun value_name: String = _enum[value]
+ fun value_name: String = _values[value]
redef fun pretty_default
do
if default_value != null then
- return " ({_enum[default_value.as(not null)]})"
+ return " ({_values[default_value.as(not null)]})"
else
return ""
end
end
class OptionInt
-special OptionParameter
+ super OptionParameter
redef type VALUE: Int
init(help: String, default: Int, names: String...) do init_opt(help, default, names)
end
class OptionArray
-special OptionParameter
+ super OptionParameter
redef type VALUE: Array[String]
init(help: String, names: String...)
package sdl
universal SDL_Surface
-special Pointer
+ super Pointer
fun width: Int is extern "sdl_surface_width"
fun height: Int is extern "sdl_surface_height"
end
universal SDL_Screen
-special SDL_Surface
+ super SDL_Surface
fun flip is extern "SDL_Flip"
end
universal SDL_Event
-special Pointer
+ super Pointer
fun is_keyboard: Bool is extern "sdl_evt_is_keyboard"
fun as_keyboard: SDL_KeyboardEvent is extern "sdl_evt_as_keyboard"
fun is_mouse_button: Bool is extern "sdl_evt_is_mouse_button"
end
universal SDL_ButtonEvent
-special SDL_Event
+ super SDL_Event
fun is_pressed: Bool is abstract
end
universal SDL_MouseEvent
-special SDL_Event
+ super SDL_Event
fun x: Int is abstract
fun y: Int is abstract
end
universal SDL_KeyboardEvent
-special SDL_ButtonEvent
+ super SDL_ButtonEvent
redef fun is_pressed: Bool is extern "sdl_keyboard_evt_state"
end
universal SDL_MouseButtonEvent
-special SDL_ButtonEvent
-special SDL_MouseEvent
+ super SDL_ButtonEvent
+ super SDL_MouseEvent
redef fun is_pressed: Bool is extern "sdl_mouse_button_evt_state"
redef fun x: Int is extern "sdl_mouse_button_evt_x"
redef fun y: Int is extern "sdl_mouse_button_evt_y"
end
universal SDL_MouseMotionEvent
-special SDL_MouseEvent
+ super SDL_MouseEvent
redef fun x: Int is extern "sdl_mouse_evt_x"
redef fun y: Int is extern "sdl_mouse_evt_y"
fun xrel: Int is extern "sdl_mouse_evt_xrel"
# Naive implementation of collections method
# You only have to define iterator!
interface NaiveCollection[E]
-special Collection[E]
+ super Collection[E]
redef fun is_empty do return length == 0
redef fun length
# A collection that contains only one item.
class Container[E]
-special Collection[E]
+ super Collection[E]
redef fun first do return _item
# This iterator is quite stupid since it is used for only one item.
class ContainerIterator[E]
-special Iterator[E]
+ super Iterator[E]
redef fun item do return _container.item
redef fun next do _is_ok = false
# Items can be removed from this collection
interface RemovableCollection[E]
-special Collection[E]
+ super Collection[E]
# Remove all items
fun clear is abstract
# Items can be added to these collections.
interface SimpleCollection[E]
-special RemovableCollection[E]
+ super RemovableCollection[E]
# Add an item in a collection.
# Ensure col.has(item)
fun add(item: E) is abstract
# s.add(a)
# s.has(b) # --> true
interface Set[E: Object]
-special SimpleCollection[E]
+ super SimpleCollection[E]
redef fun has_only(item)
do
end
interface MapRead[K: Object, E]
-special Collection[E]
+ super Collection[E]
# Get the item at `key'.
fun [](key: K): E is abstract
# map.has_key(u1) # -> true
# map.has_key(u3) # -> false
interface Map[K: Object, E]
-special RemovableCollection[E]
-special MapRead[K, E]
+ super RemovableCollection[E]
+ super MapRead[K, E]
# Set the`item' at `key'.
fun []=(key: K, item: E) is abstract
# Iterators for Map.
interface MapIterator[K: Object, E]
-special Iterator[E]
+ super Iterator[E]
# The key of the current item.
fun key: K is abstract
# Indexed collection are ordoned collections.
# The first item is 0. The last is `length'-1.
interface SequenceRead[E]
-special MapRead[Int, E]
+ super MapRead[Int, E]
# Get the first item.
# Is equivalent with `self'[0].
redef fun first
# Indexed collection are ordoned collections.
# The first item is 0. The last is `length'-1.
interface Sequence[E]
-special SequenceRead[E]
-special Map[Int, E]
-special SimpleCollection[E]
+ super SequenceRead[E]
+ super Map[Int, E]
+ super SimpleCollection[E]
# Set the first item.
# Is equivalent with `self'[0] = `item'.
fun first=(item: E)
# Iterators on indexed collections.
interface IndexedIterator[E]
-special MapIterator[Int, E]
+ super MapIterator[Int, E]
# The index of the current item.
fun index: Int is abstract
# Associatives arrays that internally uses couples to represent each (key, value) pairs.
interface CoupleMap[K: Object, E]
-special Map[K, E]
+ super Map[K, E]
# Return the couple of the corresponding key
# Return null if the key is no associated element
protected fun couple_at(key: K): nullable Couple[K, E] is abstract
#
# Actually is is a wrapper around an iterator of the internal array of the map.
class CoupleMapIterator[K: Object, E]
-special MapIterator[K, E]
+ super MapIterator[K, E]
redef fun item do return _iter.item.second
#redef fun item=(e) do _iter.item.second = e
# One dimention array of objects.
class AbstractArrayRead[E]
-special SequenceRead[E]
+ super SequenceRead[E]
# The current length
redef readable var _length: Int = 0
# Resizeable one dimention array of objects.
class AbstractArray[E]
-special AbstractArrayRead[E]
-special Sequence[E]
+ super AbstractArrayRead[E]
+ super Sequence[E]
fun enlarge(cap: Int) is abstract
redef fun push(item) do add(item)
# a.push(32)
# a.push(8)
class Array[E]
-special AbstractArray[E]
-special ArrayCapable[E]
+ super AbstractArray[E]
+ super ArrayCapable[E]
redef fun iterate
!each(e: E)
do
# An `Iterator' on `AbstractArray'
class ArrayIterator[E]
-special IndexedIterator[E]
+ super IndexedIterator[E]
redef fun item do return _array[_index]
# redef fun item=(e) do _array[_index] = e
# A set implemented with an Array.
class ArraySet[E: Object]
-special Set[E]
+ super Set[E]
# The stored elements.
var _array: Array[E]
# Iterators on sets implemented with arrays.
class ArraySetIterator[E: Object]
-special Iterator[E]
+ super Iterator[E]
redef fun is_ok do return _iter.is_ok
# Associative arrays implemented with an array of (key, value) pairs.
class ArrayMap[K: Object, E]
-special CoupleMap[K, E]
+ super CoupleMap[K, E]
# O(n)
redef fun [](key)
# A HashCollection is an array of HashNode[K] indexed by the K hash value
private class HashCollection[K: Object, N: HashNode[K], E]
-special Collection[E]
-special ArrayCapable[nullable N]
+ super Collection[E]
+ super ArrayCapable[nullable N]
var _array: nullable NativeArray[nullable N] = null # Used to store items
var _capacity: Int = 0 # Size of _array
redef readable var _length: Int = 0 # Number of items in the map
end
class HashMap[K: Object, V]
-special Map[K, V]
-special HashCollection[K, HashMapNode[K, V], V]
+ super Map[K, V]
+ super HashCollection[K, HashMapNode[K, V], V]
redef fun [](key)
do
end
class HashMapNode[K: Object, V]
-special HashNode[K]
+ super HashNode[K]
redef type N: HashMapNode[K, V]
var _value: V
end
class HashMapIterator[K: Object, V]
-special MapIterator[K, V]
+ super MapIterator[K, V]
redef fun is_ok do return _node != null
redef fun item
end
class HashSet[E: Object]
-special Set[E]
-special HashCollection[E, HashSetNode[E], E]
+ super Set[E]
+ super HashCollection[E, HashSetNode[E], E]
redef fun is_empty do return _length == 0
end
class HashSetNode[E: Object]
-special HashNode[E]
+ super HashNode[E]
redef type N: HashSetNode[E]
init(e: E)
end
class HashSetIterator[E: Object]
-special Iterator[E]
+ super Iterator[E]
redef fun is_ok do return _node != null
redef fun item
# Double linked lists.
class List[E]
-special Sequence[E]
+ super Sequence[E]
# Access
redef fun [](index) do return get_node(index).item
# This is the iterator class of List
class ListIterator[E]
-special IndexedIterator[E]
+ super IndexedIterator[E]
redef fun item do return _node.item
fun item=(e: E) do _node.item = e
# Linked nodes that constitute a linked list.
private class ListNode[E]
-special Container[E]
+ super Container[E]
init(i: E)
do
item = i
# Range of discrete objects.
class Range[E: Discrete]
-special Collection[E]
+ super Collection[E]
redef readable var _first: E
class IteratorRange[E: Discrete]
# Iterator on ranges.
-special Iterator[E]
+ super Iterator[E]
var _range: Range[E]
redef readable var _item: E
# This class uses the operator <=> to sort arrays.
# You can also use the `sort' method of the `Array' class.
class ComparableSorter[E: Comparable]
-special AbstractSorter[E]
+ super AbstractSorter[E]
# Return a <=> b
redef fun compare(a, b) do return a <=> b
# stdout of the processus is readable
class IProcess
-special Process
-special IStream
+ super Process
+ super IStream
var _in: FDIStream
redef fun close do _in.close
# stdin of the processus is writable
class OProcess
-special Process
-special OStream
+ super Process
+ super OStream
var _out: OStream
redef fun close do _out.close
# stdin and stdout are both accessible
class IOProcess
-special IProcess
-special OProcess
-special IOStream
+ super IProcess
+ super OProcess
+ super IOStream
redef fun close
do
end
private universal NativeProcess
-special Pointer
+ super Pointer
fun id: Int is extern "exec_NativeProcess_NativeProcess_id_0"
fun is_finished: Bool is extern "exec_NativeProcess_NativeProcess_is_finished_0"
fun status: Int is extern "exec_NativeProcess_NativeProcess_status_0"
# File Abstract Stream
class FStream
-special IOS
-special NativeFileCapable
+ super IOS
+ super NativeFileCapable
# The path of the file.
readable var _path: nullable String = null
# File input stream
class IFStream
-special FStream
-special BufferedIStream
+ super FStream
+ super BufferedIStream
# Misc
fun reopen
# File output stream
class OFStream
-special FStream
-special OStream
+ super FStream
+ super OStream
# Write a string.
redef fun write(s)
###############################################################################
class Stdin
-special IFStream
+ super IFStream
private init do
_file = native_stdin
_path = "/dev/stdin"
end
class Stdout
-special OFStream
+ super OFStream
private init do
_file = native_stdout
_path = "/dev/stdout"
end
class Stderr
-special OFStream
+ super OFStream
private init do
_file = native_stderr
_path = "/dev/stderr"
end
universal FileStat
-special Pointer
+ super Pointer
# This class is system dependent ... must reify the vfs
fun mode: Int is extern "file_FileStat_FileStat_mode_0"
fun atime: Int is extern "file_FileStat_FileStat_atime_0"
# Instance of this class are standard FILE * pointers
private universal NativeFile
-special Pointer
+ super Pointer
fun io_read(buf: NativeString, len: Int): Int is extern "file_NativeFile_NativeFile_io_read_2"
fun io_write(buf: NativeString, len: Int): Int is extern "file_NativeFile_NativeFile_io_write_2"
fun io_close: Int is extern "file_NativeFile_NativeFile_io_close_0"
# Discrete total orders.
interface Discrete
-special Comparable
+ super Comparable
redef type OTHER: Discrete
# Native integer numbers.
# Correspond to C int.
universal Int
-special Discrete
+ super Discrete
redef type OTHER: Int
redef fun object_id is intern
# Characters are denoted with simple quote.
# eg. 'a' or '\n'.
universal Char
-special Discrete
+ super Discrete
redef type OTHER: Char
redef fun object_id is intern
# Abstract input streams
class IStream
-special IOS
+ super IOS
# Read a character. Return its ASCII value, -1 on EOF or timeout
fun read_char: Int is abstract
# Abstract output stream
class OStream
-special IOS
+ super IOS
# write a string
fun write(s: String) is abstract
# Input streams with a buffer
class BufferedIStream
-special IStream
+ super IStream
redef fun read_char
do
assert not eof
end
class IOStream
-special IStream
-special OStream
+ super IStream
+ super OStream
end
##############################################################"
class FDStream
-special IOS
+ super IOS
# File description
var _fd: Int
end
class FDIStream
-special FDStream
-special IStream
+ super FDStream
+ super IStream
redef readable var _eof: Bool = false
redef fun read_char
end
class FDOStream
-special FDStream
-special OStream
+ super FDStream
+ super OStream
redef readable var _is_writable: Bool
redef fun write(s)
end
class FDIOStream
-special FDIStream
-special FDOStream
-special IOStream
+ super FDIStream
+ super FDOStream
+ super IOStream
init(fd: Int)
do
_fd = fd
###############################################################################
abstract class AbstractString
-special AbstractArrayRead[Char]
+ super AbstractArrayRead[Char]
readable private var _items: NativeString
redef fun [](index) do return _items[index]
class String
-special Comparable
-special AbstractString
+ super Comparable
+ super AbstractString
redef type OTHER: String
# Create a new string from a given char *.
# Strings are arrays of characters.
class Buffer
-special AbstractString
-special Comparable
-special StringCapable
-special AbstractArray[Char]
+ super AbstractString
+ super Comparable
+ super StringCapable
+ super AbstractArray[Char]
redef type OTHER: String
# Communications of the Association for Computing Machinery, 20(10), 1977, pp. 762-772.)
# see also http://www.cs.utexas.edu/users/moore/best-ideas/string-searching/index.html
class BM_Pattern
-special Pattern
+ super Pattern
redef fun to_s do return _motif
# boyer-moore search gives the position of the first occurence of a pattern starting at position `from'
end
redef class Char
-special Pattern
+ super Pattern
redef fun search_index_in(s, from)
do
var stop = s.length
end
redef class String
-special Pattern
+ super Pattern
redef fun search_index_in(s, from)
do
assert from >= 0
<keyword>redef</keyword>
<keyword>var</keyword>
<keyword>package</keyword>
+ <keyword>module</keyword>
<keyword>type</keyword>
<keyword>universal</keyword>
+ <keyword>enum</keyword>
</context>
<context id="module-handlers" style-ref="module-handler">
include "number.lang"
string delim "\"" "\"" escape "\\"
string delim "'" "'" escape "\\"
-keyword = "abort|abstract|as|assert|break|continue|do|else|end|extern|for|if|import|in|interface|intern|intrude|is|isa|isset|new|label|loop|private|protected|readable|return|super|then|while|false|null|nullable|redef|self|true|and|not|or|fun|var|type|init|class|package|special|universal|writable"
+keyword = "abort|abstract|as|assert|break|continue|do|else|end|enum|extern|for|if|import|in|interface|intern|intrude|is|isa|isset|new|label|loop|private|protected|readable|return|super|then|while|false|null|nullable|redef|self|true|and|not|or|fun|var|type|init|class|package|module|special|universal|writable"
type = '[[:upper:]]([[:word:]]*)'
include "symbols.lang"
syn match Error "\<end\>"
" Declarations, definitions and blocks
-syn region NITPackageDecl matchgroup=NITDefine start="\<\(import\|package\)\>\s*" matchgroup=NONE end="\ze\(\s\|:\|(\|$\)" oneline
-syn region NITClassBlock matchgroup=NITDefine start="\<\(class\|universal\|interface\)\>" matchgroup=NITDefine end="\<end\>" contains=ALL fold
+syn region NITModuleDecl matchgroup=NITDefine start="\<\(import\|module\|package\)\>\s*" matchgroup=NONE end="\ze\(\s\|:\|(\|$\)" oneline
+syn region NITClassBlock matchgroup=NITDefine start="\<\(class\|enum\|universal\|interface\)\>" matchgroup=NITDefine end="\<end\>" contains=ALL fold
syn region NITFunctionDecl matchgroup=NITDefine start="\<fun\>\s*" matchgroup=NONE end="\ze\(\<do\>\|\s\|:\|(\|$\)" oneline
syn region NITTypeDecl matchgroup=NITDefine start="\<type\>\s*" matchgroup=NONE end="\ze\(\<do\>\|\s\|:\|(\|$\)" oneline contained containedin=NITClassBlock
syn region NITAttrDecl matchgroup=NITDefine start="\<var\>\s*\ze_" matchgroup=NONE end="\ze\(\<do\>\|\s\|:\|(\|$\)" oneline contained containedin=NITClassBlock
" Define the default highlighting.
hi def link NITDefine Define
-hi def link NITPackageDecl Identifier
+hi def link NITModuleDecl Identifier
hi def link NITFunctionDecl Function
hi def link NITTypeDecl Function
hi def link NITAttrDecl Function
import nit_version
class AbstractCompiler
-special ToolContext
+ super ToolContext
init(tool_name: String)
do
# * register aliasing
# * IMove optimization
class IRegisterSlotAllocationVisitor
-special ICodeVisitor
+ super ICodeVisitor
# The visitor works in two pass:
# First pass is used to detect first and last iregisters occurences and slot groups
# Second pass is used to assign an effective slot to iregsiters
# See the License for the specific language governing permissions and
# limitations under the License.
-# This package implements Class Hierarchy Analysis (CHA)
+# This module implements Class Hierarchy Analysis (CHA)
package cha_analysis
import reachable_method_analysis
import program
class ChaContext
-special ReachableMethodAnalysis
+ super ReachableMethodAnalysis
readable var _reachable_iroutines: HashSet[IRoutine] = new HashSet[IRoutine]
redef fun is_iroutine_reachable(ir: nullable IRoutine): Bool do
end
class ChaVisitor
-special ICodeVisitor
+ super ICodeVisitor
readable var _builder: ChaBuilder
redef fun visit_icode(ic)
# See the License for the specific language governing permissions and
# limitations under the License.
-# This package introduces an algorithm to remove the body of dead methods
+# This module introduces an algorithm to remove the body of dead methods
package dead_method_removal
import reachable_method_analysis
end
private class InlineGetSetVisitor
-special ICodeVisitor
+ super ICodeVisitor
var _icb: ICodeBuilder
readable var _number_inlined: Int = 0
import icode
private class InlineMethodVisitor
-special ICodeVisitor
+ super ICodeVisitor
var _pass: Int = 0
var _icb: ICodeBuilder
# See the License for the specific language governing permissions and
# limitations under the License.
-# Package containing all bases for instantiated type analysis
+# Module containing all bases for instantiated type analysis
package instantiated_type_analysis
import program
# Default behavior is to say that all types are instantiated
class DefaultInstantiatedTypeAnalysis
-special InstantiatedTypeAnalysis
+ super InstantiatedTypeAnalysis
redef fun is_class_instantiated(local_class: MMLocalClass): Bool do return true
init do end
# See the License for the specific language governing permissions and
# limitations under the License.
-# Package containing all bases for the reachable from init method analysis
+# Module containing all bases for the reachable from init method analysis
package reachable_as_init
import icode
# Default behavior is to say that all initializers are called as init
class DefaultReachableAsInitAnalysis
-special ReachableAsInitAnalysis
+ super ReachableAsInitAnalysis
redef fun is_method_reachable_as_init(method: MMMethod, c: MMLocalClass): Bool do
if method.global.is_init and method.global.is_init_for(c) then return true
return false
# See the License for the specific language governing permissions and
# limitations under the License.
-# This package introduces an analysis that flags all initializers called as new A.x
+# This module introduces an analysis that flags all initializers called as new A.x
package reachable_as_init_impl
import reachable_method_analysis
# Visitor will add only initializers in the _methods list.
# If the checked method is in this list, it is reachable as init !
class ReachableAsInitAnalysisImpl
-special ReachableAsInitAnalysis
+ super ReachableAsInitAnalysis
var _methods: HashMap[MMLocalClass, List[MMMethod]] = new HashMap[MMLocalClass, List[MMMethod]]
redef fun is_method_reachable_as_init(method: MMMethod, c: MMLocalClass): Bool do
end
class RAIVisitor
-special ICodeVisitor
+ super ICodeVisitor
readable var _builder: ReachableAsInitBuilder
redef fun visit_icode(ic)
# See the License for the specific language governing permissions and
# limitations under the License.
-# Package containing all bases for the reachable from init method analysis
+# Module containing all bases for the reachable from init method analysis
package reachable_from_init_method_analysis
import icode
# Default behavior is to say that all methods/iroutines are reachable
# from at least one init
class DefaultReachableFromInitMethodAnalysis
-special ReachableFromInitMethodAnalysis
+ super ReachableFromInitMethodAnalysis
redef fun is_iroutine_reachable_from_init(ir: nullable IRoutine): Bool do return true
redef fun is_method_reachable_from_init(method: MMMethod): Bool do return true
end
class RFIMAContext
-special ReachableFromInitMethodAnalysis
+ super ReachableFromInitMethodAnalysis
readable var _reachable_from_init_iroutines: HashSet[IRoutine] = new HashSet[IRoutine]
redef fun is_iroutine_reachable_from_init(ir: nullable IRoutine): Bool do
end
class RFIMAVisitor
-special ICodeVisitor
+ super ICodeVisitor
readable var _context: RFIMAContext
readable var _program: Program
# See the License for the specific language governing permissions and
# limitations under the License.
-# Package containing all bases for the reachable method analysis
+# Module containing all bases for the reachable method analysis
package reachable_method_analysis
import icode
# Default behavior is to say that all methods/iroutines are reachable
class DefaultReachableMethodAnalysis
-special ReachableMethodAnalysis
+ super ReachableMethodAnalysis
redef fun is_iroutine_reachable(ir: nullable IRoutine): Bool do return true
redef fun is_method_reachable(method: MMMethod): Bool do return true
# See the License for the specific language governing permissions and
# limitations under the License.
-# This package introduces an optimization that removes 'get' tests when
+# This module introduces an optimization that removes 'get' tests when
# not reachable from an initializer
package remove_out_of_init_get_test
end
class IssetCounter
-special ICodeVisitor
+ super ICodeVisitor
readable var _nb_isset: Int = 0
redef fun visit_icode(ic)
end
class GetterTestRemover
-special ICodeVisitor
+ super ICodeVisitor
readable var _nb_optimized_isset: Int = 0
redef fun visit_icode(ic)
import program
class RtaContext
-special ReachableMethodAnalysis
-special InstantiatedTypeAnalysis
+ super ReachableMethodAnalysis
+ super InstantiatedTypeAnalysis
init do end
readable var _instanciated_classes: HashSet[MMLocalClass] = new HashSet[MMLocalClass]
end
for cls in program.main_module.global_classes do
- if not cls.is_universal then continue
+ if not cls.is_enum then continue
add_instantiated_class(program.main_module[cls])
end
end
end
class RtaVisitor
-special ICodeVisitor
+ super ICodeVisitor
readable var _builder: RtaBuilder
redef fun visit_icode(ic)
# A writer node that contains a full writer
private class WriterCoreNode
-special WriterNode
+ super WriterNode
var _writer: Writer
redef fun internal_write_to_stream(s) do _writer.write_to_stream(s)
# A simple writer node that contains only strings
private class WriterStrings
-special WriterNode
+ super WriterNode
# The first string
var _string: String
# A class to dump ICode to a file
class FileICodeDumper
-special ICodeDumper
+ super ICodeDumper
var _file: OFStream
init(f: OFStream) do
# All information and results of the global analysis.
class TableInformation
-special ColorContext
+ super ColorContext
# FIXME: do something better.
readable writable var _max_class_table_length: Int = 0
end
# A compiled class is a class in a program
class CompiledClass
-special ColorContext
+ super ColorContext
# The corresponding local class in the main module of the prgram
readable var _local_class: MMLocalClass
# An element of a class or an instance table
# Such an elements represent method function pointers, attribute values, etc.
abstract class TableElt
-special AbsTableElt
+ super AbsTableElt
# Is the element conflict to class `c' (used for coloring)
fun is_related_to(c: MMLocalClass): Bool is abstract
# An element of a module table
# Such an elements represent colors or identifiers
abstract class ModuleTableElt
-special AbsTableElt
+ super AbsTableElt
end
# An element of a module table that represents a group of TableElt defined in the same local class
class ModuleTableEltGroup
-special ModuleTableElt
+ super ModuleTableElt
readable var _elements: Array[TableElt] = new Array[TableElt]
end
# An element that represents a class property
abstract class TableEltProp
-special TableElt
+ super TableElt
readable var _property: MMLocalProperty
init(p: MMLocalProperty)
# An element that represents a function pointer to a global method
class TableEltMeth
-special TableEltProp
+ super TableEltProp
end
# An element that represents a function pointer to the super method of a local method
class TableEltSuper
-special TableEltProp
+ super TableEltProp
end
# An element that represents the value stored for a global attribute
class TableEltAttr
-special TableEltProp
+ super TableEltProp
end
# An element representing a class information
class AbsTableEltClass
-special AbsTableElt
+ super AbsTableElt
# The local class where the information comes from
readable var _local_class: MMLocalClass
# An element of a class table representing a class information
class TableEltClass
-special TableElt
-special AbsTableEltClass
+ super TableElt
+ super AbsTableEltClass
redef fun is_related_to(c)
do
var bc = c.mmmodule[_local_class.global]
# An element representing the id of a class in a module table
class TableEltClassId
-special ModuleTableElt
-special AbsTableEltClass
+ super ModuleTableElt
+ super AbsTableEltClass
end
# An element representing the constructor marker position in a class table
class TableEltClassInitTable
-special TableEltClass
+ super TableEltClass
end
# An element used for a cast
# At the TableElt offset, there is the id of the super-class
# At the ModuleTableElt offset, there is the TableElt offset (ie. the color of the super-class).
class TableEltClassColor
-special TableEltClass
-special ModuleTableElt
+ super TableEltClass
+ super ModuleTableElt
end
# A Group of elements introduced in the same global-class that are colored together
class TableEltComposite
-special TableElt
+ super TableElt
var _table: Array[TableElt]
var _cc: CompiledClass
var _offsets: HashMap[MMLocalClass, Int]
# The element that represent the class id
class TableEltClassSelfId
-special TableElt
+ super TableElt
redef fun is_related_to(c) do return true
end
# The element that represent the Object Size
class TableEltClassObjectSize
-special TableElt
+ super TableElt
redef fun is_related_to(c) do return true
end
# The element that represent the object id
class TableEltObjectId
-special TableElt
+ super TableElt
redef fun is_related_to(c) do return true
end
# The element that
class TableEltVftPointer
-special TableElt
+ super TableElt
redef fun is_related_to(c) do return true
end
# A closure definition in a iroutine body
class IClosureDef
-special IRoutine
+ super IRoutine
init(p: Array[IRegister], r: nullable IRegister)
do
super(p, r)
# An icode that uses no registers (no args)
abstract class ICode0
-special ICode
+ super ICode
redef fun arity do return 0
end
# An icode that uses a single register (1 arg)
abstract class ICode1
-special ICode
+ super ICode
redef fun arity do return 1
# The single argument
# An icode that uses two single registers (2 args)
abstract class ICode2
-special ICode
+ super ICode
redef fun arity do return 2
# The first argument
# An icode that uses a variable number of registers (n args) and a variable number of closure definitions
abstract class ICodeN
-special ICode
+ super ICode
redef fun arity do return _exprs.length
# All arguments
# A linear sequence of ICode
class ISeq
-special ICode0
+ super ICode0
# The sequence of icode
readable var _icodes: List[ICode] = new List[ICode]
# An infinite loop of ICode
# Use IEscape to exit
class ILoop
-special ISeq
+ super ISeq
init do end
end
# A Condidianal if-then-else statement
# expr is the condition
class IIf
-special ICode1
+ super ICode1
# The 'then' sequence of icode
readable var _then_seq: ISeq = new ISeq
# The 'else' sequence of icode
# Escape to to end of a parent sequence
class IEscape
-special ICode0
+ super ICode0
# The seqeuence to escape
# The control flow continues at the next icode after the associated sequence
readable var _iescape_mark: IEscapeMark
# An abort statement
class IAbort
-special ICode0
+ super ICode0
# The reason the abort occured
# tests.first is the format
readable var _texts: Array[String]
# The root of all method invocations
abstract class IAbsCall
-special ICodeN
+ super ICodeN
# The called method
readable var _property: MMMethod
# A simple procedure or function call
# exprs.first is the reciever, other are arguments
class ICall
-special IAbsCall
+ super IAbsCall
init(p, e) do super
end
# A super method call
# exprs.first is the reciever, other are arguments
class ISuper
-special IAbsCall
+ super IAbsCall
init(p, e) do super
end
# - IStaticCall -> target Initializer
# - ICheckInstance
class INew
-special IAbsCall
+ super IAbsCall
# The type to instantiate
readable var _stype: MMType
init(t: MMType, p: MMMethod, a: Sequence[IRegister])
# No receivers, returns a new object of type 't'
# Will allocate memory and ensure dynamic type and object identity
class IAllocateInstance
-special ICode0
+ super ICode0
# The type to allocate
readable var _stype: MMType
init(t: MMType)
# A static call to a specific method
class IStaticCall
-special IAbsCall
+ super IAbsCall
init(p: MMMethod, a: Sequence[IRegister]) do super
end
# A validation of a newly constructed instance
class ICheckInstance
-special ICode1
+ super ICode1
# The type to allocate
readable var _stype: MMType
init(t: MMType, e: IRegister)
# Initialisation of default attributes of a new instance
class IInitAttributes
-special ICode1
+ super ICode1
# The type to initialize
readable var _stype: MMType
init(t: MMType, e: IRegister)
# A closure call
# exprs are the arguments
class IClosCall
-special ICodeN
+ super ICodeN
# The called closure
readable var _closure_decl: IClosureDecl
# Native are associated to local properties to distinguish them
# expr are the arguments
class INative
-special ICodeN
+ super ICodeN
# The associated local property
readable var _method: MMMethod
# A literal Int value
class IIntValue
-special ICode0
+ super ICode0
# The value
readable var _value: String
# A literal Bool value
class IBoolValue
-special ICode0
+ super ICode0
# The value
readable var _value: Bool
# A literal NativeString value
class IStringValue
-special ICode0
+ super ICode0
# The value
readable var _value: String
# A literal Float value
class IFloatValue
-special ICode0
+ super ICode0
# The value
readable var _value: String
# A literal Char value
class ICharValue
-special ICode0
+ super ICode0
# The value
readable var _value: String
# expr is the assigned value
# result is the register assigned
class IMove
-special ICode1
+ super ICode1
init(r: IRegister, e: IRegister)
do
super(e)
# An attribute read access
# expr is the reciever
class IAttrRead
-special ICode1
+ super ICode1
# The accessed attribute
readable var _property: MMAttribute
# An attribute assignment
# expr1 is the receiver, expr2 is the assigned value
class IAttrWrite
-special ICode2
+ super ICode2
# The accessed attribute
readable var _property: MMAttribute
# An attribute is_set check
# expr is the reciever
class IAttrIsset
-special ICode1
+ super ICode1
# The accessed attribute
readable var _property: MMAttribute
# A type check
# expr is the expression checked
class ITypeCheck
-special ICode1
+ super ICode1
# The static type checkes to
readable var _stype: MMType
# The 'is' operator
# expr1 and expr2 are both operands
class IIs
-special ICode2
+ super ICode2
init(e1, e2: IRegister)
do
super
# The unary 'not' operation
# expr is the operand
class INot
-special ICode1
+ super ICode1
init(e: IRegister)
do
super
# Evaluate body once them return the same value again and again
# if result is not null, then it must also be assigned in the body
class IOnce
-special ICode0
+ super ICode0
readable var _body: ISeq = new ISeq
init do end
end
# Is a closure given as a parameter?
class IHasClos
-special ICode0
+ super ICode0
# The called closure
readable var _closure_decl: IClosureDecl
package location
class Location
-special Comparable
+ super Comparable
redef type OTHER: Location
readable var _file: String
end
end
-# A module is a NIT package
+# A module is a Nit file
class MMModule
# Global context
readable var _context: MMContext
# Is the global class an abstract class?
readable writable var _is_abstract: Bool = false
- # Is the global class a universal class?
- readable writable var _is_universal: Bool = false
+ # Is the global class a enum class?
+ readable writable var _is_enum: Bool = false
# Visibility of the global class
# 1 -> public
# Attribute local properties
class MMAttribute
-special MMLocalProperty
+ super MMLocalProperty
end
# Method local properties
class MMMethod
-special MMLocalProperty
+ super MMLocalProperty
# Is the method defined with intern
fun is_intern: Bool is abstract
# Concrete local classes
class MMConcreteClass
-special MMLocalClass
+ super MMLocalClass
end
end
class MMTypeGeneric
-special MMTypeClass
+ super MMTypeClass
# Formal arguments
readable var _params: Array[MMType]
end
class MMTypeFormalParameter
-special MMTypeFormal
+ super MMTypeFormal
# The class where self is defined
readable var _def_class: MMLocalClass
# A local class that is a pure importation of an other local class
class MMImplicitLocalClass
-special MMLocalClass
+ super MMLocalClass
init(mod: MMModule, g: MMGlobalClass)
do
var cla = g.intro
end
class MMRefineAncestor
-special MMAncestor
+ super MMAncestor
redef readable var _local_class: MMLocalClass
init(b: MMLocalClass, a: MMLocalClass)
class MMSpecAncestor
-special MMAncestor
+ super MMAncestor
redef fun local_class do return stype.local_class
init(inheriter: MMType, stype: MMType)
end
class MMDefaultAncestor
-special MMAncestor
+ super MMAncestor
redef fun local_class do return stype.local_class
init(b: MMLocalClass, anc: MMType)
# Handles partial ordered sets (ie hierarchies)
# Thez are built by adding new element at the bottom of the hierarchy
class PartialOrder[E: Object]
-special Collection[E]
+ super Collection[E]
# Elements
var _elements: Map[E, PartialOrderElement[E]]
end
class MMNullableType
-special MMType
+ super MMType
var _base_type: MMType
redef fun is_valid do return _base_type.is_valid
redef fun is_nullable: Bool do return true
end
class MMTypeClass
-special MMType
+ super MMType
redef readable var _local_class: MMLocalClass
redef fun mmmodule do return _local_class.mmmodule end
redef fun <(t) do return t.is_supertype(self)
end
class MMTypeSimpleClass
-special MMTypeClass
+ super MMTypeClass
redef fun is_supertype(t)
do
return t.local_class.cshe <= _local_class
# The type of null
class MMTypeNone
-special MMType
+ super MMType
redef readable var _mmmodule: MMModule
redef fun is_nullable: Bool do return true
redef fun <(t) do return t isa MMTypeNone or t isa MMNullableType
# Formal types are named indirect types
class MMTypeFormal
-special MMType
+ super MMType
redef fun is_valid do return _bound != null and _bound.is_valid
# The name of the type
# Virtual type properties
class MMTypeProperty
-special MMLocalProperty
+ super MMLocalProperty
# The virtual static type associated
fun stype_for(recv: MMType): nullable MMVirtualType
do
end
class MMVirtualType
-special MMTypeFormal
+ super MMTypeFormal
# The property associed
readable var _property: MMTypeProperty
# See the License for the specific language governing permissions and
# limitations under the License.
-# This package is used to load a metamodel
+# This module is used to load a metamodel
package mmloader
import metamodel
import location
class Message
-special Comparable
+ super Comparable
redef type OTHER: Message
readable var _location: nullable Location
# Global context for tools
class ToolContext
-special MMContext
+ super MMContext
# Number of errors
readable var _error_count: Int = 0
# The main class of the nitcompiler program
class NitCompiler
-special AbstractCompiler
+ super AbstractCompiler
readable var _opt_output: OptionString = new OptionString("Output file", "-o", "--output")
readable var _opt_boost: OptionBool = new OptionBool("Optimize compilation", "-O", "--boost")
readable var _opt_no_cc: OptionBool = new OptionBool("Do not invoke C compiler", "--no-cc")
# Store knowledge and facilities to generate files
class DocContext
-special AbstractCompiler
+ super AbstractCompiler
# Destination directory
readable writable var _dir: String = "."
# Efficiently sort object with their to_s method
class AlphaSorter[E: Object]
-special AbstractSorter[E]
+ super AbstractSorter[E]
redef fun compare(a, b)
do
var sa: String
end
redef class MMModule
-special MMEntity
+ super MMEntity
redef fun html_link(dctx) do
if dctx.mmmodule == self then
return "{self}"
end
redef class MMLocalProperty
-special MMEntity
+ super MMEntity
# Anchor of the property description in the module html file
fun html_anchor: String
do
end
redef class MMLocalClass
-special MMEntity
+ super MMEntity
# Anchor of the class description in the module html file
fun html_anchor: String do return "CLASS_{self}"
end
end
-redef class TKwuniversal
+redef class TKwenum
redef fun parser_index: Int
do
return 7
end
- init init_tk(loc: Location)
+ init init_tk(text: String, loc: Location)
do
- _text = once "universal"
+ _text = text
_location = loc
end
end
# The lexer extract NIT tokens from an input stream.
# It is better user with the Parser
class Lexer
-special TablesCapable
+ super TablesCapable
# Last peeked token
var _token: nullable Token
return new TKwinterface.init_tk(location)
end
if accept_token == 8 then
- return new TKwuniversal.init_tk(location)
+ var token_text = text.substring(0, accept_length)
+ return new TKwenum.init_tk(token_text, location)
end
if accept_token == 9 then
return new TKwspecial.init_tk(location)
kwclass = 'class';
kwabstract = 'abstract';
kwinterface = 'interface';
-kwuniversal = 'universal';
+kwenum = 'universal'|'enum';
kwspecial = 'special';
kwend = 'end';
kwmeth = 'fun';
= {concrete} kwclass
| {abstract} kwabstract kwclass
| {interface} kwinterface
- | {universal} kwuniversal
+ | {enum} kwenum
;
formaldefs {-> formaldef*}
= {concrete} kwclass
| {abstract} kwabstract kwclass
| {interface} kwinterface
- | {universal} kwuniversal
+ | {enum} kwenum
;
formaldef = [id]:classid type?;
superclass = kwspecial? kwsuper? type;
end
class Parser
-special TablesCapable
+ super TablesCapable
# Associated lexer
var _lexer: Lexer
# Find location of production nodes
# Uses existing token locations to infer location of productions.
private class ComputeProdLocationVisitor
-special Visitor
+ super Visitor
# Currenlty visited productions that need a first token
var _need_first_prods: Array[Prod] = new Array[Prod]
end
private class ReduceAction0
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction1
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction2
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction3
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction4
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction5
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction6
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction7
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction8
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction9
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction10
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction11
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction12
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction13
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction14
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction15
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction16
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction17
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction18
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction19
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction20
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction21
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction22
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction23
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction24
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction25
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction26
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction27
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction28
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction29
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction30
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction31
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction32
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction33
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction34
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction35
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction36
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction37
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction39
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction40
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction41
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction42
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction43
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction44
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction45
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction46
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction47
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction48
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction49
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction50
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction51
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction52
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction53
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction54
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction55
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction56
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction57
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction58
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
var nodearraylist1 = p.pop
- var tkwuniversalnode2 = nodearraylist1
- assert tkwuniversalnode2 isa nullable TKwuniversal
- var pclasskindnode1: nullable AUniversalClasskind = new AUniversalClasskind.init_auniversalclasskind(
- tkwuniversalnode2
+ var tkwenumnode2 = nodearraylist1
+ assert tkwenumnode2 isa nullable TKwenum
+ var pclasskindnode1: nullable AEnumClasskind = new AEnumClasskind.init_aenumclasskind(
+ tkwenumnode2
)
node_list = pclasskindnode1
p.push(p.go_to(_goto), node_list)
init(g: Int) do _goto = g
end
private class ReduceAction59
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction60
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction61
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction62
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction63
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction64
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction65
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction66
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction67
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction68
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction69
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction70
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction71
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction72
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction73
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction74
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction75
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction76
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction77
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction78
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction79
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction80
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction81
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction82
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction83
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction84
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction85
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction86
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction87
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction88
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction89
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction90
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction91
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction92
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction93
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction94
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction95
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction96
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction97
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction98
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction99
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction100
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction101
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction102
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction103
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction104
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction105
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction106
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction107
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction108
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction109
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction110
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction111
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction112
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction113
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction114
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction115
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction116
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction117
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction118
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction119
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction120
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction121
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction122
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction123
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction124
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction125
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction126
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction127
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction128
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction129
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction130
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction131
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction132
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction133
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction134
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction135
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction136
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction137
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction138
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction139
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction140
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction141
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction142
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction143
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction144
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction145
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction146
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction147
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction148
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction149
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction150
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction151
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction152
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction153
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction154
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction155
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction156
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction157
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction158
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction159
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction160
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction161
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction162
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction163
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction164
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction165
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction166
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction167
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction168
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction169
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction170
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction171
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction172
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction173
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction174
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction175
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction176
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction177
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction178
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction179
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction180
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction181
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction182
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction183
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction184
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction185
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction186
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction187
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction188
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction189
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction190
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction191
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction192
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction193
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction194
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction195
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction196
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction197
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction198
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction199
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction200
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction202
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction203
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction204
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction205
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction206
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction207
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction208
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction209
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction210
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction213
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction214
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction215
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction216
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction217
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction218
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction219
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction220
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction221
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction222
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction223
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction230
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction231
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction232
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction233
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction234
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction235
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction236
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction237
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction238
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction239
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction240
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction241
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction242
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction243
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction244
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction245
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction246
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction247
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction248
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction249
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction250
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction251
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction252
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction253
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction254
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction255
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction256
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction257
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction258
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction259
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction260
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction261
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction262
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction263
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction264
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction265
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction266
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction267
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction268
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction269
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction270
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction271
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction272
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction273
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction274
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction275
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction276
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction279
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction280
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction281
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction282
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction283
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction284
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction285
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction286
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction287
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction288
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction289
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction293
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction295
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction297
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction298
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction299
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction301
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction303
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction304
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction305
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction306
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction307
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction308
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction309
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction310
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction311
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction312
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction313
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction315
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction316
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction318
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction319
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction320
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction322
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction323
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction325
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction326
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction327
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction328
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction329
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction336
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction337
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction338
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction339
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction340
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction341
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction342
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction343
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction344
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction345
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction346
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction347
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction348
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction351
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction352
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction353
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction354
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction355
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction356
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction358
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction359
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction360
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction361
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction363
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction366
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction371
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction372
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction373
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction374
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction375
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction376
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction377
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction378
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction379
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction380
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction381
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction383
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction384
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction386
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction387
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction388
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction389
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction637
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction638
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction639
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction642
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction655
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction656
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction663
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction664
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction665
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction666
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction667
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction668
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction669
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction670
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction673
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction674
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction675
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction676
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction677
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction678
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction680
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction682
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction684
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction688
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction689
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction690
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction691
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
init(g: Int) do _goto = g
end
private class ReduceAction692
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
# Ancestor of all tokens
abstract class Token
-special ANode
+ super ANode
end
# Ancestor of all productions
abstract class Prod
-special ANode
+ super ANode
fun location=(loc: Location) do _location = loc
end
class TEol
-special Token
+ super Token
end
class TComment
-special Token
+ super Token
end
class TKwmodule
-special Token
+ super Token
end
class TKwimport
-special Token
+ super Token
end
class TKwclass
-special Token
+ super Token
end
class TKwabstract
-special Token
+ super Token
end
class TKwinterface
-special Token
+ super Token
end
-class TKwuniversal
-special Token
+class TKwenum
+ super Token
end
class TKwspecial
-special Token
+ super Token
end
class TKwend
-special Token
+ super Token
end
class TKwmeth
-special Token
+ super Token
end
class TKwtype
-special Token
+ super Token
end
class TKwinit
-special Token
+ super Token
end
class TKwredef
-special Token
+ super Token
end
class TKwis
-special Token
+ super Token
end
class TKwdo
-special Token
+ super Token
end
class TKwreadable
-special Token
+ super Token
end
class TKwwritable
-special Token
+ super Token
end
class TKwvar
-special Token
+ super Token
end
class TKwintern
-special Token
+ super Token
end
class TKwextern
-special Token
+ super Token
end
class TKwprotected
-special Token
+ super Token
end
class TKwprivate
-special Token
+ super Token
end
class TKwintrude
-special Token
+ super Token
end
class TKwif
-special Token
+ super Token
end
class TKwthen
-special Token
+ super Token
end
class TKwelse
-special Token
+ super Token
end
class TKwwhile
-special Token
+ super Token
end
class TKwloop
-special Token
+ super Token
end
class TKwfor
-special Token
+ super Token
end
class TKwin
-special Token
+ super Token
end
class TKwand
-special Token
+ super Token
end
class TKwor
-special Token
+ super Token
end
class TKwnot
-special Token
+ super Token
end
class TKwreturn
-special Token
+ super Token
end
class TKwcontinue
-special Token
+ super Token
end
class TKwbreak
-special Token
+ super Token
end
class TKwabort
-special Token
+ super Token
end
class TKwassert
-special Token
+ super Token
end
class TKwnew
-special Token
+ super Token
end
class TKwisa
-special Token
+ super Token
end
class TKwonce
-special Token
+ super Token
end
class TKwsuper
-special Token
+ super Token
end
class TKwself
-special Token
+ super Token
end
class TKwtrue
-special Token
+ super Token
end
class TKwfalse
-special Token
+ super Token
end
class TKwnull
-special Token
+ super Token
end
class TKwas
-special Token
+ super Token
end
class TKwnullable
-special Token
+ super Token
end
class TKwisset
-special Token
+ super Token
end
class TKwlabel
-special Token
+ super Token
end
class TOpar
-special Token
+ super Token
end
class TCpar
-special Token
+ super Token
end
class TObra
-special Token
+ super Token
end
class TCbra
-special Token
+ super Token
end
class TComma
-special Token
+ super Token
end
class TColumn
-special Token
+ super Token
end
class TQuad
-special Token
+ super Token
end
class TAssign
-special Token
+ super Token
end
class TPluseq
-special Token
+ super Token
end
class TMinuseq
-special Token
+ super Token
end
class TDotdotdot
-special Token
+ super Token
end
class TDotdot
-special Token
+ super Token
end
class TDot
-special Token
+ super Token
end
class TPlus
-special Token
+ super Token
end
class TMinus
-special Token
+ super Token
end
class TStar
-special Token
+ super Token
end
class TSlash
-special Token
+ super Token
end
class TPercent
-special Token
+ super Token
end
class TEq
-special Token
+ super Token
end
class TNe
-special Token
+ super Token
end
class TLt
-special Token
+ super Token
end
class TLe
-special Token
+ super Token
end
class TLl
-special Token
+ super Token
end
class TGt
-special Token
+ super Token
end
class TGe
-special Token
+ super Token
end
class TGg
-special Token
+ super Token
end
class TStarship
-special Token
+ super Token
end
class TBang
-special Token
+ super Token
end
class TClassid
-special Token
+ super Token
end
class TId
-special Token
+ super Token
end
class TAttrid
-special Token
+ super Token
end
class TNumber
-special Token
+ super Token
end
class TFloat
-special Token
+ super Token
end
class TChar
-special Token
+ super Token
end
class TString
-special Token
+ super Token
end
class TStartString
-special Token
+ super Token
end
class TMidString
-special Token
+ super Token
end
class TEndString
-special Token
+ super Token
end
class EOF
-special Token
+ super Token
private init noinit do end
end
class AError
-special EOF
+ super EOF
private init noinit do end
end
-class AModule special Prod end
-class AModuledecl special Prod end
-class AImport special Prod end
-class AVisibility special Prod end
-class AClassdef special Prod end
-class AClasskind special Prod end
-class AFormaldef special Prod end
-class ASuperclass special Prod end
-class APropdef special Prod end
-class AAble special Prod end
-class AMethid special Prod end
-class ASignature special Prod end
-class AParam special Prod end
-class AClosureDecl special Prod end
-class AType special Prod end
-class ALabel special Prod end
-class AExpr special Prod end
-class AAssignOp special Prod end
-class AClosureDef special Prod end
-class AClosureId special Prod end
-class AQualified special Prod end
-class ADoc special Prod end
+class AModule super Prod end
+class AModuledecl super Prod end
+class AImport super Prod end
+class AVisibility super Prod end
+class AClassdef super Prod end
+class AClasskind super Prod end
+class AFormaldef super Prod end
+class ASuperclass super Prod end
+class APropdef super Prod end
+class AAble super Prod end
+class AMethid super Prod end
+class ASignature super Prod end
+class AParam super Prod end
+class AClosureDecl super Prod end
+class AType super Prod end
+class ALabel super Prod end
+class AExpr super Prod end
+class AAssignOp super Prod end
+class AClosureDef super Prod end
+class AClosureId super Prod end
+class AQualified super Prod end
+class ADoc super Prod end
class AModule
-special AModule
+ super AModule
readable var _n_moduledecl: nullable AModuledecl = null
readable var _n_imports: List[AImport] = new List[AImport]
readable var _n_classdefs: List[AClassdef] = new List[AClassdef]
end
class AModuledecl
-special AModuledecl
+ super AModuledecl
readable var _n_doc: nullable ADoc = null
readable var _n_kwmodule: TKwmodule
readable var _n_id: TId
end
class AStdImport
-special AImport
+ super AImport
readable var _n_visibility: AVisibility
readable var _n_kwimport: TKwimport
readable var _n_id: TId
end
class ANoImport
-special AImport
+ super AImport
readable var _n_visibility: AVisibility
readable var _n_kwimport: TKwimport
readable var _n_kwend: TKwend
end
class APublicVisibility
-special AVisibility
+ super AVisibility
end
class APrivateVisibility
-special AVisibility
+ super AVisibility
readable var _n_kwprivate: TKwprivate
end
class AProtectedVisibility
-special AVisibility
+ super AVisibility
readable var _n_kwprotected: TKwprotected
end
class AIntrudeVisibility
-special AVisibility
+ super AVisibility
readable var _n_kwintrude: TKwintrude
end
class AStdClassdef
-special AClassdef
+ super AClassdef
readable var _n_doc: nullable ADoc = null
readable var _n_kwredef: nullable TKwredef = null
readable var _n_visibility: AVisibility
readable var _n_propdefs: List[APropdef] = new List[APropdef]
end
class ATopClassdef
-special AClassdef
+ super AClassdef
readable var _n_propdefs: List[APropdef] = new List[APropdef]
end
class AMainClassdef
-special AClassdef
+ super AClassdef
readable var _n_propdefs: List[APropdef] = new List[APropdef]
end
class AConcreteClasskind
-special AClasskind
+ super AClasskind
readable var _n_kwclass: TKwclass
end
class AAbstractClasskind
-special AClasskind
+ super AClasskind
readable var _n_kwabstract: TKwabstract
readable var _n_kwclass: TKwclass
end
class AInterfaceClasskind
-special AClasskind
+ super AClasskind
readable var _n_kwinterface: TKwinterface
end
-class AUniversalClasskind
-special AClasskind
- readable var _n_kwuniversal: TKwuniversal
+class AEnumClasskind
+ super AClasskind
+ readable var _n_kwenum: TKwenum
end
class AFormaldef
-special AFormaldef
+ super AFormaldef
readable var _n_id: TClassid
readable var _n_type: nullable AType = null
end
class ASuperclass
-special ASuperclass
+ super ASuperclass
readable var _n_kwspecial: nullable TKwspecial = null
readable var _n_kwsuper: nullable TKwsuper = null
readable var _n_type: AType
end
class AAttrPropdef
-special APropdef
+ super APropdef
readable var _n_doc: nullable ADoc = null
readable var _n_readable: nullable AAble = null
readable var _n_writable: nullable AAble = null
readable var _n_expr: nullable AExpr = null
end
class AMethPropdef
-special APropdef
+ super APropdef
readable var _n_doc: nullable ADoc = null
readable var _n_kwredef: nullable TKwredef = null
readable var _n_visibility: AVisibility
readable var _n_signature: ASignature
end
class ADeferredMethPropdef
-special APropdef
+ super APropdef
readable var _n_doc: nullable ADoc = null
readable var _n_kwredef: nullable TKwredef = null
readable var _n_visibility: AVisibility
readable var _n_signature: ASignature
end
class AInternMethPropdef
-special APropdef
+ super APropdef
readable var _n_doc: nullable ADoc = null
readable var _n_kwredef: nullable TKwredef = null
readable var _n_visibility: AVisibility
readable var _n_signature: ASignature
end
class AExternMethPropdef
-special APropdef
+ super APropdef
readable var _n_doc: nullable ADoc = null
readable var _n_kwredef: nullable TKwredef = null
readable var _n_visibility: AVisibility
readable var _n_extern: nullable TString = null
end
class AConcreteMethPropdef
-special APropdef
+ super APropdef
readable var _n_doc: nullable ADoc = null
readable var _n_kwredef: nullable TKwredef = null
readable var _n_visibility: AVisibility
readable var _n_block: nullable AExpr = null
end
class AConcreteInitPropdef
-special APropdef
+ super APropdef
readable var _n_doc: nullable ADoc = null
readable var _n_kwredef: nullable TKwredef = null
readable var _n_visibility: AVisibility
readable var _n_block: nullable AExpr = null
end
class AMainMethPropdef
-special APropdef
+ super APropdef
readable var _n_kwredef: nullable TKwredef = null
readable var _n_block: nullable AExpr = null
end
class ATypePropdef
-special APropdef
+ super APropdef
readable var _n_doc: nullable ADoc = null
readable var _n_kwredef: nullable TKwredef = null
readable var _n_visibility: AVisibility
readable var _n_type: AType
end
class AReadAble
-special AAble
+ super AAble
readable var _n_kwredef: nullable TKwredef = null
readable var _n_kwreadable: TKwreadable
end
class AWriteAble
-special AAble
+ super AAble
readable var _n_kwredef: nullable TKwredef = null
readable var _n_visibility: nullable AVisibility = null
readable var _n_kwwritable: TKwwritable
end
class AIdMethid
-special AMethid
+ super AMethid
readable var _n_id: TId
end
class APlusMethid
-special AMethid
+ super AMethid
readable var _n_plus: TPlus
end
class AMinusMethid
-special AMethid
+ super AMethid
readable var _n_minus: TMinus
end
class AStarMethid
-special AMethid
+ super AMethid
readable var _n_star: TStar
end
class ASlashMethid
-special AMethid
+ super AMethid
readable var _n_slash: TSlash
end
class APercentMethid
-special AMethid
+ super AMethid
readable var _n_percent: TPercent
end
class AEqMethid
-special AMethid
+ super AMethid
readable var _n_eq: TEq
end
class ANeMethid
-special AMethid
+ super AMethid
readable var _n_ne: TNe
end
class ALeMethid
-special AMethid
+ super AMethid
readable var _n_le: TLe
end
class AGeMethid
-special AMethid
+ super AMethid
readable var _n_ge: TGe
end
class ALtMethid
-special AMethid
+ super AMethid
readable var _n_lt: TLt
end
class AGtMethid
-special AMethid
+ super AMethid
readable var _n_gt: TGt
end
class ALlMethid
-special AMethid
+ super AMethid
readable var _n_ll: TLl
end
class AGgMethid
-special AMethid
+ super AMethid
readable var _n_gg: TGg
end
class ABraMethid
-special AMethid
+ super AMethid
readable var _n_obra: TObra
readable var _n_cbra: TCbra
end
class AStarshipMethid
-special AMethid
+ super AMethid
readable var _n_starship: TStarship
end
class AAssignMethid
-special AMethid
+ super AMethid
readable var _n_id: TId
readable var _n_assign: TAssign
end
class ABraassignMethid
-special AMethid
+ super AMethid
readable var _n_obra: TObra
readable var _n_cbra: TCbra
readable var _n_assign: TAssign
end
class ASignature
-special ASignature
+ super ASignature
readable var _n_params: List[AParam] = new List[AParam]
readable var _n_type: nullable AType = null
readable var _n_closure_decls: List[AClosureDecl] = new List[AClosureDecl]
end
class AParam
-special AParam
+ super AParam
readable var _n_id: TId
readable var _n_type: nullable AType = null
readable var _n_dotdotdot: nullable TDotdotdot = null
end
class AClosureDecl
-special AClosureDecl
+ super AClosureDecl
readable var _n_kwbreak: nullable TKwbreak = null
readable var _n_bang: TBang
readable var _n_id: TId
readable var _n_expr: nullable AExpr = null
end
class AType
-special AType
+ super AType
readable var _n_kwnullable: nullable TKwnullable = null
readable var _n_id: TClassid
readable var _n_types: List[AType] = new List[AType]
end
class ALabel
-special ALabel
+ super ALabel
readable var _n_kwlabel: TKwlabel
readable var _n_id: TId
end
class ABlockExpr
-special AExpr
+ super AExpr
readable var _n_expr: List[AExpr] = new List[AExpr]
end
class AVardeclExpr
-special AExpr
+ super AExpr
readable var _n_kwvar: TKwvar
readable var _n_id: TId
readable var _n_type: nullable AType = null
readable var _n_expr: nullable AExpr = null
end
class AReturnExpr
-special AExpr
+ super AExpr
readable var _n_kwreturn: nullable TKwreturn = null
readable var _n_expr: nullable AExpr = null
end
class ABreakExpr
-special AExpr
+ super AExpr
readable var _n_kwbreak: TKwbreak
readable var _n_label: nullable ALabel = null
readable var _n_expr: nullable AExpr = null
end
class AAbortExpr
-special AExpr
+ super AExpr
readable var _n_kwabort: TKwabort
end
class AContinueExpr
-special AExpr
+ super AExpr
readable var _n_kwcontinue: nullable TKwcontinue = null
readable var _n_label: nullable ALabel = null
readable var _n_expr: nullable AExpr = null
end
class ADoExpr
-special AExpr
+ super AExpr
readable var _n_kwdo: TKwdo
readable var _n_block: nullable AExpr = null
readable var _n_label: nullable ALabel = null
end
class AIfExpr
-special AExpr
+ super AExpr
readable var _n_kwif: TKwif
readable var _n_expr: AExpr
readable var _n_then: nullable AExpr = null
readable var _n_else: nullable AExpr = null
end
class AIfexprExpr
-special AExpr
+ super AExpr
readable var _n_kwif: TKwif
readable var _n_expr: AExpr
readable var _n_kwthen: TKwthen
readable var _n_else: AExpr
end
class AWhileExpr
-special AExpr
+ super AExpr
readable var _n_kwwhile: TKwwhile
readable var _n_expr: AExpr
readable var _n_kwdo: TKwdo
readable var _n_label: nullable ALabel = null
end
class ALoopExpr
-special AExpr
+ super AExpr
readable var _n_kwloop: TKwloop
readable var _n_block: nullable AExpr = null
readable var _n_label: nullable ALabel = null
end
class AForExpr
-special AExpr
+ super AExpr
readable var _n_kwfor: TKwfor
readable var _n_id: TId
readable var _n_expr: AExpr
readable var _n_label: nullable ALabel = null
end
class AAssertExpr
-special AExpr
+ super AExpr
readable var _n_kwassert: TKwassert
readable var _n_id: nullable TId = null
readable var _n_expr: AExpr
readable var _n_else: nullable AExpr = null
end
class AOnceExpr
-special AExpr
+ super AExpr
readable var _n_kwonce: TKwonce
readable var _n_expr: AExpr
end
class ASendExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
end
class ABinopExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AOrExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AAndExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AOrElseExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class ANotExpr
-special AExpr
+ super AExpr
readable var _n_kwnot: TKwnot
readable var _n_expr: AExpr
end
class AEqExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AEeExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class ANeExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class ALtExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class ALeExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class ALlExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AGtExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AGeExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AGgExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AIsaExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_type: AType
end
class APlusExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AMinusExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AStarshipExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AStarExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class ASlashExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class APercentExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AUminusExpr
-special AExpr
+ super AExpr
readable var _n_minus: TMinus
readable var _n_expr: AExpr
end
class ANewExpr
-special AExpr
+ super AExpr
readable var _n_kwnew: TKwnew
readable var _n_type: AType
readable var _n_id: nullable TId = null
readable var _n_args: List[AExpr] = new List[AExpr]
end
class AAttrExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_id: TAttrid
end
class AAttrAssignExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_id: TAttrid
readable var _n_assign: TAssign
readable var _n_value: AExpr
end
class AAttrReassignExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_id: TAttrid
readable var _n_assign_op: AAssignOp
readable var _n_value: AExpr
end
class ACallExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_id: TId
readable var _n_args: List[AExpr] = new List[AExpr]
readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
end
class ACallAssignExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_id: TId
readable var _n_args: List[AExpr] = new List[AExpr]
readable var _n_value: AExpr
end
class ACallReassignExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_id: TId
readable var _n_args: List[AExpr] = new List[AExpr]
readable var _n_value: AExpr
end
class ASuperExpr
-special AExpr
+ super AExpr
readable var _n_qualified: nullable AQualified = null
readable var _n_kwsuper: TKwsuper
readable var _n_args: List[AExpr] = new List[AExpr]
end
class AInitExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_kwinit: TKwinit
readable var _n_args: List[AExpr] = new List[AExpr]
end
class ABraExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_args: List[AExpr] = new List[AExpr]
readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
end
class ABraAssignExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_args: List[AExpr] = new List[AExpr]
readable var _n_assign: TAssign
readable var _n_value: AExpr
end
class ABraReassignExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_args: List[AExpr] = new List[AExpr]
readable var _n_assign_op: AAssignOp
readable var _n_value: AExpr
end
class AClosureCallExpr
-special AExpr
+ super AExpr
readable var _n_id: TId
readable var _n_args: List[AExpr] = new List[AExpr]
readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
end
class AVarExpr
-special AExpr
+ super AExpr
readable var _n_id: TId
end
class AVarAssignExpr
-special AExpr
+ super AExpr
readable var _n_id: TId
readable var _n_assign: TAssign
readable var _n_value: AExpr
end
class AVarReassignExpr
-special AExpr
+ super AExpr
readable var _n_id: TId
readable var _n_assign_op: AAssignOp
readable var _n_value: AExpr
end
class ARangeExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class ACrangeExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AOrangeExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AArrayExpr
-special AExpr
+ super AExpr
readable var _n_exprs: List[AExpr] = new List[AExpr]
end
class ASelfExpr
-special AExpr
+ super AExpr
readable var _n_kwself: TKwself
end
class AImplicitSelfExpr
-special AExpr
+ super AExpr
end
class ATrueExpr
-special AExpr
+ super AExpr
readable var _n_kwtrue: TKwtrue
end
class AFalseExpr
-special AExpr
+ super AExpr
readable var _n_kwfalse: TKwfalse
end
class ANullExpr
-special AExpr
+ super AExpr
readable var _n_kwnull: TKwnull
end
class AIntExpr
-special AExpr
+ super AExpr
readable var _n_number: TNumber
end
class AFloatExpr
-special AExpr
+ super AExpr
readable var _n_float: TFloat
end
class ACharExpr
-special AExpr
+ super AExpr
readable var _n_char: TChar
end
class AStringExpr
-special AExpr
+ super AExpr
readable var _n_string: TString
end
class AStartStringExpr
-special AExpr
+ super AExpr
readable var _n_string: TStartString
end
class AMidStringExpr
-special AExpr
+ super AExpr
readable var _n_string: TMidString
end
class AEndStringExpr
-special AExpr
+ super AExpr
readable var _n_string: TEndString
end
class ASuperstringExpr
-special AExpr
+ super AExpr
readable var _n_exprs: List[AExpr] = new List[AExpr]
end
class AParExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
end
class AAsCastExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_kwas: TKwas
readable var _n_type: AType
end
class AAsNotnullExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_kwas: TKwas
readable var _n_kwnot: TKwnot
readable var _n_kwnull: TKwnull
end
class AIssetAttrExpr
-special AExpr
+ super AExpr
readable var _n_kwisset: TKwisset
readable var _n_expr: AExpr
readable var _n_id: TAttrid
end
class APlusAssignOp
-special AAssignOp
+ super AAssignOp
readable var _n_pluseq: TPluseq
end
class AMinusAssignOp
-special AAssignOp
+ super AAssignOp
readable var _n_minuseq: TMinuseq
end
class AClosureDef
-special AClosureDef
+ super AClosureDef
readable var _n_bang: TBang
readable var _n_id: AClosureId
readable var _n_ids: List[TId] = new List[TId]
readable var _n_label: nullable ALabel = null
end
class ASimpleClosureId
-special AClosureId
+ super AClosureId
readable var _n_id: TId
end
class ABreakClosureId
-special AClosureId
+ super AClosureId
readable var _n_kwbreak: TKwbreak
end
class AQualified
-special AQualified
+ super AQualified
readable var _n_id: List[TId] = new List[TId]
readable var _n_classid: nullable TClassid = null
end
class ADoc
-special ADoc
+ super ADoc
readable var _n_comment: List[TComment] = new List[TComment]
end
class Start
-special Prod
+ super Prod
readable var _n_base: nullable AModule
readable var _n_eof: EOF
end
# Ancestor of all tokens
abstract class Token
-special ANode
+ super ANode
end
# Ancestor of all productions
abstract class Prod
-special ANode
+ super ANode
fun location=(l: Location) do _location = l
end
class TEol
-special Token
+ super Token
end
class TComment
-special Token
+ super Token
end
class TKwmodule
-special Token
+ super Token
end
class TKwimport
-special Token
+ super Token
end
class TKwclass
-special Token
+ super Token
end
class TKwabstract
-special Token
+ super Token
end
class TKwinterface
-special Token
+ super Token
end
-class TKwuniversal
-special Token
+class TKwenum
+ super Token
end
class TKwspecial
-special Token
+ super Token
end
class TKwend
-special Token
+ super Token
end
class TKwmeth
-special Token
+ super Token
end
class TKwtype
-special Token
+ super Token
end
class TKwinit
-special Token
+ super Token
end
class TKwredef
-special Token
+ super Token
end
class TKwis
-special Token
+ super Token
end
class TKwdo
-special Token
+ super Token
end
class TKwreadable
-special Token
+ super Token
end
class TKwwritable
-special Token
+ super Token
end
class TKwvar
-special Token
+ super Token
end
class TKwintern
-special Token
+ super Token
end
class TKwextern
-special Token
+ super Token
end
class TKwprotected
-special Token
+ super Token
end
class TKwprivate
-special Token
+ super Token
end
class TKwintrude
-special Token
+ super Token
end
class TKwif
-special Token
+ super Token
end
class TKwthen
-special Token
+ super Token
end
class TKwelse
-special Token
+ super Token
end
class TKwwhile
-special Token
+ super Token
end
class TKwloop
-special Token
+ super Token
end
class TKwfor
-special Token
+ super Token
end
class TKwin
-special Token
+ super Token
end
class TKwand
-special Token
+ super Token
end
class TKwor
-special Token
+ super Token
end
class TKwnot
-special Token
+ super Token
end
class TKwreturn
-special Token
+ super Token
end
class TKwcontinue
-special Token
+ super Token
end
class TKwbreak
-special Token
+ super Token
end
class TKwabort
-special Token
+ super Token
end
class TKwassert
-special Token
+ super Token
end
class TKwnew
-special Token
+ super Token
end
class TKwisa
-special Token
+ super Token
end
class TKwonce
-special Token
+ super Token
end
class TKwsuper
-special Token
+ super Token
end
class TKwself
-special Token
+ super Token
end
class TKwtrue
-special Token
+ super Token
end
class TKwfalse
-special Token
+ super Token
end
class TKwnull
-special Token
+ super Token
end
class TKwas
-special Token
+ super Token
end
class TKwnullable
-special Token
+ super Token
end
class TKwisset
-special Token
+ super Token
end
class TKwlabel
-special Token
+ super Token
end
class TOpar
-special Token
+ super Token
end
class TCpar
-special Token
+ super Token
end
class TObra
-special Token
+ super Token
end
class TCbra
-special Token
+ super Token
end
class TComma
-special Token
+ super Token
end
class TColumn
-special Token
+ super Token
end
class TQuad
-special Token
+ super Token
end
class TAssign
-special Token
+ super Token
end
class TPluseq
-special Token
+ super Token
end
class TMinuseq
-special Token
+ super Token
end
class TDotdotdot
-special Token
+ super Token
end
class TDotdot
-special Token
+ super Token
end
class TDot
-special Token
+ super Token
end
class TPlus
-special Token
+ super Token
end
class TMinus
-special Token
+ super Token
end
class TStar
-special Token
+ super Token
end
class TSlash
-special Token
+ super Token
end
class TPercent
-special Token
+ super Token
end
class TEq
-special Token
+ super Token
end
class TNe
-special Token
+ super Token
end
class TLt
-special Token
+ super Token
end
class TLe
-special Token
+ super Token
end
class TLl
-special Token
+ super Token
end
class TGt
-special Token
+ super Token
end
class TGe
-special Token
+ super Token
end
class TGg
-special Token
+ super Token
end
class TStarship
-special Token
+ super Token
end
class TBang
-special Token
+ super Token
end
class TClassid
-special Token
+ super Token
end
class TId
-special Token
+ super Token
end
class TAttrid
-special Token
+ super Token
end
class TNumber
-special Token
+ super Token
end
class TFloat
-special Token
+ super Token
end
class TChar
-special Token
+ super Token
end
class TString
-special Token
+ super Token
end
class TStartString
-special Token
+ super Token
end
class TMidString
-special Token
+ super Token
end
class TEndString
-special Token
+ super Token
end
class EOF
-special Token
+ super Token
private init noinit do end
end
class AError
-special EOF
+ super EOF
private init noinit do end
end
class AModule
-special Prod
+ super Prod
readable var _n_moduledecl: nullable AModuledecl = null
readable var _n_imports: List[AImport] = new List[AImport]
readable var _n_classdefs: List[AClassdef] = new List[AClassdef]
end
class AModuledecl
-special Prod
+ super Prod
readable var _n_doc: nullable ADoc = null
readable var _n_kwmodule: TKwmodule
readable var _n_id: TId
end
-class AImport special Prod end
+class AImport super Prod end
class AStdImport
-special AImport
+ super AImport
readable var _n_visibility: AVisibility
readable var _n_kwimport: TKwimport
readable var _n_id: TId
end
class ANoImport
-special AImport
+ super AImport
readable var _n_visibility: AVisibility
readable var _n_kwimport: TKwimport
readable var _n_kwend: TKwend
end
-class AVisibility special Prod end
+class AVisibility super Prod end
class APublicVisibility
-special AVisibility
+ super AVisibility
end
class APrivateVisibility
-special AVisibility
+ super AVisibility
readable var _n_kwprivate: TKwprivate
end
class AProtectedVisibility
-special AVisibility
+ super AVisibility
readable var _n_kwprotected: TKwprotected
end
class AIntrudeVisibility
-special AVisibility
+ super AVisibility
readable var _n_kwintrude: TKwintrude
end
-class AClassdef special Prod end
+class AClassdef super Prod end
class AStdClassdef
-special AClassdef
+ super AClassdef
readable var _n_doc: nullable ADoc = null
readable var _n_kwredef: nullable TKwredef = null
readable var _n_visibility: AVisibility
readable var _n_propdefs: List[APropdef] = new List[APropdef]
end
class ATopClassdef
-special AClassdef
+ super AClassdef
readable var _n_propdefs: List[APropdef] = new List[APropdef]
end
class AMainClassdef
-special AClassdef
+ super AClassdef
readable var _n_propdefs: List[APropdef] = new List[APropdef]
end
-class AClasskind special Prod end
+class AClasskind super Prod end
class AConcreteClasskind
-special AClasskind
+ super AClasskind
readable var _n_kwclass: TKwclass
end
class AAbstractClasskind
-special AClasskind
+ super AClasskind
readable var _n_kwabstract: TKwabstract
readable var _n_kwclass: TKwclass
end
class AInterfaceClasskind
-special AClasskind
+ super AClasskind
readable var _n_kwinterface: TKwinterface
end
-class AUniversalClasskind
-special AClasskind
- readable var _n_kwuniversal: TKwuniversal
+class AEnumClasskind
+ super AClasskind
+ readable var _n_kwenum: TKwenum
end
class AFormaldef
-special Prod
+ super Prod
readable var _n_id: TClassid
readable var _n_type: nullable AType = null
end
class ASuperclass
-special Prod
+ super Prod
readable var _n_kwspecial: nullable TKwspecial = null
readable var _n_kwsuper: nullable TKwsuper = null
readable var _n_type: AType
end
-class APropdef special Prod
+class APropdef super Prod
readable var _n_doc: nullable ADoc = null
end
class AAttrPropdef
-special APropdef
+ super APropdef
readable var _n_kwredef: nullable TKwredef = null
readable var _n_visibility: AVisibility
readable var _n_kwvar: TKwvar
readable var _n_expr: nullable AExpr = null
end
class AMethPropdef
-special APropdef
+ super APropdef
readable var _n_kwredef: nullable TKwredef = null
readable var _n_visibility: nullable AVisibility
readable var _n_methid: nullable AMethid = null
readable var _n_signature: nullable ASignature
end
class ADeferredMethPropdef
-special AMethPropdef
+ super AMethPropdef
readable var _n_kwmeth: TKwmeth
end
class AInternMethPropdef
-special AMethPropdef
+ super AMethPropdef
readable var _n_kwmeth: TKwmeth
end
class AExternMethPropdef
-special AMethPropdef
+ super AMethPropdef
readable var _n_kwmeth: TKwmeth
readable var _n_extern: nullable TString = null
end
class AConcreteMethPropdef
-special AMethPropdef
+ super AMethPropdef
readable var _n_kwmeth: nullable TKwmeth
readable var _n_block: nullable AExpr = null
end
class AConcreteInitPropdef
-special AConcreteMethPropdef
+ super AConcreteMethPropdef
readable var _n_kwinit: TKwinit
end
class AMainMethPropdef
-special AConcreteMethPropdef
+ super AConcreteMethPropdef
end
class ATypePropdef
-special APropdef
+ super APropdef
readable var _n_kwredef: nullable TKwredef = null
readable var _n_visibility: AVisibility
readable var _n_kwtype: TKwtype
readable var _n_id: TClassid
readable var _n_type: AType
end
-class AAble special Prod
+class AAble super Prod
readable var _n_visibility: nullable AVisibility = null
readable var _n_kwredef: nullable TKwredef = null
end
class AReadAble
-special AAble
+ super AAble
readable var _n_kwreadable: TKwreadable
end
class AWriteAble
-special AAble
+ super AAble
readable var _n_kwwritable: TKwwritable
end
-class AMethid special Prod end
+class AMethid super Prod end
class AIdMethid
-special AMethid
+ super AMethid
readable var _n_id: TId
end
class APlusMethid
-special AMethid
+ super AMethid
readable var _n_plus: TPlus
end
class AMinusMethid
-special AMethid
+ super AMethid
readable var _n_minus: TMinus
end
class AStarMethid
-special AMethid
+ super AMethid
readable var _n_star: TStar
end
class ASlashMethid
-special AMethid
+ super AMethid
readable var _n_slash: TSlash
end
class APercentMethid
-special AMethid
+ super AMethid
readable var _n_percent: TPercent
end
class AEqMethid
-special AMethid
+ super AMethid
readable var _n_eq: TEq
end
class ANeMethid
-special AMethid
+ super AMethid
readable var _n_ne: TNe
end
class ALeMethid
-special AMethid
+ super AMethid
readable var _n_le: TLe
end
class AGeMethid
-special AMethid
+ super AMethid
readable var _n_ge: TGe
end
class ALtMethid
-special AMethid
+ super AMethid
readable var _n_lt: TLt
end
class AGtMethid
-special AMethid
+ super AMethid
readable var _n_gt: TGt
end
class ALlMethid
-special AMethid
+ super AMethid
readable writable var _n_ll: TLl
end
class AGgMethid
-special AMethid
+ super AMethid
readable writable var _n_gg: TGg
end
class ABraMethid
-special AMethid
+ super AMethid
readable var _n_obra: TObra
readable var _n_cbra: TCbra
end
class AStarshipMethid
-special AMethid
+ super AMethid
readable var _n_starship: TStarship
end
class AAssignMethid
-special AMethid
+ super AMethid
readable var _n_id: TId
readable var _n_assign: TAssign
end
class ABraassignMethid
-special AMethid
+ super AMethid
readable var _n_obra: TObra
readable var _n_cbra: TCbra
readable var _n_assign: TAssign
end
class ASignature
-special Prod
+ super Prod
readable var _n_params: List[AParam] = new List[AParam]
readable var _n_type: nullable AType = null
readable var _n_closure_decls: List[AClosureDecl] = new List[AClosureDecl]
end
class AParam
-special Prod
+ super Prod
readable var _n_id: TId
readable var _n_type: nullable AType = null
readable var _n_dotdotdot: nullable TDotdotdot = null
end
class AClosureDecl
-special Prod
+ super Prod
readable var _n_kwbreak: nullable TKwbreak = null
readable var _n_bang: TBang
readable var _n_id: TId
readable var _n_expr: nullable AExpr = null
end
class AType
-special Prod
+ super Prod
readable var _n_kwnullable: nullable TKwnullable = null
readable var _n_id: TClassid
readable var _n_types: List[AType] = new List[AType]
end
class ALabel
-special Prod
+ super Prod
readable var _n_kwlabel: TKwlabel
readable var _n_id: TId
end
-class AExpr special Prod end
+class AExpr super Prod end
class ABlockExpr
-special AExpr
+ super AExpr
readable var _n_expr: List[AExpr] = new List[AExpr]
end
class AVardeclExpr
-special AExpr
+ super AExpr
readable var _n_kwvar: TKwvar
readable var _n_id: TId
readable var _n_type: nullable AType = null
readable var _n_expr: nullable AExpr = null
end
class AReturnExpr
-special AExpr
+ super AExpr
readable var _n_kwreturn: nullable TKwreturn = null
readable var _n_expr: nullable AExpr = null
end
class ALabelable
-special Prod
+ super Prod
readable var _n_label: nullable ALabel = null
end
class ABreakExpr
-special AExpr
-special ALabelable
+ super AExpr
+ super ALabelable
readable var _n_kwbreak: TKwbreak
readable var _n_expr: nullable AExpr = null
end
class AAbortExpr
-special AExpr
+ super AExpr
readable var _n_kwabort: TKwabort
end
class AContinueExpr
-special AExpr
-special ALabelable
+ super AExpr
+ super ALabelable
readable var _n_kwcontinue: nullable TKwcontinue = null
readable var _n_expr: nullable AExpr = null
end
class ADoExpr
-special AExpr
-special ALabelable
+ super AExpr
+ super ALabelable
readable var _n_kwdo: TKwdo
readable var _n_block: nullable AExpr = null
end
class AIfExpr
-special AExpr
+ super AExpr
readable var _n_kwif: TKwif
readable var _n_expr: AExpr
readable var _n_then: nullable AExpr = null
readable var _n_else: nullable AExpr = null
end
class AIfexprExpr
-special AExpr
+ super AExpr
readable var _n_kwif: TKwif
readable var _n_expr: AExpr
readable var _n_kwthen: TKwthen
readable var _n_else: AExpr
end
class AWhileExpr
-special AExpr
-special ALabelable
+ super AExpr
+ super ALabelable
readable var _n_kwwhile: TKwwhile
readable var _n_expr: AExpr
readable var _n_kwdo: TKwdo
readable var _n_block: nullable AExpr = null
end
class ALoopExpr
-special AExpr
-special ALabelable
+ super AExpr
+ super ALabelable
readable var _n_kwloop: TKwloop
readable var _n_block: nullable AExpr = null
end
class AForExpr
-special AExpr
-special ALabelable
+ super AExpr
+ super ALabelable
readable var _n_kwfor: TKwfor
readable var _n_id: TId
readable var _n_expr: AExpr
readable var _n_block: nullable AExpr = null
end
class AAssertExpr
-special AExpr
+ super AExpr
readable var _n_kwassert: TKwassert
readable var _n_id: nullable TId = null
readable var _n_expr: AExpr
readable var _n_else: nullable AExpr = null
end
class AAssignFormExpr
-special AExpr
+ super AExpr
readable var _n_assign: TAssign
readable var _n_value: AExpr
end
class AReassignFormExpr
-special AExpr
+ super AExpr
readable var _n_assign_op: AAssignOp
readable var _n_value: AExpr
end
class AOnceExpr
-special AProxyExpr
+ super AProxyExpr
readable var _n_kwonce: TKwonce
end
class ASendExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
end
class ABinopExpr
-special ASendExpr
+ super ASendExpr
readable var _n_expr2: AExpr
end
class ABoolExpr
-special AExpr
+ super AExpr
end
class AOrExpr
-special ABoolExpr
+ super ABoolExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AAndExpr
-special ABoolExpr
+ super ABoolExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class AOrElseExpr
-special ABoolExpr
+ super ABoolExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class ANotExpr
-special ABoolExpr
+ super ABoolExpr
readable var _n_kwnot: TKwnot
readable var _n_expr: AExpr
end
class AEqExpr
-special ABinopExpr
+ super ABinopExpr
end
class AEeExpr
-special ABoolExpr
+ super ABoolExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class ANeExpr
-special ABinopExpr
+ super ABinopExpr
end
class ALtExpr
-special ABinopExpr
+ super ABinopExpr
end
class ALeExpr
-special ABinopExpr
+ super ABinopExpr
end
class ALlExpr
-special ABinopExpr
+ super ABinopExpr
end
class AGtExpr
-special ABinopExpr
+ super ABinopExpr
end
class AGeExpr
-special ABinopExpr
+ super ABinopExpr
end
class AGgExpr
-special ABinopExpr
+ super ABinopExpr
end
class AIsaExpr
-special ABoolExpr
+ super ABoolExpr
readable var _n_expr: AExpr
readable var _n_type: AType
end
class APlusExpr
-special ABinopExpr
+ super ABinopExpr
end
class AMinusExpr
-special ABinopExpr
+ super ABinopExpr
end
class AStarshipExpr
-special ABinopExpr
+ super ABinopExpr
end
class AStarExpr
-special ABinopExpr
+ super ABinopExpr
end
class ASlashExpr
-special ABinopExpr
+ super ABinopExpr
end
class APercentExpr
-special ABinopExpr
+ super ABinopExpr
end
class AUminusExpr
-special ASendExpr
+ super ASendExpr
readable var _n_minus: TMinus
end
class ANewExpr
-special AExpr
+ super AExpr
readable var _n_kwnew: TKwnew
readable var _n_type: AType
readable var _n_id: nullable TId = null
readable var _n_args: List[AExpr] = new List[AExpr]
end
class AAttrFormExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_id: TAttrid
end
class AAttrExpr
-special AAttrFormExpr
+ super AAttrFormExpr
end
class AAttrAssignExpr
-special AAttrFormExpr
-special AAssignFormExpr
+ super AAttrFormExpr
+ super AAssignFormExpr
end
class ACallFormExpr
-special ASendExpr
+ super ASendExpr
readable var _n_id: TId
readable var _n_args: List[AExpr] = new List[AExpr]
end
class AAttrReassignExpr
-special AExpr
-special AAttrFormExpr
-special AReassignFormExpr
+ super AExpr
+ super AAttrFormExpr
+ super AReassignFormExpr
end
class ACallExpr
-special ACallFormExpr
+ super ACallFormExpr
end
class ACallAssignExpr
-special ACallFormExpr
-special AAssignFormExpr
+ super ACallFormExpr
+ super AAssignFormExpr
end
class ACallReassignExpr
-special AExpr
-special ACallFormExpr
-special AReassignFormExpr
+ super AExpr
+ super ACallFormExpr
+ super AReassignFormExpr
end
class ASuperExpr
-special AExpr
+ super AExpr
readable var _n_qualified: nullable AQualified = null
readable var _n_kwsuper: TKwsuper
readable var _n_args: List[AExpr] = new List[AExpr]
end
class AInitExpr
-special ASendExpr
+ super ASendExpr
readable var _n_kwinit: TKwinit
readable var _n_args: List[AExpr] = new List[AExpr]
end
class ABraFormExpr
-special ASendExpr
+ super ASendExpr
readable var _n_args: List[AExpr] = new List[AExpr]
end
class ABraExpr
-special ABraFormExpr
+ super ABraFormExpr
end
class ABraAssignExpr
-special ABraFormExpr
-special AAssignFormExpr
+ super ABraFormExpr
+ super AAssignFormExpr
end
class AVarFormExpr
-special AExpr
+ super AExpr
readable var _n_id: TId
end
class ABraReassignExpr
-special ABraFormExpr
-special AReassignFormExpr
+ super ABraFormExpr
+ super AReassignFormExpr
end
class AClosureCallExpr
-special AExpr
+ super AExpr
readable var _n_id: TId
readable var _n_args: List[AExpr] = new List[AExpr]
readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
end
class AVarExpr
-special AVarFormExpr
+ super AVarFormExpr
end
class AVarAssignExpr
-special AVarFormExpr
-special AAssignFormExpr
+ super AVarFormExpr
+ super AAssignFormExpr
end
class AVarReassignExpr
-special AVarFormExpr
-special AReassignFormExpr
+ super AVarFormExpr
+ super AReassignFormExpr
end
class ARangeExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class ACrangeExpr
-special ARangeExpr
+ super ARangeExpr
end
class AOrangeExpr
-special ARangeExpr
+ super ARangeExpr
end
class AArrayExpr
-special AExpr
+ super AExpr
readable var _n_exprs: List[AExpr] = new List[AExpr]
end
class ASelfExpr
-special AExpr
+ super AExpr
readable var _n_kwself: nullable TKwself
end
class AImplicitSelfExpr
-special ASelfExpr
+ super ASelfExpr
end
class ATrueExpr
-special ABoolExpr
+ super ABoolExpr
readable var _n_kwtrue: TKwtrue
end
class AFalseExpr
-special ABoolExpr
+ super ABoolExpr
readable var _n_kwfalse: TKwfalse
end
class ANullExpr
-special AExpr
+ super AExpr
readable var _n_kwnull: TKwnull
end
class AIntExpr
-special AExpr
+ super AExpr
readable var _n_number: TNumber
end
class AFloatExpr
-special AExpr
+ super AExpr
readable var _n_float: TFloat
end
class ACharExpr
-special AExpr
+ super AExpr
readable var _n_char: TChar
end
class AStringFormExpr
-special AExpr
+ super AExpr
end
class AStringExpr
-special AStringFormExpr
+ super AStringFormExpr
readable var _n_string: TString
end
class AStartStringExpr
-special AStringFormExpr
+ super AStringFormExpr
readable var _n_string: TStartString
end
class AMidStringExpr
-special AStringFormExpr
+ super AStringFormExpr
readable var _n_string: TMidString
end
class AEndStringExpr
-special AStringFormExpr
+ super AStringFormExpr
readable var _n_string: TEndString
end
class ASuperstringExpr
-special AExpr
+ super AExpr
readable var _n_exprs: List[AExpr] = new List[AExpr]
end
class AParExpr
-special AProxyExpr
+ super AProxyExpr
end
class AProxyExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
end
class AAsCastExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_kwas: TKwas
readable var _n_type: AType
end
class AAsNotnullExpr
-special AExpr
+ super AExpr
readable var _n_expr: AExpr
readable var _n_kwas: TKwas
readable var _n_kwnot: TKwnot
readable var _n_kwnull: TKwnull
end
class AIssetAttrExpr
-special AAttrFormExpr
+ super AAttrFormExpr
readable var _n_kwisset: TKwisset
end
-class AAssignOp special Prod end
+class AAssignOp super Prod end
class APlusAssignOp
-special AAssignOp
+ super AAssignOp
readable var _n_pluseq: TPluseq
end
class AMinusAssignOp
-special AAssignOp
+ super AAssignOp
readable var _n_minuseq: TMinuseq
end
class AClosureDef
-special ALabelable
+ super ALabelable
readable var _n_bang: TBang
readable var _n_id: AClosureId
readable var _n_ids: List[TId] = new List[TId]
readable var _n_expr: nullable AExpr = null
end
class AClosureId
-special Prod
+ super Prod
end
class ASimpleClosureId
-special AClosureId
+ super AClosureId
readable var _n_id: TId
end
class ABreakClosureId
-special AClosureId
+ super AClosureId
readable var _n_kwbreak: TKwbreak
end
class AQualified
-special Prod
+ super Prod
readable var _n_id: List[TId] = new List[TId]
readable var _n_classid: nullable TClassid = null
end
class ADoc
-special Prod
+ super Prod
readable var _n_comment: List[TComment] = new List[TComment]
end
class Start
-special Prod
+ super Prod
readable var _n_base: nullable AModule
readable var _n_eof: EOF
end
v.enter_visit(_n_kwinterface)
end
end
-redef class AUniversalClasskind
+redef class AEnumClasskind
private init empty_init do end
- init init_auniversalclasskind (
- n_kwuniversal: nullable TKwuniversal
+ init init_aenumclasskind (
+ n_kwenum: nullable TKwenum
)
do
empty_init
- _n_kwuniversal = n_kwuniversal.as(not null)
- n_kwuniversal.parent = self
+ _n_kwenum = n_kwenum.as(not null)
+ n_kwenum.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_kwuniversal == old_child then
+ if _n_kwenum == old_child then
if new_child != null then
new_child.parent = self
- assert new_child isa TKwuniversal
- _n_kwuniversal = new_child
+ assert new_child isa TKwenum
+ _n_kwenum = new_child
else
abort
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_kwuniversal)
+ v.enter_visit(_n_kwenum)
end
end
redef class AFormaldef
116, 122, 77
};
static const int lexer_goto_row87[] = {
- 3,
+ 5,
48, 99, -81,
100, 100, 136,
- 101, 122, 77
+ 101, 116, 77,
+ 117, 117, 137,
+ 118, 122, 77
};
static const int lexer_goto_row88[] = {
4,
48, 95, -29,
97, 115, 77,
- 116, 116, 137,
+ 116, 116, 138,
117, 122, 77
};
static const int lexer_goto_row89[] = {
3,
48, 107, -31,
- 108, 108, 138,
+ 108, 108, 139,
109, 122, 77
};
static const int lexer_goto_row90[] = {
3,
48, 113, -30,
- 114, 114, 139,
+ 114, 114, 140,
115, 122, 77
};
static const int lexer_goto_row91[] = {
3,
48, 109, -40,
- 110, 110, 140,
+ 110, 110, 141,
111, 122, 77
};
static const int lexer_goto_row92[] = {
4,
48, 95, -29,
97, 111, 77,
- 112, 112, 141,
+ 112, 112, 142,
113, 122, 77
};
static const int lexer_goto_row94[] = {
6,
48, 95, -29,
97, 104, 77,
- 105, 105, 142,
+ 105, 105, 143,
106, 115, 77,
- 116, 116, 143,
+ 116, 116, 144,
117, 122, 77
};
static const int lexer_goto_row95[] = {
5,
48, 95, -29,
- 97, 97, 144,
+ 97, 97, 145,
98, 114, 77,
- 115, 115, 145,
+ 115, 115, 146,
116, 122, 77
};
static const int lexer_goto_row96[] = {
3,
48, 97, -29,
- 98, 98, 146,
+ 98, 98, 147,
99, 122, 77
};
static const int lexer_goto_row97[] = {
3,
48, 110, -32,
- 111, 111, 147,
+ 111, 111, 148,
112, 122, 77
};
static const int lexer_goto_row98[] = {
3,
48, 99, -81,
- 100, 100, 148,
+ 100, 100, 149,
101, 122, 77
};
static const int lexer_goto_row99[] = {
4,
48, 95, -29,
97, 118, 77,
- 119, 119, 149,
+ 119, 119, 150,
120, 122, 77
};
static const int lexer_goto_row100[] = {
3,
48, 115, -89,
- 116, 116, 150,
+ 116, 116, 151,
117, 122, 77
};
static const int lexer_goto_row101[] = {
3,
48, 107, -31,
- 108, 108, 151,
+ 108, 108, 152,
109, 122, 77
};
static const int lexer_goto_row102[] = {
4,
48, 95, -29,
97, 98, 77,
- 99, 99, 152,
+ 99, 99, 153,
100, 122, 77
};
static const int lexer_goto_row103[] = {
static const int lexer_goto_row104[] = {
3,
48, 98, -103,
- 99, 99, 153,
+ 99, 99, 154,
100, 122, 77
};
static const int lexer_goto_row105[] = {
5,
48, 104, -95,
- 105, 105, 154,
+ 105, 105, 155,
106, 110, 77,
- 111, 111, 155,
+ 111, 111, 156,
112, 122, 77
};
static const int lexer_goto_row106[] = {
7,
48, 95, -29,
- 97, 97, 156,
+ 97, 97, 157,
98, 99, 77,
- 100, 100, 157,
+ 100, 100, 158,
101, 115, 77,
- 116, 116, 158,
+ 116, 116, 159,
117, 122, 77
};
static const int lexer_goto_row107[] = {
3,
48, 107, -31,
- 108, 108, 159,
+ 108, 108, 160,
109, 122, 77
};
static const int lexer_goto_row108[] = {
3,
48, 100, -39,
- 101, 101, 160,
+ 101, 101, 161,
102, 122, 77
};
static const int lexer_goto_row109[] = {
3,
48, 111, -94,
- 112, 112, 161,
+ 112, 112, 162,
113, 122, 77
};
static const int lexer_goto_row110[] = {
3,
48, 100, -39,
- 101, 101, 162,
+ 101, 101, 163,
102, 122, 77
};
static const int lexer_goto_row111[] = {
4,
48, 95, -29,
97, 116, 77,
- 117, 117, 163,
+ 117, 117, 164,
118, 122, 77
};
static const int lexer_goto_row112[] = {
3,
48, 111, -94,
- 112, 112, 164,
+ 112, 112, 165,
113, 122, 77
};
static const int lexer_goto_row113[] = {
3,
48, 104, -95,
- 105, 105, 165,
+ 105, 105, 166,
106, 122, 77
};
static const int lexer_goto_row114[] = {
3,
48, 113, -30,
- 114, 114, 166,
+ 114, 114, 167,
115, 122, 77
};
static const int lexer_goto_row115[] = {
3,
48, 104, -95,
- 105, 105, 167,
+ 105, 105, 168,
106, 122, 77
};
static const int lexer_goto_row116[] = {
3,
48, 104, -95,
- 105, 105, 168,
+ 105, 105, 169,
106, 122, 77
};
static const int lexer_goto_row117[] = {
};
static const int lexer_goto_row119[] = {
3,
- 0, 9, 169,
- 11, 12, 169,
- 14, 255, 169
+ 0, 9, 170,
+ 11, 12, 170,
+ 14, 255, 170
};
static const int lexer_goto_row121[] = {
1,
static const int lexer_goto_row129[] = {
3,
48, 113, -30,
- 114, 114, 170,
+ 114, 114, 171,
115, 122, 77
};
static const int lexer_goto_row130[] = {
3,
48, 115, -89,
- 116, 116, 171,
+ 116, 116, 172,
117, 122, 77
};
static const int lexer_goto_row131[] = {
static const int lexer_goto_row132[] = {
3,
48, 100, -39,
- 101, 101, 172,
+ 101, 101, 173,
102, 122, 77
};
static const int lexer_goto_row133[] = {
3,
48, 95, -29,
- 97, 97, 173,
+ 97, 97, 174,
98, 122, 77
};
static const int lexer_goto_row134[] = {
3,
48, 114, -82,
- 115, 115, 174,
+ 115, 115, 175,
116, 122, 77
};
static const int lexer_goto_row135[] = {
3,
48, 115, -89,
- 116, 116, 175,
+ 116, 116, 176,
117, 122, 77
};
static const int lexer_goto_row136[] = {
3,
48, 100, -39,
- 101, 101, 176,
+ 101, 101, 177,
102, 122, 77
};
static const int lexer_goto_row137[] = {
48, 122, -35
};
static const int lexer_goto_row138[] = {
+ 4,
+ 48, 95, -29,
+ 97, 108, 77,
+ 109, 109, 178,
+ 110, 122, 77
+};
+static const int lexer_goto_row139[] = {
3,
48, 100, -39,
- 101, 101, 177,
+ 101, 101, 179,
102, 122, 77
};
-static const int lexer_goto_row139[] = {
+static const int lexer_goto_row140[] = {
3,
48, 114, -82,
- 115, 115, 178,
+ 115, 115, 180,
116, 122, 77
};
-static const int lexer_goto_row140[] = {
+static const int lexer_goto_row141[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row141[] = {
+static const int lexer_goto_row142[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row142[] = {
+static const int lexer_goto_row143[] = {
3,
48, 110, -32,
- 111, 111, 179,
+ 111, 111, 181,
112, 122, 77
};
-static const int lexer_goto_row143[] = {
+static const int lexer_goto_row144[] = {
3,
48, 115, -89,
- 116, 116, 180,
+ 116, 116, 182,
117, 122, 77
};
-static const int lexer_goto_row144[] = {
+static const int lexer_goto_row145[] = {
5,
48, 100, -39,
- 101, 101, 181,
+ 101, 101, 183,
102, 113, 77,
- 114, 114, 182,
+ 114, 114, 184,
115, 122, 77
};
-static const int lexer_goto_row145[] = {
+static const int lexer_goto_row146[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row146[] = {
+static const int lexer_goto_row147[] = {
3,
48, 100, -39,
- 101, 101, 183,
+ 101, 101, 185,
102, 122, 77
};
-static const int lexer_goto_row147[] = {
+static const int lexer_goto_row148[] = {
3,
48, 100, -39,
- 101, 101, 184,
+ 101, 101, 186,
102, 122, 77
};
-static const int lexer_goto_row148[] = {
+static const int lexer_goto_row149[] = {
3,
48, 111, -94,
- 112, 112, 185,
+ 112, 112, 187,
113, 122, 77
};
-static const int lexer_goto_row149[] = {
+static const int lexer_goto_row150[] = {
3,
48, 116, -112,
- 117, 117, 186,
+ 117, 117, 188,
118, 122, 77
};
-static const int lexer_goto_row150[] = {
+static const int lexer_goto_row151[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row151[] = {
+static const int lexer_goto_row152[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row152[] = {
+static const int lexer_goto_row153[] = {
3,
48, 107, -31,
- 108, 108, 187,
+ 108, 108, 189,
109, 122, 77
};
-static const int lexer_goto_row153[] = {
+static const int lexer_goto_row154[] = {
3,
48, 100, -39,
- 101, 101, 188,
+ 101, 101, 190,
102, 122, 77
};
-static const int lexer_goto_row154[] = {
+static const int lexer_goto_row155[] = {
4,
48, 95, -29,
97, 106, 77,
- 107, 107, 189,
+ 107, 107, 191,
108, 122, 77
};
-static const int lexer_goto_row155[] = {
+static const int lexer_goto_row156[] = {
4,
48, 95, -29,
97, 117, 77,
- 118, 118, 190,
+ 118, 118, 192,
119, 122, 77
};
-static const int lexer_goto_row156[] = {
+static const int lexer_goto_row157[] = {
3,
48, 115, -89,
- 116, 116, 191,
+ 116, 116, 193,
117, 122, 77
};
-static const int lexer_goto_row157[] = {
+static const int lexer_goto_row158[] = {
3,
48, 99, -81,
- 100, 100, 192,
+ 100, 100, 194,
101, 122, 77
};
-static const int lexer_goto_row158[] = {
+static const int lexer_goto_row159[] = {
3,
48, 100, -39,
- 101, 101, 193,
+ 101, 101, 195,
102, 122, 77
};
-static const int lexer_goto_row159[] = {
+static const int lexer_goto_row160[] = {
3,
48, 116, -112,
- 117, 117, 194,
+ 117, 117, 196,
118, 122, 77
};
-static const int lexer_goto_row160[] = {
+static const int lexer_goto_row161[] = {
3,
48, 101, -36,
- 102, 102, 195,
+ 102, 102, 197,
103, 122, 77
};
-static const int lexer_goto_row161[] = {
+static const int lexer_goto_row162[] = {
3,
48, 98, -103,
- 99, 99, 196,
+ 99, 99, 198,
100, 122, 77
};
-static const int lexer_goto_row162[] = {
+static const int lexer_goto_row163[] = {
3,
48, 100, -39,
- 101, 101, 197,
+ 101, 101, 199,
102, 122, 77
};
-static const int lexer_goto_row163[] = {
+static const int lexer_goto_row164[] = {
3,
48, 109, -40,
- 110, 110, 198,
+ 110, 110, 200,
111, 122, 77
};
-static const int lexer_goto_row164[] = {
+static const int lexer_goto_row165[] = {
3,
48, 100, -39,
- 101, 101, 199,
+ 101, 101, 201,
102, 122, 77
};
-static const int lexer_goto_row165[] = {
+static const int lexer_goto_row166[] = {
3,
48, 100, -39,
- 101, 101, 200,
+ 101, 101, 202,
102, 122, 77
};
-static const int lexer_goto_row166[] = {
+static const int lexer_goto_row167[] = {
3,
- 48, 117, -156,
- 118, 118, 201,
+ 48, 117, -157,
+ 118, 118, 203,
119, 122, 77
};
-static const int lexer_goto_row167[] = {
+static const int lexer_goto_row168[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row168[] = {
+static const int lexer_goto_row169[] = {
3,
48, 107, -31,
- 108, 108, 202,
+ 108, 108, 204,
109, 122, 77
};
-static const int lexer_goto_row169[] = {
+static const int lexer_goto_row170[] = {
3,
48, 115, -89,
- 116, 116, 203,
+ 116, 116, 205,
117, 122, 77
};
-static const int lexer_goto_row170[] = {
+static const int lexer_goto_row171[] = {
1,
0, 255, -48
};
-static const int lexer_goto_row171[] = {
+static const int lexer_goto_row172[] = {
3,
48, 115, -89,
- 116, 116, 204,
+ 116, 116, 206,
117, 122, 77
};
-static const int lexer_goto_row172[] = {
+static const int lexer_goto_row173[] = {
3,
48, 113, -30,
- 114, 114, 205,
+ 114, 114, 207,
115, 122, 77
};
-static const int lexer_goto_row173[] = {
+static const int lexer_goto_row174[] = {
3,
48, 113, -30,
- 114, 114, 206,
+ 114, 114, 208,
115, 122, 77
};
-static const int lexer_goto_row174[] = {
+static const int lexer_goto_row175[] = {
3,
- 48, 106, -155,
- 107, 107, 207,
+ 48, 106, -156,
+ 107, 107, 209,
108, 122, 77
};
-static const int lexer_goto_row175[] = {
+static const int lexer_goto_row176[] = {
3,
48, 114, -82,
- 115, 115, 208,
+ 115, 115, 210,
116, 122, 77
};
-static const int lexer_goto_row176[] = {
+static const int lexer_goto_row177[] = {
3,
48, 104, -95,
- 105, 105, 209,
+ 105, 105, 211,
106, 122, 77
};
-static const int lexer_goto_row177[] = {
+static const int lexer_goto_row178[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row178[] = {
+static const int lexer_goto_row179[] = {
+ 1,
+ 48, 122, -35
+};
+static const int lexer_goto_row180[] = {
3,
48, 113, -30,
- 114, 114, 210,
+ 114, 114, 212,
115, 122, 77
};
-static const int lexer_goto_row179[] = {
+static const int lexer_goto_row181[] = {
3,
48, 100, -39,
- 101, 101, 211,
+ 101, 101, 213,
102, 122, 77
};
-static const int lexer_goto_row180[] = {
+static const int lexer_goto_row182[] = {
3,
48, 113, -30,
- 114, 114, 212,
+ 114, 114, 214,
115, 122, 77
};
-static const int lexer_goto_row181[] = {
+static const int lexer_goto_row183[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row182[] = {
+static const int lexer_goto_row184[] = {
3,
48, 113, -30,
- 114, 114, 213,
+ 114, 114, 215,
115, 122, 77
};
-static const int lexer_goto_row183[] = {
+static const int lexer_goto_row185[] = {
3,
48, 116, -112,
- 117, 117, 214,
+ 117, 117, 216,
118, 122, 77
};
-static const int lexer_goto_row184[] = {
+static const int lexer_goto_row186[] = {
3,
48, 115, -89,
- 116, 116, 215,
+ 116, 116, 217,
117, 122, 77
};
-static const int lexer_goto_row185[] = {
+static const int lexer_goto_row187[] = {
3,
48, 107, -31,
- 108, 108, 216,
+ 108, 108, 218,
109, 122, 77
};
-static const int lexer_goto_row186[] = {
+static const int lexer_goto_row188[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row187[] = {
+static const int lexer_goto_row189[] = {
3,
48, 107, -31,
- 108, 108, 217,
+ 108, 108, 219,
109, 122, 77
};
-static const int lexer_goto_row188[] = {
+static const int lexer_goto_row190[] = {
3,
48, 95, -29,
- 97, 97, 218,
+ 97, 97, 220,
98, 122, 77
};
-static const int lexer_goto_row189[] = {
+static const int lexer_goto_row191[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row190[] = {
+static const int lexer_goto_row192[] = {
3,
48, 95, -29,
- 97, 97, 219,
+ 97, 97, 221,
98, 122, 77
};
-static const int lexer_goto_row191[] = {
+static const int lexer_goto_row193[] = {
3,
48, 95, -29,
- 97, 97, 220,
+ 97, 97, 222,
98, 122, 77
};
-static const int lexer_goto_row192[] = {
+static const int lexer_goto_row194[] = {
3,
48, 100, -39,
- 101, 101, 221,
+ 101, 101, 223,
102, 122, 77
};
-static const int lexer_goto_row193[] = {
+static const int lexer_goto_row195[] = {
3,
48, 95, -29,
- 97, 97, 222,
+ 97, 97, 224,
98, 122, 77
};
-static const int lexer_goto_row194[] = {
+static const int lexer_goto_row196[] = {
3,
48, 101, -36,
- 102, 102, 223,
+ 102, 102, 225,
103, 122, 77
};
-static const int lexer_goto_row195[] = {
+static const int lexer_goto_row197[] = {
3,
48, 113, -30,
- 114, 114, 224,
+ 114, 114, 226,
115, 122, 77
};
-static const int lexer_goto_row196[] = {
+static const int lexer_goto_row198[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row197[] = {
+static const int lexer_goto_row199[] = {
3,
48, 104, -95,
- 105, 105, 225,
+ 105, 105, 227,
106, 122, 77
};
-static const int lexer_goto_row198[] = {
+static const int lexer_goto_row200[] = {
3,
48, 113, -30,
- 114, 114, 226,
+ 114, 114, 228,
115, 122, 77
};
-static const int lexer_goto_row199[] = {
+static const int lexer_goto_row201[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row200[] = {
+static const int lexer_goto_row202[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row201[] = {
+static const int lexer_goto_row203[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row202[] = {
+static const int lexer_goto_row204[] = {
3,
48, 100, -39,
- 101, 101, 227,
+ 101, 101, 229,
102, 122, 77
};
-static const int lexer_goto_row203[] = {
+static const int lexer_goto_row205[] = {
3,
48, 100, -39,
- 101, 101, 228,
+ 101, 101, 230,
102, 122, 77
};
-static const int lexer_goto_row204[] = {
+static const int lexer_goto_row206[] = {
3,
48, 95, -29,
- 97, 97, 229,
+ 97, 97, 231,
98, 122, 77
};
-static const int lexer_goto_row205[] = {
+static const int lexer_goto_row207[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row206[] = {
+static const int lexer_goto_row208[] = {
3,
48, 95, -29,
- 97, 97, 230,
+ 97, 97, 232,
98, 122, 77
};
-static const int lexer_goto_row207[] = {
+static const int lexer_goto_row209[] = {
3,
48, 115, -89,
- 116, 116, 231,
+ 116, 116, 233,
117, 122, 77
};
-static const int lexer_goto_row208[] = {
+static const int lexer_goto_row210[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row209[] = {
+static const int lexer_goto_row211[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row210[] = {
+static const int lexer_goto_row212[] = {
3,
48, 109, -40,
- 110, 110, 232,
+ 110, 110, 234,
111, 122, 77
};
-static const int lexer_goto_row211[] = {
+static const int lexer_goto_row213[] = {
3,
48, 109, -40,
- 110, 110, 233,
+ 110, 110, 235,
111, 122, 77
};
-static const int lexer_goto_row212[] = {
+static const int lexer_goto_row214[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row213[] = {
+static const int lexer_goto_row215[] = {
3,
48, 115, -89,
- 116, 116, 234,
+ 116, 116, 236,
117, 122, 77
};
-static const int lexer_goto_row214[] = {
+static const int lexer_goto_row216[] = {
5,
48, 101, -36,
- 102, 102, 235,
+ 102, 102, 237,
103, 109, 77,
- 110, 110, 236,
+ 110, 110, 238,
111, 122, 77
};
-static const int lexer_goto_row215[] = {
+static const int lexer_goto_row217[] = {
3,
48, 99, -81,
- 100, 100, 237,
+ 100, 100, 239,
101, 122, 77
};
-static const int lexer_goto_row216[] = {
+static const int lexer_goto_row218[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row217[] = {
+static const int lexer_goto_row219[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row218[] = {
+static const int lexer_goto_row220[] = {
3,
48, 100, -39,
- 101, 101, 238,
+ 101, 101, 240,
102, 122, 77
};
-static const int lexer_goto_row219[] = {
+static const int lexer_goto_row221[] = {
3,
48, 97, -29,
- 98, 98, 239,
+ 98, 98, 241,
99, 122, 77
};
-static const int lexer_goto_row220[] = {
+static const int lexer_goto_row222[] = {
4,
48, 95, -29,
97, 102, 77,
- 103, 103, 240,
+ 103, 103, 242,
104, 122, 77
};
-static const int lexer_goto_row221[] = {
+static const int lexer_goto_row223[] = {
3,
48, 115, -89,
- 116, 116, 241,
+ 116, 116, 243,
117, 122, 77
};
-static const int lexer_goto_row222[] = {
+static const int lexer_goto_row224[] = {
3,
48, 98, -103,
- 99, 99, 242,
+ 99, 99, 244,
100, 122, 77
};
-static const int lexer_goto_row223[] = {
+static const int lexer_goto_row225[] = {
3,
48, 97, -29,
- 98, 98, 243,
+ 98, 98, 245,
99, 122, 77
};
-static const int lexer_goto_row224[] = {
+static const int lexer_goto_row226[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row225[] = {
+static const int lexer_goto_row227[] = {
3,
48, 109, -40,
- 110, 110, 244,
+ 110, 110, 246,
111, 122, 77
};
-static const int lexer_goto_row226[] = {
+static const int lexer_goto_row228[] = {
3,
48, 95, -29,
- 97, 97, 245,
+ 97, 97, 247,
98, 122, 77
};
-static const int lexer_goto_row227[] = {
+static const int lexer_goto_row229[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row228[] = {
+static const int lexer_goto_row230[] = {
3,
48, 113, -30,
- 114, 114, 246,
+ 114, 114, 248,
115, 122, 77
};
-static const int lexer_goto_row229[] = {
+static const int lexer_goto_row231[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row230[] = {
+static const int lexer_goto_row232[] = {
3,
48, 97, -29,
- 98, 98, 247,
+ 98, 98, 249,
99, 122, 77
};
-static const int lexer_goto_row231[] = {
+static const int lexer_goto_row233[] = {
3,
48, 98, -103,
- 99, 99, 248,
+ 99, 99, 250,
100, 122, 77
};
-static const int lexer_goto_row232[] = {
+static const int lexer_goto_row234[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row233[] = {
+static const int lexer_goto_row235[] = {
3,
48, 116, -112,
- 117, 117, 249,
+ 117, 117, 251,
118, 122, 77
};
-static const int lexer_goto_row234[] = {
+static const int lexer_goto_row236[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row235[] = {
+static const int lexer_goto_row237[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row236[] = {
+static const int lexer_goto_row238[] = {
3,
48, 95, -29,
- 97, 97, 250,
+ 97, 97, 252,
98, 122, 77
};
-static const int lexer_goto_row237[] = {
+static const int lexer_goto_row239[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row238[] = {
+static const int lexer_goto_row240[] = {
3,
48, 100, -39,
- 101, 101, 251,
+ 101, 101, 253,
102, 122, 77
};
-static const int lexer_goto_row239[] = {
+static const int lexer_goto_row241[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row240[] = {
+static const int lexer_goto_row242[] = {
3,
48, 107, -31,
- 108, 108, 252,
+ 108, 108, 254,
109, 122, 77
};
-static const int lexer_goto_row241[] = {
+static const int lexer_goto_row243[] = {
3,
48, 100, -39,
- 101, 101, 253,
+ 101, 101, 255,
102, 122, 77
};
-static const int lexer_goto_row242[] = {
+static const int lexer_goto_row244[] = {
3,
48, 100, -39,
- 101, 101, 254,
+ 101, 101, 256,
102, 122, 77
};
-static const int lexer_goto_row243[] = {
+static const int lexer_goto_row245[] = {
3,
48, 115, -89,
- 116, 116, 255,
+ 116, 116, 257,
117, 122, 77
};
-static const int lexer_goto_row244[] = {
+static const int lexer_goto_row246[] = {
3,
48, 107, -31,
- 108, 108, 256,
+ 108, 108, 258,
109, 122, 77
};
-static const int lexer_goto_row245[] = {
+static const int lexer_goto_row247[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row246[] = {
+static const int lexer_goto_row248[] = {
3,
48, 107, -31,
- 108, 108, 257,
+ 108, 108, 259,
109, 122, 77
};
-static const int lexer_goto_row247[] = {
+static const int lexer_goto_row249[] = {
3,
48, 114, -82,
- 115, 115, 258,
+ 115, 115, 260,
116, 122, 77
};
-static const int lexer_goto_row248[] = {
+static const int lexer_goto_row250[] = {
3,
48, 107, -31,
- 108, 108, 259,
+ 108, 108, 261,
109, 122, 77
};
-static const int lexer_goto_row249[] = {
+static const int lexer_goto_row251[] = {
3,
48, 115, -89,
- 116, 116, 260,
+ 116, 116, 262,
117, 122, 77
};
-static const int lexer_goto_row250[] = {
+static const int lexer_goto_row252[] = {
3,
48, 100, -39,
- 101, 101, 261,
+ 101, 101, 263,
102, 122, 77
};
-static const int lexer_goto_row251[] = {
+static const int lexer_goto_row253[] = {
3,
48, 98, -103,
- 99, 99, 262,
+ 99, 99, 264,
100, 122, 77
};
-static const int lexer_goto_row252[] = {
+static const int lexer_goto_row254[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row253[] = {
+static const int lexer_goto_row255[] = {
3,
48, 100, -39,
- 101, 101, 263,
+ 101, 101, 265,
102, 122, 77
};
-static const int lexer_goto_row254[] = {
+static const int lexer_goto_row256[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row255[] = {
+static const int lexer_goto_row257[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row256[] = {
+static const int lexer_goto_row258[] = {
3,
48, 100, -39,
- 101, 101, 264,
+ 101, 101, 266,
102, 122, 77
};
-static const int lexer_goto_row257[] = {
+static const int lexer_goto_row259[] = {
3,
48, 100, -39,
- 101, 101, 265,
+ 101, 101, 267,
102, 122, 77
};
-static const int lexer_goto_row258[] = {
+static const int lexer_goto_row260[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row259[] = {
+static const int lexer_goto_row261[] = {
3,
48, 95, -29,
- 97, 97, 266,
+ 97, 97, 268,
98, 122, 77
};
-static const int lexer_goto_row260[] = {
+static const int lexer_goto_row262[] = {
3,
48, 100, -39,
- 101, 101, 267,
+ 101, 101, 269,
102, 122, 77
};
-static const int lexer_goto_row261[] = {
+static const int lexer_goto_row263[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row262[] = {
+static const int lexer_goto_row264[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row263[] = {
+static const int lexer_goto_row265[] = {
3,
48, 100, -39,
- 101, 101, 268,
+ 101, 101, 270,
102, 122, 77
};
-static const int lexer_goto_row264[] = {
+static const int lexer_goto_row266[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row265[] = {
+static const int lexer_goto_row267[] = {
3,
48, 99, -81,
- 100, 100, 269,
+ 100, 100, 271,
101, 122, 77
};
-static const int lexer_goto_row266[] = {
+static const int lexer_goto_row268[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row267[] = {
+static const int lexer_goto_row269[] = {
3,
48, 107, -31,
- 108, 108, 270,
+ 108, 108, 272,
109, 122, 77
};
-static const int lexer_goto_row268[] = {
+static const int lexer_goto_row270[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row269[] = {
+static const int lexer_goto_row271[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row270[] = {
+static const int lexer_goto_row272[] = {
1,
48, 122, -35
};
-static const int lexer_goto_row271[] = {
+static const int lexer_goto_row273[] = {
1,
48, 122, -35
};
lexer_goto_row268,
lexer_goto_row269,
lexer_goto_row270,
- lexer_goto_row271
+ lexer_goto_row271,
+ lexer_goto_row272,
+ lexer_goto_row273
};
const int lexer_accept_table[] = {
- -1,0,1,1,0,79,-1,-1,69,-1,52,53,67,65,56,66,64,68,83,57,72,59,75,80,54,55,-1,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,-1,1,71,-1,86,-1,87,-1,2,2,-1,85,60,61,63,84,-1,58,74,73,70,76,77,80,80,80,80,82,81,81,81,81,81,81,48,81,81,81,16,81,81,81,81,81,81,25,81,31,15,81,81,81,81,81,81,81,33,81,81,81,81,81,81,81,81,81,81,81,81,81,-1,89,-1,88,-1,2,62,78,82,82,82,82,81,81,32,81,81,81,81,81,10,81,81,30,11,81,81,81,41,81,81,81,81,40,34,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,19,81,81,-1,81,81,81,81,81,81,27,81,81,81,13,81,81,81,81,29,81,47,42,81,81,81,81,81,81,44,81,81,26,45,12,81,81,81,38,81,81,37,5,81,81,46,81,81,81,50,51,81,81,81,81,81,81,14,81,81,43,81,28,81,81,39,81,21,4,81,20,81,3,81,81,81,81,81,35,81,81,81,81,81,81,24,81,3,23,81,81,9,81,81,6,36,81,49,81,17,81,18,7,22,8
+ -1,0,1,1,0,79,-1,-1,69,-1,52,53,67,65,56,66,64,68,83,57,72,59,75,80,54,55,-1,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,-1,1,71,-1,86,-1,87,-1,2,2,-1,85,60,61,63,84,-1,58,74,73,70,76,77,80,80,80,80,82,81,81,81,81,81,81,48,81,81,81,16,81,81,81,81,81,81,25,81,31,15,81,81,81,81,81,81,81,33,81,81,81,81,81,81,81,81,81,81,81,81,81,-1,89,-1,88,-1,2,62,78,82,82,82,82,81,81,32,81,81,81,81,81,10,81,81,81,30,11,81,81,81,41,81,81,81,81,40,34,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,19,81,81,-1,81,81,81,81,81,81,27,8,81,81,81,13,81,81,81,81,29,81,47,42,81,81,81,81,81,81,44,81,81,26,45,12,81,81,81,38,81,81,37,5,81,81,46,81,81,81,50,51,81,81,81,81,81,81,14,81,81,43,81,28,81,81,39,81,21,4,81,20,81,3,81,81,81,81,81,35,81,81,81,81,81,81,24,81,3,23,81,81,9,81,81,6,36,81,49,81,17,81,18,7,22,8
};
static int parser_action_row1[] = {
import parser
class PrintTreeVisitor
-special Visitor
+ super Visitor
var _rank: Int
redef fun visit(n: nullable ANode)
do
# The lexer extract NIT tokens from an input stream.
# It is better user with the Parser
class Lexer
-special TablesCapable
+ super TablesCapable
# Last peeked token
var _token: nullable Token
# Ancestor of all tokens
abstract class Token
-special PNode
+ super PNode
end
# Ancestor of all productions
abstract class Prod
-special PNode
+ super PNode
fun location=(loc: Location) do _location = loc
end
$ end template
end
class Parser
-special TablesCapable
+ super TablesCapable
# Associated lexer
var _lexer: Lexer
# Find location of production nodes
# Uses existing token locations to infer location of productions.
private class ComputeProdLocationVisitor
-special Visitor
+ super Visitor
# Currenlty visited productions that need a first token
var _need_first_prods: Array[Prod] = new Array[Prod]
$ foreach {rules/rule}
private class ReduceAction@index
-special ReduceAction
+ super ReduceAction
redef fun action(p: Parser)
do
var node_list: nullable Object = null
$ set baseprod = {//prod/@ename}
$ foreach {//prod}
-class @ename special Prod end
+class @ename super Prod end
$ end
$ foreach {//alt}
class @ename
-special ${../@ename}
+ super ${../@ename}
$ foreach {elem}
$ if @is_list
readable var _n_@name: List[@etype] = new List[@etype]
$ end
class Start
-special Prod
+ super Prod
readable var _n_base: nullable $baseprod
readable var _n_eof: EOF
end
$ foreach {//token}
$ if {@parser_index}
class @ename
-special Token
+ super Token
end
$ end
$ end
class EOF
-special Token
+ super Token
private init noinit do end
end
class PError
-special EOF
+ super EOF
private init noinit do end
end
$ end template
# Common things for NIT compilation and C generation
package primitive_info
-#FIXME Split this package into 2: one in metamodel and one in compiling
+#FIXME Split this module into 2: one in metamodel and one in compiling
import metamodel
# Return the primitive information of the class.
# Return null if the class is not primitive
- # FIXME: Only here since there is no universal type yet
fun primitive_info: nullable PrimitiveInfo
do
if _primitive_info_b == true then return _primitive_info_cache
# Root of a variable context hierarchy
class RootFlowContext
-special FlowContext
+ super FlowContext
init(visitor: AbsSyntaxVisitor, node: ANode)
do
super(visitor, node)
# Contexts that are an evolution of a single previous context
class SubFlowContext
-special FlowContext
+ super FlowContext
readable var _prev: FlowContext
redef fun is_set(v)
# A variable context where a variable got a type adptation
class CastFlowContext
-special SubFlowContext
+ super SubFlowContext
# The casted variable
var _variable: Variable
# Context that resulting from the combinaisons of other contexts.
# Most of the merge computation are done lasily.
class MergeFlowContext
-special FlowContext
+ super FlowContext
var _base: FlowContext
var _alts: Array[FlowContext]
# An AST2ICode context stores the currently built icode informations
class A2IContext
-special ICodeBuilder
+ super ICodeBuilder
redef fun stmt(s: ICode)
do
if _current_node != null then
end
class A2IVisitor
-special AbsSyntaxVisitor
+ super AbsSyntaxVisitor
writable var _icode_ctx: nullable A2IContext
fun icode_ctx: A2IContext do return _icode_ctx.as(not null)
redef fun visit(n) do n.accept_icode_generation(self)
# Class specialization hierarchy sorter
private class CSHSorter
-special AbstractSorter[MMLocalClass]
+ super AbstractSorter[MMLocalClass]
redef fun compare(a, b)
do
return a.cshe.rank <=> b.cshe.rank
c.accept_class_visitor(mmbv2)
# Default and inherited constructor if needed
- if c isa MMSrcLocalClass and c.global.intro == c and not c.global.is_universal and not c.global.is_interface then
+ if c isa MMSrcLocalClass and c.global.intro == c and not c.global.is_enum and not c.global.is_interface then
c.process_default_constructors(mmbv2)
end
var super_inits = new ArraySet[MMLocalProperty]
var super_constructors = new ArraySet[MMGlobalProperty]
for sc in che.direct_greaters do
- if sc.global.is_universal or sc.global.is_interface then continue
+ if sc.global.is_enum or sc.global.is_interface then continue
for gp in sc.global_properties do
if not gp.is_init then continue
super_constructors.add(gp)
# Concrete NIT class specialization relation
class MMSrcAncestor
-special MMAncestor
+ super MMAncestor
redef readable var _local_class: MMLocalClass
init(c: MMLocalClass)
# * Build the classes and attach them to global classes
# * Collect generic formal parameters.
private class ClassBuilderVisitor
-special AbsSyntaxVisitor
+ super AbsSyntaxVisitor
# Current class arity
readable writable var _local_class_arity: Int = 0
# Another pass visitor for syntax analysis.
# * Build ancertors (with only class informations not the type one)
private class ClassSpecializationBuilderVisitor
-special AbsSyntaxVisitor
+ super AbsSyntaxVisitor
redef fun visit(n) do n.accept_class_specialization_builder(self)
init(tc, m) do super
end
# Another pass visitor for syntax analysis.
# * Compute types in ancestors
private class ClassAncestorBuilder
-special AbsSyntaxVisitor
+ super AbsSyntaxVisitor
redef fun visit(n) do n.accept_class_ancestor_builder(self)
init(tc, m) do super
end
# Another pass visitor for syntax analysis.
# * Checks classes in regard to superclasses
private class ClassVerifierVisitor
-special AbsSyntaxVisitor
+ super AbsSyntaxVisitor
redef fun visit(n) do n.accept_class_verifier(self)
init(tc, m) do super
end
# * Build local properties and attache them to global properties
# * Attach bound to formal types
private class PropertyBuilderVisitor
-special AbsSyntaxVisitor
+ super AbsSyntaxVisitor
redef fun visit(n) do n.accept_property_builder(self)
init(tc, m) do super
end
# Another pass pass visitor for syntax analysis.
# * Check property conformance
private class PropertyVerifierVisitor
-special AbsSyntaxVisitor
+ super AbsSyntaxVisitor
# The signature currently build
readable writable var _signature_builder: SignatureBuilder
redef fun accept_class_builder(v)
do
if n_id.to_symbol != v.mmmodule.name then
- v.error(n_id, "Error: Package name missmatch between {v.mmmodule.name} and {n_id.to_symbol}")
+ v.error(n_id, "Error: Module name missmatch between {v.mmmodule.name} and {n_id.to_symbol}")
end
end
end
redef class AClasskind
fun is_interface: Bool do return false
- fun is_universal: Bool do return false
+ fun is_enum: Bool do return false
fun is_abstract: Bool do return false
end
redef class AInterfaceClasskind
redef fun is_interface do return true
end
-redef class AUniversalClasskind
- redef fun is_universal do return true
+redef class AEnumClasskind
+ redef fun is_enum do return true
end
redef class AAbstractClasskind
redef fun is_abstract do return true
glob.visibility_level = visibility_level
glob.is_interface = n_classkind.is_interface
glob.is_abstract = n_classkind.is_abstract
- glob.is_universal = n_classkind.is_universal
+ glob.is_enum = n_classkind.is_enum
if n_kwredef != null then
v.error(self, "Redef error: No class {name} is imported. Remove the redef keyword to define a new class.")
end
for c in _local_class.cshe.direct_greaters do
var cg = c.global
if glob.is_interface then
- if cg.is_universal then
- v.error(self, "Special error: Interface {name} try to specialise universal class {c.name}.")
+ if cg.is_enum then
+ v.error(self, "Special error: Interface {name} try to specialise enum class {c.name}.")
else if not cg.is_interface then
v.error(self, "Special error: Interface {name} try to specialise class {c.name}.")
end
- else if glob.is_universal then
- if not cg.is_interface and not cg.is_universal then
- v.error(self, "Special error: Universal class {name} try to specialise class {c.name}.")
+ else if glob.is_enum then
+ if not cg.is_interface and not cg.is_enum then
+ v.error(self, "Special error: Enum class {name} try to specialise class {c.name}.")
end
else
- if cg.is_universal then
- v.error(self, "Special error: Class {name} try to specialise universal class {c.name}.")
+ if cg.is_enum then
+ v.error(self, "Special error: Class {name} try to specialise enum class {c.name}.")
end
end
if
not glob.is_interface and n_classkind.is_interface or
not glob.is_abstract and n_classkind.is_abstract or
- not glob.is_universal and n_classkind.is_universal
+ not glob.is_enum and n_classkind.is_enum
then
v.error(self, "Redef error: cannot change kind of class {name}.")
end
if glob.is_attribute then
if gbc.is_interface then
v.error(self, "Error: Attempt to define attribute {prop} in the interface {prop.local_class}.")
- else if gbc.is_universal then
- v.error(self, "Error: Attempt to define attribute {prop} in the universal class {prop.local_class}.")
+ else if gbc.is_enum then
+ v.error(self, "Error: Attempt to define attribute {prop} in the enum class {prop.local_class}.")
end
else if glob.is_init then
if gbc.is_interface then
v.error(self, "Error: Attempt to define a constructor {prop} in the class {prop.local_class}.")
- else if gbc.is_universal then
- v.error(self, "Error: Attempt to define a constructor {prop} in the universal {prop.local_class}.")
+ else if gbc.is_enum then
+ v.error(self, "Error: Attempt to define a constructor {prop} in the enum {prop.local_class}.")
end
end
if prop.signature == null then
# Visitor used to build a full method name from multiple tokens
private class MethidAccumulator
-special Visitor
+ super Visitor
readable var _name: Buffer = new Buffer
redef fun visit(n)
do
# labeled 'do' uses the BreakOnlyEscapableBlock subclass
# closures uses the EscapableClosure subclass
class EscapableBlock
-special ScopeBlock
+ super ScopeBlock
# The label of the block (if any)
# Set by the push in EscapableContext
readable var _lab: nullable Symbol
# specific EscapableBlock where only labelled break can be used
class BreakOnlyEscapableBlock
-special EscapableBlock
+ super EscapableBlock
redef fun is_break_block: Bool do return true
init(node: ANode) do super
# specific EscapableBlock for closures
class EscapableClosure
-special EscapableBlock
+ super EscapableBlock
# The associated closure
readable var _closure: MMClosure
###############################################################################
class AEscapeExpr
-special ALabelable
+ super ALabelable
# The associated escapable block
readable var _escapable: nullable EscapableBlock
end
redef class AContinueExpr
-special AEscapeExpr
+ super AEscapeExpr
redef fun kwname do return "continue"
end
redef class ABreakExpr
-special AEscapeExpr
+ super AEscapeExpr
redef fun kwname do return "break"
end
# Loader of nit source files
class SrcModuleLoader
-special ModuleLoader
+ super ModuleLoader
redef type MODULE: MMSrcModule
redef fun file_type do return "nit"
break
end
if not name_is_valid then
- context.error( null, "{filename}: Error package name \"{name}\", must start with a lower case letter and contain only letters, digits and '_'." )
+ context.error( null, "{filename}: Error module name \"{name}\", must start with a lower case letter and contain only letters, digits and '_'." )
end
var lexer = new Lexer(file, filename)
# Concrete NIT source module
class MMSrcModule
-special MMModule
+ super MMModule
# A source module can locate AST nodes of related MM entities
# Once a source module AST is no more needed, _nodes is set to null
# See ToolContext::keep_ast property in syntax.nit for details
# Concrete NIT source local classes
class MMSrcLocalClass
-special MMConcreteClass
+ super MMConcreteClass
# The first related AST node (if any)
fun node: nullable AClassdef do return mmmodule.nodes(self).as(nullable AClassdef)
# Concrete NIT source attribute
class MMSrcAttribute
-special MMAttribute
+ super MMAttribute
redef fun node: nullable AAttrPropdef do return mmmodule.nodes(self).as(nullable AAttrPropdef)
init(name: Symbol, cla: MMLocalClass, n: AAttrPropdef)
do
# Concrete NIT source method
class MMSrcMethod
-special MMMethod
+ super MMMethod
redef fun is_intern do return false
redef fun is_abstract do return false
redef fun extern_name do return null
# Concrete NIT source method for an automatic accesor
class MMAttrImplementationMethod
-special MMSrcMethod
+ super MMSrcMethod
redef fun node: nullable AAttrPropdef do return mmmodule.nodes(self).as(nullable AAttrPropdef)
init(name: Symbol, cla: MMLocalClass, n: AAttrPropdef)
do
# Concrete NIT source method for an automatic read accesor
class MMReadImplementationMethod
-special MMAttrImplementationMethod
+ super MMAttrImplementationMethod
init(name: Symbol, cla: MMLocalClass, n: AAttrPropdef)
do
super(name, cla, n)
# Concrete NIT source method for an automatic write accesor
class MMWriteImplementationMethod
-special MMAttrImplementationMethod
+ super MMAttrImplementationMethod
init(name: Symbol, cla: MMLocalClass, n: AAttrPropdef)
do
super(name, cla, n)
# Concrete NIT source method for an explicit method
class MMMethSrcMethod
-special MMSrcMethod
+ super MMSrcMethod
redef readable var _is_init: Bool
redef readable var _is_intern: Bool
redef readable var _is_abstract: Bool
# Concrete NIT source virtual type
class MMSrcTypeProperty
-special MMLocalProperty
-special MMTypeProperty
+ super MMLocalProperty
+ super MMTypeProperty
init(name: Symbol, cla: MMLocalClass, n: ATypePropdef)
do
super(name, cla)
# Concrete NIT implicit constructor
class MMImplicitInit
-special MMMethSrcMethod
+ super MMMethSrcMethod
fun super_init: nullable MMLocalProperty is abstract
redef fun is_init do return true
readable var _unassigned_attributes: Array[MMSrcAttribute]
# Variable declared with 'var'
class VarVariable
-special Variable
+ super Variable
redef fun kind do return once "variable"
init(n: Symbol, d: ANode) do super
end
# Parameter of method (declared in signature)
class ParamVariable
-special Variable
+ super Variable
redef fun kind do return once "parameter"
init(n: Symbol, d: nullable ANode) do super
end
# Automatic variable (like in the 'for' statement)
class AutoVariable
-special Variable
+ super Variable
redef fun kind do return once "automatic variable"
init(n: Symbol, d: ANode) do super
end
# False variable corresponding to closures declared in signatures
# Lives in the same namespace than variables
class ClosureVariable
-special Variable
+ super Variable
redef fun kind do return once "closure"
# The signature of the closure
# Visitor used during the syntax analysis
class AbsSyntaxVisitor
-special Visitor
+ super Visitor
fun get_type_by_name(clsname: Symbol): MMType
do
if not _mmmodule.has_global_class_named(clsname) then _tc.fatal_error(_mmmodule.location, "Missing necessary class: \"{clsname}\"")
end
class AAbsAbsSendExpr
-special AExpr
+ super AExpr
# The signature of the called property (require is_typed)
fun prop_signature: MMSignature is abstract
end
class AAbsSendExpr
-special AAbsAbsSendExpr
+ super AAbsAbsSendExpr
# The invoked method (require is_typed)
fun prop: MMMethod is abstract
end
class ASuperInitCall
-special AAbsSendExpr
+ super AAbsSendExpr
end
redef class ASuperExpr
-special ASuperInitCall
+ super ASuperInitCall
fun init_in_superclass: nullable MMMethod is abstract
end
redef class ANewExpr
-special AAbsSendExpr
+ super AAbsSendExpr
end
redef class ASendExpr
-special ASuperInitCall
+ super ASuperInitCall
# Closure definitions
fun closure_defs: nullable Array[AClosureDef] is abstract
end
end
class ASendReassignExpr
-special ASendExpr
-special AReassignFormExpr
+ super ASendExpr
+ super AReassignFormExpr
# The invoked method used to read (require is_typed)
# prop is the method used to write
fun read_prop: MMMethod is abstract
end
redef class ACallReassignExpr
-special ASendReassignExpr
+ super ASendReassignExpr
end
redef class ABraReassignExpr
-special ASendReassignExpr
+ super ASendReassignExpr
end
redef class AAttrFormExpr
end
redef class AClosureCallExpr
-special AAbsAbsSendExpr
+ super AAbsAbsSendExpr
# Associated closure variable
fun variable: ClosureVariable is abstract
end
# * Resolve call and attribute access
# * Check type conformance
private class TypingVisitor
-special AbsSyntaxVisitor
+ super AbsSyntaxVisitor
redef fun visit(n)
do
if n != null then n.accept_typing(self)
var j = 0
while j < v.local_class.cshe.direct_greaters.length do
var c = v.local_class.cshe.direct_greaters[j]
- if c.global.is_interface or c.global.is_universal or c.global.is_mixin then
+ if c.global.is_interface or c.global.is_enum or c.global.is_mixin then
j += 1
else if cur_c != null and (c.cshe <= cur_c or cur_c.global.is_mixin) then
if c == cur_c then j += 1
# An abstract control structure with feature escapable block
class AAbsControl
-special AExpr
+ super AExpr
# The corresponding escapable block
readable var _escapable: nullable EscapableBlock
end
redef class ADoExpr
-special AAbsControl
+ super AAbsControl
redef fun accept_typing(v)
do
process_control(v, new BreakOnlyEscapableBlock(self), n_label, false)
end
redef class AWhileExpr
-special AAbsControl
+ super AAbsControl
redef fun accept_typing(v)
do
process_control(v, new EscapableBlock(self), n_label, true)
end
redef class ALoopExpr
-special AAbsControl
+ super AAbsControl
redef fun accept_typing(v)
do
process_control(v, new EscapableBlock(self), n_label, true)
end
redef class AForExpr
-special AAbsControl
+ super AAbsControl
var _variable: nullable AutoVariable
redef fun variable do return _variable.as(not null)
end
class ATypeCheckExpr
-special AExpr
+ super AExpr
private fun check_expr_cast(v: TypingVisitor, n_expr: AExpr, n_type: AType)
do
if not v.check_expr(n_expr) then return
end
redef class AIsaExpr
-special ATypeCheckExpr
+ super ATypeCheckExpr
redef fun after_typing(v)
do
check_expr_cast(v, n_expr, n_type)
end
redef class AAsCastExpr
-special ATypeCheckExpr
+ super ATypeCheckExpr
redef fun after_typing(v)
do
check_expr_cast(v, n_expr, n_type)
end
class A
-special O
+ super O
init do end
end
end
class B
-special A
-special U
+ super A
+ super U
redef fun output do 2.output
init do end
end
end
class B
-special A
+ super A
end
fun outa(a: A) do a.output
end
class B
-special A
+ super A
fun bar do 2.output
end
end
class Bar
-special Foo
+ super Foo
var _a3: Int
redef fun run
do
import base_attr2
class B
-special A
+ super A
fun foo_b(a: A)
do
a1.output
end
class B
-special A
+ super A
redef var foo: Int = 20
var bar: Int redef writable = 30
redef var baz: Int redef writable = 40
end
class C
-special B
+ super B
redef fun foo: Int do return 100
redef fun bar=(i: Int) do i.output
redef fun baz: Int do return 400
end
class B
-special A
+ super A
#alt1#var foo: Int = 10
#alt2#redef var foo: Int = 10
#alt3#var foo: Int writable = 10
end
class B
-special A
+ super A
redef fun foo: Int do return super + 10
redef fun bar=(i: Int)
do
end
class Bar
-special Foo
+ super Foo
readable writable var _a3: Int
redef fun run
do
interface Object
end
-universal Int
+enum Int
fun output is intern
fun +(o: Int): Int is intern
end
-universal Bool
+enum Bool
fun output is intern
end
end
class Bar
-special Foo
+ super Foo
var _a3: Integer#!alt1# #!alt2#
#alt1#var _a3: Integer = new Integer(9000)
#alt2#var _a3: nullable Integer
end
class Baz
-special Foo
+ super Foo
end
#alt4# var b2 = new Baz
interface Object
end
-universal Int
+enum Int
fun output is intern
fun +(o: Int): Int is intern
end
end
class Bar
-special Foo
+ super Foo
var _a3: Integer
redef fun run
do
interface Object
end
-universal Int
+enum Int
fun output is intern
fun +(o: Int): Int is intern
end
end
class Bar
-special Foo
+ super Foo
var _a3: Int
redef fun run
do
end
class B
-special A
+ super A
fun unreasheable
do
var a: A
end
class C
-special A
+ super A
init do end
end
end
class U
-special T
+ super T
end
class V
-special T
+ super T
end
class W
-special U
-special V
+ super U
+ super V
end
fun maybe: Bool do return true
import base_closure2
class B
-special A
+ super A
redef fun foo
!bar(i: Int) #!alt13# #!alt14# #!alt15#
#alt13# !bar
end
class B
-special A
+ super A
redef fun ==(a: nullable Object): Bool
do
if not a isa B then
end
class B
-special A
+ super A
redef fun i_to_s(i: Int)
do
(i+1).output
end
class G1
-special G[G1]
+ super G[G1]
redef fun foo
do
1.output
end
class G2
-special G[G2]
+ super G[G2]
redef fun foo
do
2.output
end
class B
-special A
+ super A
init(s: Char) do
'B'.output
'['.output
end
class C
-special B
+ super B
init(s) do
'C'.output
'['.output
end
class D
-special C
+ super C
init(s) do super
end
end
class B
-special A
+ super A
init cb
do
'B'.output
end
class C
-special B
+ super B
init cc
do
'C'.output
end
class M
-special A
+ super A
redef fun foo
do
'm'.output
end
class N
-special B
-special M
+ super B
+ super M
redef fun foo
do
'n'.output
end
class O
-special N
-special C
+ super N
+ super C
init co
do
'O'.output
end
class B
-special A
+ super A
#alt1# init cb
#alt1# do
#alt1# 'B'.output
end
class C
-special A
+ super A
#alt2# init cc
#alt2# do
#alt2# 'C'.output
end
class M
-special C
+ super C
redef fun foo
do
'm'.output
end
class N
-special B
-special M
+ super B
+ super M
redef fun foo
do
'n'.output
end
class M
-special A
+ super A
redef fun foo
do
'm'.output
end
class B
-special A
+ super A
init cb
do
'B'.output
end
class N
-special A
+ super A
redef fun foo
do
'n'.output
end
class O
-special M
-special B
+ super M
+ super B
redef fun foo
do
'o'.output
end
class P
-special B
-special N
+ super B
+ super N
redef fun foo
do
'p'.output
end
class Q
-#alt0#special M
-#alt0#special B
-#alt0#special N
+ #alt0#super M
+ #alt0#super B
+ #alt0#super N
-#alt1#special O
-#alt1#special N
+ #alt1#super O
+ #alt1#super N
-#alt2#special M
-#alt2#special P
+ #alt2#super M
+ #alt2#super P
-#alt3#special O
-#alt3#special P
+ #alt3#super O
+ #alt3#super P
+
redef fun foo
do
'q'.output
end
class O
-special M
-special B
+ super M
+ super B
redef fun foo
do
'o'.output
end
class P
-special B
-special N
+ super B
+ super N
redef fun foo
do
'p'.output
end
class Q
-#alt0#special M
-#alt0#special B
-#alt0#special N
+ #alt0#super M
+ #alt0#super B
+ #alt0#super N
-#alt1#special O
-#alt1#special N
+ #alt1#super O
+ #alt1#super N
-#alt2#special M
-#alt2#special P
+ #alt2#super M
+ #alt2#super P
-#alt3#special O
-#alt3#special P
+ #alt3#super O
+ #alt3#super P
redef fun foo
do
'q'.output
end
class B
-special A
+ super A
init cb(a, b: Char)
do
'B'.output
end
class C
-special B
+ super B
init cc(a,b,c: Char)
do
'C'.output
end
class M
-special A
+ super A
redef fun foo
do
'm'.output
end
class N
-special B
-special M
+ super B
+ super M
redef fun foo
do
'n'.output
end
class O
-special N
-special C
+ super N
+ super C
init co(a,b,c,o: Char)
do
'O'.output
end
class B
-special A
+ super A
init do
'B'.output
'1'.output
end
class C
-special A
+ super A
init do
'C'.output
'1'.output
end
class D
-special B
-special C
+ super B
+ super C
init do
'D'.output
'0'.output
end
class B
-special A
+ super A
init initb do
'B'.output
'1'.output
end
class C
-special A
+ super A
init do
'C'.output
'1'.output
end
class D
-special B
-special C
+ super B
+ super C
init initd do
#alt1# super
'D'.output
end
class B
-special A
+ super A
#alt1#redef init do '1'.output
init do '1'.output #!alt1#
#alt1#redef init init2 do '2'.output
end
class A
-special Inline__
+ super Inline__
redef fun bar do return 20
fun baz do 3.output
end
class B
-special A
+ super A
redef fun foo do 100.output
redef fun bar do return 200
redef fun baz do 300.output
end
class A
-special Inline__
+ super Inline__
end
var a: A = new A
end
class A
-special Inline__
+ super Inline__
end
var a: A = new A
end
class A
-special Inline__
+ super Inline__
end
fun test1
end
class A
-special Inline__
+ super Inline__
redef fun bar do return 20
redef fun baz do bar.output
end
end
class A
-special Inline__
+ super Inline__
redef fun foo(i: Int)
do
'A'.output
end
class A
-special O
+ super O
init do end
end
end
class B
-special A
-special U
+ super A
+ super U
init do end
end
init do end
end
class B
-special A
+ super A
fun foo do 0.output
init do end
end
class C
-special B
+ super B
fun bar do 1.output
init do end
end
end
class B
-special A
+ super A
fun foo(i: Int) do i.output
init do end
end
init do end
end
class B
-special A
+ super A
fun foo(i: Int) do i.output
fun bar: Bool do return true
init do end
end
class B
-special A
+ super A
fun foo(i: Int) do i.output
init do end
end
end
class B
-special A
+ super A
fun foo do 0.output
init do end
end
class C
-special B
+ super B
fun bar do 1.output
init do end
end
end
class B
-special A
+ super A
redef fun bar(i: Int)
do
(i*100).output
private import base_prot
class A2
-special A
+ super A
fun o
do
pub
end
class B
-special A
+ super A
redef fun f0 do 0.output
redef fun f1(a: Int, b: Int) do (a+b).output
redef fun f2(a,b) do (a+b).output
end
class B
-special A
+ super A
redef fun bar(i: Int)
do
i.output
end
class B
-special A
+ super A
redef fun bar(i: Int)
do
i.output
end
class B
-special A
+ super A
redef fun foo
do
'B'.output
end
class C
-special A
+ super A
redef fun foo
do
'C'.output
end
class D
-special B
-special C
+ super B
+ super C
redef fun foo
do
'D'.output
fun output is abstract
end
-universal Int
+enum Int
redef fun output is intern
end
-universal Bool
+enum Bool
redef fun output is intern
end
end
class B
-special A
+ super A
fun b do 'B'.output
end
class C
-special A
+ super A
fun c do 'C'.output
end
end
class B
-special A
+ super A
end
fun rand: Bool do return true
end
class B
-special A
+ super A
init do end
end
end
class B
-special A
+ super A
init do end
end
end
class U
-special T
+ super T
redef fun foo do 1.output
init do end
end
import array
class C
-special A
+ super A
readable writable var _tab: nullable Array[E]
init do end
end
import base_virtual_type2
class C
-special A
+ super A
redef type E: U
init do end
end
end
class B
-#alt3#special A[Int]
+ #alt3#super A[Int]
type U: Int
fun test
end
class A
-special Elt
+ super Elt
var _a: Int
redef fun val1: Int do return _a
end
class Elt2
-special Elt
+ super Elt
var _b: Int
redef fun val1: Int do return _b/2
redef fun val2: Int do return _b
end
class B
-special Elt2
+ super Elt2
init(i: Int) do initelt2(i)
end
class C
-special Elt
+ super Elt
var _c: Int
var _d: Int
redef fun val1: Int do return _c end
end
class D
-special A
-special Elt2
+ super A
+ super Elt2
redef fun val1: Int do return _a end
redef fun val2: Int do return _b end
end
class E
-special Elt2
+ super Elt2
redef fun val1: Int do return 5 end
init(i: Int) do initelt2(i)
end
class EltSorter
-special AbstractSorter[Elt]
+ super AbstractSorter[Elt]
redef fun compare(a: Elt, b: Elt): Int
do
if _is_val1 then
end
class WakeUpNode
-special Node
+ super Node
fun wake_up is abstract
# Wake up the node
fun wake_up_in(d: Int)
end
class NodeSource
-special Node
+ super Node
var _nexts: nullable ArraySet[NodeSink] = null
fun attach(n: NodeSink)
# Add the sink `n' the the connected nodes
end
class NodeSink
-special Node
+ super Node
fun recieve(n: NodeSource) is abstract
# the `n' has emeted a signal
end
#
class BeepSource
-special NodeSource
-special WakeUpNode
+ super NodeSource
+ super WakeUpNode
redef fun wake_up
do
send
end
class CountSink
-special NodeSink
+ super NodeSink
readable var _count: Int = 0
redef fun recieve(n: NodeSource)
do
end
class SimpleCountSink
-special CountSink
+ super CountSink
init(name: String)
do
end
class NodeAlternate
-special NodeSink
-special NodeSource
+ super NodeSink
+ super NodeSource
var _last: nullable NodeSource
redef fun recieve(n: NodeSource)
do
end
class NodeEat
-special CountSink
-special NodeSource
+ super CountSink
+ super NodeSource
var _limit: Int
redef fun recieve(n: NodeSource)
do
end
class NodeDelay
-special NodeSource
-special NodeSink
-special WakeUpNode
+ super NodeSource
+ super NodeSink
+ super WakeUpNode
var _delay: Int
redef fun recieve(n: NodeSource)
do
end
class B
-special A
+ super A
redef fun val: Int
do
return 1
end
class C
-special A
+ super A
redef fun val: Int
do
return 2
end
class D
-special A
+ super A
redef fun val: Int
do
return 3
init do end
end
class B
-special A
+ super A
redef fun foo do end
init do end
end
class C
-special A
+ super A
init do end
end
class D
-special B
-special C
+ super B
+ super C
init do end
end
class E
-special B
-special C
+ super B
+ super C
redef fun foo do end
init do end
end
class F
-special D
-special E
+ super D
+ super E
redef fun foo do end
init do end
import base_gen_f
class G3
-special G1
-special G2
+ super G1
+ super G2
end
# limitations under the License.
class A
-special Array[Int]
-special Array[Char]
+ super Array[Int]
+ super Array[Char]
end
end
class A
-special B
+ super B
end
class B
-special C
+ super C
end
class C
-special A
+ super A
end
interface Discrete
end
-universal Int
-special Discrete
+enum Int
+ super Discrete
end
interface Collection[E]
class String
end
-universal NativeString
+enum NativeString
end
class Array[E]
-special Collection[E]
+ super Collection[E]
end
class Range[E]
-special Collection[E]
+ super Collection[E]
end
#alt1#var a = [1, 2]
fun toto do end
end
class C
-special A
-special B
+ super A
+ super B
end
fun toto do end
end
class B
-special A
+ super A
redef fun toto do end
end
class C
-special A
+ super A
redef fun toto do end
end
class D
-special B
-special C
+ super B
+ super C
end
var _a: Int
end
class B
-special A
+ super A
redef var _a: Object
end
end
class B
-special A
+ super A
redef fun toto do end
end
end
class B
-special A
+ super A
redef fun toto(c: Object) do end
end
end
class B
-special A
+ super A
redef fun toto(c: Char) do end
end
end
class B
-special A
+ super A
redef fun toto: Int do return 2end
end
end
class B
-special A
+ super A
redef fun toto: Char do return 'a' end
end
#alt1#end
class A
-special Fail
+ super Fail
end
#alt1#end
class B
-special Array[Fail]
+ super Array[Fail]
end
end
class OneBottle
-special Bottle
+ super Bottle
redef fun sing
do
sing_start
end
class TwoBottles
-special Bottle
+ super Bottle
redef fun sing
do
sing_start
end
class Bottles
-special Bottle
+ super Bottle
redef fun sing
do
end
class RayonNormal
-special Rayon
+ super Rayon
init(r: String)
do
class RayonFroid
# Les super-classes sont déclarés avec le mot clé "special".
# Implicitement, c'est "Object", la classe de tous les objets.
-special Rayon
+ super Rayon
# Tant qu'on parle d'implicite, en l'absence de bloc de propriétés,
# celles-ci sont déclarées en tant que "public"
class BackIntSorter
-special AbstractSorter[Int]
+ super AbstractSorter[Int]
redef fun compare(a: Int, b: Int): Int
do
return b <=> a
end
class DecimalSorter
-special AbstractSorter[Int]
+ super AbstractSorter[Int]
redef fun compare(a: Int, b: Int): Int
do
return (a%10) <=> (b%10)
end
class A
-special B
+ super B
redef fun foo do
print "afoo"
end
end
class B # class 2
-special A
+ super A
redef fun a12
do
print(12)
# B is class 4
class C # class 5
-special B
+ super B
redef fun all25
do
print(250)
end
class B
-special A
+ super A
redef fun q(x: A): B do return self end
end
class C
-special B
+ super B
fun r(x: B) do end
fun s: B do return self end
var _a: B
-./base_init_inherit3.nit:82,1--87,7: Error: No property Q::foo is inherited. Remove the redef keyword to define a new property.
+./base_init_inherit3.nit:85,2--88,7: Error: No property Q::foo is inherited. Remove the redef keyword to define a new property.
-./error_kern_attr_int.nit:18,2--18: Error: Attempt to define attribute _toto in the universal class Int.
+./error_kern_attr_int.nit:18,2--18: Error: Attempt to define attribute _toto in the enum class Int.
-./error_type_not_ok.nit:21,9--12: Type error: class Fail not found in module error_type_not_ok.
+./error_type_not_ok.nit:21,8--11: Type error: class Fail not found in module error_type_not_ok.
-./error_type_not_ok2.nit:21,15--18: Type error: class Fail not found in module error_type_not_ok2.
+./error_type_not_ok2.nit:21,14--17: Type error: class Fail not found in module error_type_not_ok2.
-alt/error_type_not_ok2_alt1.nit:21,15--18: Type error: 'Fail' is a generic class.
+alt/error_type_not_ok2_alt1.nit:21,14--17: Type error: 'Fail' is a generic class.
-alt/error_type_not_ok_alt1.nit:21,9--12: Type error: 'Fail' is a generic class.
+alt/error_type_not_ok_alt1.nit:21,8--11: Type error: 'Fail' is a generic class.
import game
class Playing
-special SDL_EventListener
+ super SDL_EventListener
redef fun on_mouse_button(evt: SDL_MouseButtonEvent)
do
if evt.is_pressed then
end
class MovingSprite
-special Sprite
+ super Sprite
var _rx: Float # Real X axis (sub-pixel)
var _ry: Float # Real Y axix (sub-pixel)
readable var _vx: Float # X velocity (speed)
end
class Player
-special MovingSprite
+ super MovingSprite
fun update_one_step(mx: Int, my: Int)
do
end
class Box
-special Sprite
+ super Sprite
var _images: Array[SDL_Surface]
var _image_number: Int
var _image_delay: Int
end
class Particle
-special MovingSprite
+ super MovingSprite
fun update_one_step: Bool
do
_ttl = _ttl - 1
init do end
end
-class GeneBool special Gene[Bool]
+class GeneBool
+ super Gene[Bool]
fun a=(b: Bool)
do
_a_ = b
end
class B
-special A
+ super A
redef fun foo
do
2.output
end
class C
-special B
+ super B
fun baz
do
bar
end
class TestNative
-special ArrayCapable[Int]
+ super ArrayCapable[Int]
init
do
import kernel
class Gen1[E, F]
-special Object
+ super Object
readable writable var _e: E
var _f_: F
fun f: F do return _f_ end
end
class Gen2[G: Int]
-special Gen1[G, Char]
+ super Gen1[G, Char]
init(e:G) do super(e)
end
class Gen3[H: Int]
-special Gen1[H, Char]
+ super Gen1[H, Char]
redef readable redef writable redef var _e: H
redef var _f_: Char = 'N'
redef fun f: Char do return _f_ end
end
class U
-special T
+ super T
end
class A[E: T]
end
class B
-special A[T]
+ super A[T]
end
#class A[F: U]
end
class B
-special A
+ super A
redef fun g do print(2) end
redef fun i do print(2) end
end
class C
-special A
+ super A
redef fun h do print(3) end
redef fun i do print(3) end
end
class D
-special B
-special C
+ super B
+ super C
redef fun i do print(4) end
init do end
end
class B
-special A
+ super A
redef fun foo
do
printn("B")
end
class C
-special A
+ super A
fun foo2
do
printn("C")
end
class D
-special B
-special C
+ super B
+ super C
redef fun foo
do
printn("D")
end
class B
-special A
+ super A
redef fun foo
do
21.output
end
class C
-special B
+ super B
redef fun foo
do
31.output
end
class J
-special I[A]
+ super I[A]
fun bar do 2.output end
init do end
end
class H[F]
-special G[A]
+ super G[A]
redef fun baz(e: J) do e.bar end
init do end
end
class A
-special O
+ super O
redef fun foo
do
printn(11)
end
class B
-special A
+ super A
redef fun foo
do
printn(12)
end
class B
-special A
+ super A
redef fun foo
do
1.output
end
class B[G: Int]
-special A[Bool,G]
+ super A[Bool,G]
redef fun foo(b: Bool, g: G): G
do
1.output
import test_super_gen
class C[H: Int]
-special A[H, Int]
+ super A[H, Int]
redef fun foo(a: H, b: Int): H
do
return super
end
class B
-special A
+ super A
redef fun foo(i: Int): Int
do
return super + 5
import test_super_param_raf
class C
-special B
+ super B
redef fun foo(a: Int): Int
do
return super * 2
end
class B
-special A
+ super A
redef var _foo: nullable Int
redef var _bar: nullable B
redef fun output do 'B'.output end
end
class B
-special A
+ super A
redef type T: B
redef type U: Int
redef fun foo(a: T) do a.out
end
redef class Int
-special B
+ super B
redef type T: Int
redef fun foo(a: T) do a.out
redef fun bar(b: U) do b.out
end
class B
-special A
+ super A
redef fun foo: B
do
return new B
end
redef class Int
-special B
+ super B
redef fun foo: Int
do
return 8