Extensions to the Nit model for foreign languages.

Introduced classes

class MInnerClass

nitc :: MInnerClass

An inner class.
class MInnerClassDef

nitc :: MInnerClassDef

An inner class definition.
class MRawType

nitc :: MRawType

A type described by a text annoted with links.
class MTypePart

nitc :: MTypePart

A part of a RawType.

Redefined classes

redef class Sys

nitc :: model_ext $ Sys

The main class of the program.

All class definitions

class MInnerClass

nitc $ MInnerClass

An inner class.
class MInnerClassDef

nitc $ MInnerClassDef

An inner class definition.
class MRawType

nitc $ MRawType

A type described by a text annoted with links.
class MTypePart

nitc $ MTypePart

A part of a RawType.
redef class Sys

nitc :: model_ext $ Sys

The main class of the program.
package_diagram nitc::model_ext model_ext nitc\>model\> model nitc::model_ext->nitc\>model\> ordered_tree ordered_tree nitc\>model\>->ordered_tree nitc nitc nitc\>model\>->nitc nitc\>frontend\> frontend nitc\>model\>->nitc\>frontend\> trees trees nitc\>model\>->trees more_collections more_collections nitc\>model\>->more_collections graph graph nitc\>model\>->graph json json nitc\>model\>->json ...ordered_tree ... ...ordered_tree->ordered_tree ...nitc ... ...nitc->nitc ...nitc\>frontend\> ... ...nitc\>frontend\>->nitc\>frontend\> ...trees ... ...trees->trees ...more_collections ... ...more_collections->more_collections ...graph ... ...graph->graph ...json ... ...json->json nitc::neo neo nitc::neo->nitc::model_ext nitc::test_neo test_neo nitc::test_neo->nitc::neo nitc::test_neo... ... nitc::test_neo...->nitc::test_neo

Ancestors

module abstract_collection

core :: abstract_collection

Abstract collection classes and services.
module abstract_text

core :: abstract_text

Abstract class for manipulation of sequences of characters
module array

core :: array

This module introduces the standard array structure.
module bitset

core :: bitset

Services to handle BitSet
module bytes

core :: bytes

Services for byte streams and arrays
module caching

serialization :: caching

Services for caching serialization engines
module circular_array

core :: circular_array

Efficient data structure to access both end of the sequence.
module codec_base

core :: codec_base

Base for codecs to use with streams
module codecs

core :: codecs

Group module for all codec-related manipulations
module collection

core :: collection

This module define several collection classes.
module core

core :: core

Standard classes and methods used by default by Nit programs and libraries.
module digraph

graph :: digraph

Implementation of directed graphs, also called digraphs.
module engine_tools

serialization :: engine_tools

Advanced services for serialization engines
module environ

core :: environ

Access to the environment variables of the process
module error

core :: error

Standard error-management infrastructure.
module exec

core :: exec

Invocation and management of operating system sub-processes.
module file

core :: file

File manipulations (create, read, write, etc.)
module fixed_ints

core :: fixed_ints

Basic integers of fixed-precision
module fixed_ints_text

core :: fixed_ints_text

Text services to complement fixed_ints
module flat

core :: flat

All the array-based text representations
module gc

core :: gc

Access to the Nit internal garbage collection mechanism
module hash_collection

core :: hash_collection

Introduce HashMap and HashSet.
module inspect

serialization :: inspect

Refine Serializable::inspect to show more useful information
module iso8859_1

core :: iso8859_1

Codec for ISO8859-1 I/O
module kernel

core :: kernel

Most basic classes and methods.
module list

core :: list

This module handle double linked lists
module location

nitc :: location

Nit source-file and locations in source-file
module math

core :: math

Mathematical operations
module mdoc

nitc :: mdoc

Documentation of model entities
module meta

meta :: meta

Simple user-defined meta-level to manipulate types of instances as object.
module mmodule

nitc :: mmodule

modules and module hierarchies in the metamodel
module model_base

nitc :: model_base

The abstract concept of model and related common things
module more_collections

more_collections :: more_collections

Highly specific, but useful, collections-related classes.
module mpackage

nitc :: mpackage

Modelisation of a Nit package
module native

core :: native

Native structures for text and bytes
module numeric

core :: numeric

Advanced services for Numeric types
module ordered_tree

ordered_tree :: ordered_tree

Manipulation and presentation of ordered trees.
module poset

poset :: poset

Pre order sets and partial order set (ie hierarchies)
module protocol

core :: protocol

module queue

core :: queue

Queuing data structures and wrappers
module range

core :: range

Module for range of discrete objects.
module re

core :: re

Regular expression support for all services based on Pattern
module ropes

core :: ropes

Tree-based representation of a String.
module serialization

serialization :: serialization

General serialization services
module serialization_core

serialization :: serialization_core

Abstract services to serialize Nit objects to different formats
module sorter

core :: sorter

This module contains classes used to compare things and sorts arrays.
module stream

core :: stream

Input and output streams of characters
module text

core :: text

All the classes and methods related to the manipulation of text entities
module time

core :: time

Management of time and dates
module union_find

core :: union_find

union–find algorithm using an efficient disjoint-set data structure
module utf8

core :: utf8

Codec for UTF-8 I/O

Parents

module model

nitc :: model

Classes, types and properties

Children

module neo

nitc :: neo

Save and load a Model to/from a Neo4j graph.

Descendants

module a_star-m

a_star-m

module test_neo

nitc :: test_neo

Test for neo model saving and loading.
# Extensions to the Nit model for foreign languages.
module doc::model_ext

intrude import model
intrude import model::model_base

# A type described by a text annoted with links.
#
# For use with Nitdoc only.
class MRawType
	super MType

	redef var model

	# The parts that contitute the description of the type.
	var parts: Sequence[MTypePart] = new Array[MTypePart]

	redef fun as_nullable do
		not_available
		return self
	end
	redef fun need_anchor do
		not_available
		return false
	end
	redef fun resolve_for(mtype, anchor, mmodule, cleanup_virtual) do
		not_available
		return self
	end
	redef fun can_resolve_for(mtype, anchor, mmodule) do
		not_available
		return true
	end
	redef fun collect_mclassdefs(mmodule) do
		not_available
		return new HashSet[MClassDef]
	end
	redef fun collect_mclasses(mmodule) do
		not_available
		return new HashSet[MClass]
	end
	redef fun collect_mtypes(mmodule) do
		not_available
		return new HashSet[MClassType]
	end

	redef fun to_s do return parts.to_s

	private fun not_available do
		assert false else
			sys.stderr.write "A `MRawType` is for documentation-purpose only so the requested operation is not available.\n"
		end
	end
end

# A part of a `RawType`.
class MTypePart
	super MEntity

	redef var model

	# The textual content.
	var text: String

	# If the part links to another entity, the targeted entity.
	var target: nullable MEntity

	redef fun name do return text
	redef fun to_s do return text

	# Return a version of `self` that links to the specified entity.
	fun link_to(target: nullable MEntity): MTypePart do
		return new MTypePart(model, text, target)
	end
end

# An inner class.
class MInnerClass
	super MProperty

	redef type MPROPDEF: MInnerClassDef

	# The actual class.
	var inner: MClass
end

# An inner class definition.
class MInnerClassDef
	super MPropDef

	redef type MPROPDEF: MInnerClassDef
	redef type MPROPERTY: MInnerClass

	# The actual class definition.
	var inner: MClassDef
end


# The “package” visiblity.
#
# Any visibility roughly equivalent to the default visibility of Java, that is
# private for a collection of modules.
fun package_visibility: MVisibility do return once new MVisibility("package", 2)

# A class kind with no equivalent semantic in Nit.
fun raw_kind(s: String): MClassKind do return new MClassKind(s, false, false, false)
src/doc/model_ext.nit:15,1--120,84