▼NLeMP | The lexical macro processor. Main classes: LeMP.Compiler and LeMP.MacroProcessor. |
►NPrelude | Defines prelude macros, which are predefined macros that normally do not have to be explicitly imported before use (in LES or EC#). |
CBuiltinMacros | Defines noMacro(...) for suppressing macro expansion and import macros your.namespace.name as an alias for #importMacros(your.namespace.name) . |
►NTest | |
CTestMacros | |
CCompiler | A class that helps you invoke MacroProcessor on on a set of source files, given a set of command-line options. |
CContainsMacrosAttribute | Marks a class to be searched for macros. |
CIMacroContext | This interface provides services offered by the lexical macro processor (LeMP). |
CInputOutput | For LeMP: an input file plus per-file options (input and output language) and output code. |
CLexicalMacroAttribute | Marks a method as an LEL simple macro. |
CMacroContext | Standard extension methods for IMacroContext. |
CMacroInfo | Data returned from IMacroContext.AllKnownMacros |
CMacroProcessor | Encapsulates the LeMP engine, a simple LISP-style macro processor, suitable for running LLLPG and other lexical macros. |
CTestCompiler | A simple version of Compiler that takes a single input and produces a StringBuilder. Pre-opens LeMP.Prelude namespace. |
▼NLoyc | Main Loyc namespace. This namespace includes all general-purpose code in the Loyc megaproject. It includes the code of Loyc.Essentials.dll and Loyc.Collections.dll (collections, geometry, MiniTest, MessageSink, etc.), and also the code of Loyc.Syntax.dll. |
►NCollections | Contains general-purpose interfaces (Loyc.Collections.IListSource{T}, ranges, etc.), collection implementations (Loyc.Collections.DList{T}, Loyc.Collections.WeakValueDictionary{K,V}, etc.), extension methods (Loyc.Collections.LCExt, Loyc.Collections.EnumerableExt, etc.), helper classes (Loyc.Collections.EmptyList{T}, (Loyc.Collections.Repeated{T}, etc.), and adapter classes (Loyc.Collections.ListSlice{T}, Loyc.Collections.BufferedSequence{T}, etc.). |
►NImpl | Contains helper classes and base classes for implementing collections (Loyc.Collections.Impl.InternalList{T}, Loyc.Collections.Impl.ListExBase{T}, Loyc.Collections.Impl.ListSourceBase{T}, etc.) Also contains the AList and CPTrie node classes, which perhaps should not be public ... |
CAListIndexer< K, T > | Observes changes and builds a table of items in the tree. |
►CAListInnerBase< K, T > | Internal implementation class. Shared base class of internal nodes for AList{T}, SparseAList{T}, BList{T}, BMultiMap{K,V} and BDictionary{K,V}. |
CEntry | |
CAListLeaf< K, T > | Internal implementation class. Shared code of non-sparse AList leaf nodes. |
CAListNode< K, T > | Internal implementation class. Base class for tree nodes in a list class derived from AListBase{T}. These nodes basically form an in-memory B+tree, not necessarily sorted, but structured like a B+tree. That means there are two node types: leaf and inner (internal) nodes. |
CAListTreeObserverExt | Helper methods for IAListTreeObserver{K,T}. |
CBaseDictionary< TKey, TValue > | A base class for user-defined dictionaries that want to implement both IDictionary(K,V) and IReadOnlyDictionary(K, V) . |
CBListLeaf< K, T > | Internal implementation class. Leaf node of BList{T} and BDictionary{K,V}. |
►CCPByteTrie< TValue > | A compact patricia trie that uses byte arrays as keys. |
CEnumerator | |
CCPEnumerator< T > | Traverses a CPTrie{T}. Returned by CPTrie{T}.ValueEnumerator(). |
►CCPIntTrie< TValue > | A trie that supports signed and unsigned keys with sizes up to 64 bits. Special encodings are used to preserve the sort order among integers of different sizes while using variable-length keys. |
CIntEnumerator | |
CLongEnumerator | |
CEnumeratorFrame< T > | A standard base class for enumerator frames used by NestedEnumerator{EnumeratorFrame{T},T} . |
CIAListTreeObserver< K, T > | An interface that is called to notify observers when items or nodes in the tree of a class derived from AListBase{K,T} (e.g. AList or BList) are added or removed. |
CIEnumeratorFrame< Frame, T > | Helper interface for NestedEnumerator{Frame, T}. |
►CInternalDList< T > | A compact auto-enlarging deque structure that is intended to be used within other data structures. It should only be used internally in "private" or "protected" members of low-level code. In most cases, you should use DList{T} instead. |
CEnumerator | |
CInternalList | Contains static methods to help manage raw arrays with even less overhead than InternalList{T}. |
CInternalList< T > | A compact auto-enlarging array structure that is intended to be used within other data structures. It should only be used internally in "private" or "protected" members of low-level code. |
►CInternalSet< T > | A hash-trie data structure for use inside other data structures. |
CEnumerator | |
CInternalSetStats | Statistics returned from InternalSet{T}.CountMemory. |
CKeylessHashtable< T > | A fairly obscure space-saving hashtable that offers no built-in way to store keys, only values. Because there are no keys, the hashtable cannot be rehashed when it is full, and searching for a given key finds all values in the same bucket, some of which may be unrelated. |
CKeylessHashtable< T, Int, Math > | The concrete implementation of KeylessHashtable{T}. Do not use directly; instead, call KeylessHashtable{T}.New. |
CKeyWalker | Internal implementation class. Represents a pointer to a location within a byte array. |
CListExBase< T > | A base class for classes that wish to implement IListEx{T}. Provides default implementations for most of the methods. |
CListSourceBase< T > | A base class for read-only collections that wish to implement IList{T} and IListSource{T}. Provides default implementations for most of the methods. |
CReadOnlyCollectionBase< T > | Helps you implement read-only collections by providing default implementations for most methods of ICollection{T} and IReadOnlyCollection{T}. |
CSCell | Standard cell, used to encode keys in a CPSNode |
►CSparseAListLeaf< T > | Internal implementation class. Leaf node of SparseAList{T}. |
CEntry | |
CTestHelpers | Helpers methods for unit tests for Loyc collection classes. |
CAList< T > | An all-purpose list structure with the following additional features beyond what's offered by List{T}: fast insertion and deletion (O(log N)), batch insertion and deletion, observability, fast cloning, freezability, and fast splitting and joining of large collections. |
►CAListBase< K, T > | Base class for the indexed tree-based data structures known as AList{T} and BList{T}. |
CEnumerator | |
CObserverMgr | A multiplexer that is only created for ALists that have two or more attached intances of IAListTreeObserver{K,T}. |
CAListBase< T > | Common base class of AList{T} and SparseAList{T}. Most of the functionality of the two types is identical, so this class is used to share code between them. |
CAListReverseView< K, T > | A reverse view of an AList. |
CArrayOf4< T > | |
CArraySlice< T > | Adapter: Provides access to a section of an array. |
CBDictionary< K, V > | An sorted dictionary that is efficient for all operations and offers indexed access to its list of key-value pairs. |
CBijection< K1, K2 > | A bijection is a one-to-one function and its inverse. It is implemented with a pair of dictionaries, one that maps K1 to K2 and another that maps K2 to K1. |
CBList< T > | An sorted in-memory list that is efficient for all operations and offers indexed access to its list. |
►CBMultiMap< K, V > | An sorted dictionary that allows multiple values to be associated with a single key. Note: both keys and values must be comparable. |
CValueList | Represents the set of values associated with a particular key in a BMultiMap{K,V} collection. |
CBufferedSequence< T > | Adapter: This class wraps an IEnumerator{T} or IEnumerable{T} into an IListSource{T}, lazily reading the sequence as TryGet is called. |
CCG | Contains global functions of Loyc.Collections that don't belong in any specific class. |
CCollectionAsReadOnly< T > | Adapter: a read-only wrapper that implements ICollection(T) and IReadOnlyCollection(T), returned from LCExt.AsReadOnly{T}. |
CCollectionDebugView< T > | This helper class gives a nice view of a custom collection within the debugger. |
►CCPStringTrie< TValue > | A compact patricia trie that uses strings as keys. |
CEnumerator | Enumerates key-value pairs in a CPStringTrie. |
CKeyCollection | Return value of CPStringTrie{T}.Keys. |
CKeyEnumerator | Enumerates keys of a CPStringTrie. |
CCPTrie< T > | Compact patricia tree class that stores keys as byte arrays. This class is intended to be use as a base class; a derived class can give meaning to the byte arrays, e.g. CPStringTrie encodes strings into byte arrays so they can be placed in the trie. |
CCPValueCollection< T > | Provides read-only access to the values of a CPTrie. |
CDictionaryDebugView< K, V > | Workaround for a limitation of the debugger: it doesn't support CollectionDebugView{T} when T is KeyValuePair{K,V}. This class is identical, except that T is replaced with KeyValuePair{K,V}. |
CDictionaryExt | Extension methods for Dictionary{K,V} and IDictionary{K,V}. |
CDList | This class is the same as DList{object} except that it also implements the IList interface. |
CDList< T > | A compact auto-enlarging list that efficiently supports supports insertions at the beginning or end of the list. |
CEmptyArray< T > | EmptyArray{T}.Value lets you avoid allocating an empty array on the heap. |
CEmptyEnumerator< T > | Helper class: an empty enumerator. |
CEmptyList< T > | Helper class: EmptyList{T}.Value is a read-only empty list. |
CEmptySequenceException | An exception thrown by methods or properties that require a non-empty sequence but were provided with an empty sequence. |
CEnumerableExt | Additional extension methods for IEnumerable{T}, beyond what LINQ provides. |
CEnumerationException | An exception thrown by an enumerator when it detects that the collection was modified after enumeration started but before it finished. |
CEnumeratorBase< T > | Base class to help you implement the standard IEnumerator{T} interface. All you have to do is override MoveNext() and, when successful, set the Current property. |
►CFVList< T > | A reference to a FVList, a so-called persistent list data structure. |
CEnumerator | Enumerator for FVList; also used by FWList. |
CFWList< T > | FWList is the mutable variant of the FVList data structure. |
CIAdd< in T > | An interface for depositing items. Includes only an Add(T) method. |
CIAddRange< T > | An interface typically implemented alongside ICollection{T}, for collection types that can add multiple items in one method call. |
CIArray< T > | This interface models the capabilities of an array: getting and setting elements by index, but not adding or removing elements. |
CIAutoCreatePool< in TKey, out TValue > | Represents a pool of objects in which an object is automatically created when requested by its key. |
CIAutoSizeArray< T > | An auto-sizing array is a list structure that allows you to modify the element at any index, including indices that don't yet exist; the collection automatically adds missing indices. |
CIBinumerable< T > | Interface for a collection that can return IBinumerator{T}s pointing to the beginning and end of the collection. |
CIBinumerator< T > | Extends the "enumerator" concept to allow backward enumeration. |
CIBRange< out T > | A bidirectional range. Allows you to read or remove the first or last element in a range. |
CIBRangeEx< R, T > | A bidirectional range that can perform operations such as intersection and overlap tests on pairs of ranges of the same type. |
CIBRangeEx< T > | A bidirectional range that can perform operations such as intersection and overlap tests on pairs of ranges. |
CICharSource | A read-only list of characters plus a Slice(int,int) method. |
CICollectionAndReadOnly< T > | This interface combines the original ICollection{T} with IReadOnlyCollection{T}. It exists for the same reason as IListAndListSource{T}, to fix ambiguity errors. |
CICollectionEx< T > | This interface combines the original ICollection(T) interface with IReadOnlyCollection(T), ISinkCollection(T), and IAddRange(T), a convenient way to implement all three. |
CICount | Holds the Count property found in nearly all collection interfaces. |
CIDeque< T > | Represents a double-ended queue that allows items to be added or removed at the beginning or end. |
CIFRange< out T > | A forward range. Allows you to read the first element from the range or skip it. The forward range lays the foundation for IBRange{T} and IRange{T}. |
CIIsEmpty | Holds the IsEmpty property that tells you if a collection is empty. |
CIListAndListSource< T > | This interface combines the original IList{T} interface with its "source" (read-only) component interfaces, including IReadOnlyList{T}, plus IListSource{T}. |
CIListEx< T > | This interface combines the original IList(T) interface with several IListSource(T), ISinkList(T), IArray(T) and several additional methods (e.g. RemoveAll, InsertRange). |
CIListRangeMethods< T > | An interface typically implemented alongside IList{T} for collection types that can add or remove multiple items in one method call. |
CIListSource< out T > | A read-only list indexed by an integer. |
CIMBinumerator< T > | A mutable bidirectional enumerator interface. Please note that the "Remove" method always moves to the next item, even though the Binumerator is capable of moving backward. |
CIMBRange< T > | A mutable bidirectional range. |
CIMEnumerator< T > | A mutable enumerator interface. Provides a "Remove" method like Java iterators have, and allows you to modify the current item. |
CIMFRange< T > | A mutable forward range. |
CIMRange< T > | A mutable random-access range. |
CIndexedAList< T > | A simple wrapper around AList that includes an AListIndexer{K,T} that can be used to find items relatively quickly in a large list. When an index is built and the list is large, it accelerates IndexOf(item), Contains(item) and Remove(item). |
CINegArray< T > | This interface models the capabilities of an array: getting and setting elements by index, but not adding or removing elements. This interface is the counterpart to IListSource{T} for lists whose minimum index is not (necessarily) zero. |
CINegAutoSizeArray< T > | An auto-sizing array is a list structure that allows you to modify the element at any index, including indexes that don't yet exist; the collection automatically adds missing indexes. |
CINegDeque< T > | Represents a Deque that supports negative indexes. In this kind of Deque, pushing and popping elements does not affect the indexes of the other elements in the collection. |
CINegListSource< T > | This interface is the counterpart to IListSource{T} for lists whose minimum index is not (necessarily) zero. |
CINotifyListChanging< T > | Encapsulates the ListChanging event that notifies listeners of dynamic changes to an indexed list, such as when items get added and removed or the whole list is refreshed. |
CInvertibleSet< T > | An immutable set that can be inverted. For example, an InvertibleSet<int> could contain "everything except 4 and 10", or it could contain a positive set such as "1, 2, and 3". |
CIPop< T > | Represents a collection that produces a sequence of items, and can return the next item without popping it (the Peek operation). |
CIPush< T > | Represents a collection that accepts a sequence of items. |
CIQueue< T > | Represents a FIFO (first-in-first-out) queue. |
CIRange< out T > | A random-access range, also known as a "slice". Allows you to narrow down the range like IBRange{T} does, and also provides random access via IListSource{T}. |
CIRangeEx< R, T > | A random-access range that can perform operations such as intersection and overlap tests on pairs of ranges of the same type. |
CIRangeEx< T > | A random-access range that can perform operations such as intersection and overlap tests on pairs of ranges. |
CISetImm< T > | An immutable set that supports numerous set operations. |
CISetImm< T, SetT > | An immutable set of type SetT with elements of type T. |
CISetOperations< in T, in InSetT, out OutSetT > | |
CISetOperations< in T, SetT > | Set-combining operations: With, Without, Union, Intersect, Except, Xor. |
CISinkArray< T > | Represents a write-only array. |
CISinkCollection< T > | Represents a write-only collection: you can modify it, but you cannot learn what it contains. |
CISinkList< T > | Represents a write-only indexable list class. |
CISparseList< T > | Represents a sparse list that allows insertion and removal of items and empty spaces. In a sparse list, some spaces can be "clear" meaning that they have no value. |
CISparseListEx< T > | A sparse list that supports additional methods including InsertRange(int, ISparseListSource{T}). |
CISparseListSource< T > | Represents a read-only indexed list in which parts of the index space may be unused or "clear". |
CIStack< T > | Represents a LIFO (last-in-first-out) stack. |
CKeyAlreadyExistsException | An exception thrown by dictionary objects when they are asked to "add" a key-value pair that already exists. |
►CKeyCollection< TKey, TValue > | Adapter: this is a read-only collection of Keys read from a generic IDictionary. It is a modified version of Dictionary{TKey, TValue}.KeyCollection from the Mono project, changed to use IDictionary instead of Dictionary. |
CEnumerator | |
CLCExt | Extension methods for Loyc Collection interfaces (such as IListSource{T}) and for Loyc Collection adapters (such as AsReadOnly{T}, which returns a CollectionAsReadOnly{T} adapter.) |
CLCInterfaces | This class contains extension methods that are provided as part of various Loyc.Collections interfaces. For example, it provides methods such as IndexOf(), Contains() and CopyTo(), that the traditional ICollection{T} and IList{T} interfaces require the author to write himself. |
CLinqToCollections | Work in progress. This class will enhance LINQ-to-Objects with type-preserving and/or higher-performance extension methods. |
CListAsListSource< T > | Helper type returned from LCExt.AsListSource{T}. |
CListChangeInfo< T > | Contains information about how a collection is about to change. |
CListExt | Extension methods and helper methods for List{T}, IList{T}, IReadOnlyList{T}, arrays, IListSource{T}, and for related mutable interfaces such as IArray{T}. |
CListSlice< T > | Adapter: a wrapper of a list that provides a view of a range of elements. Objects of this type are returned from ListExt.Slice{T} |
CListSourceAsList< T > | Adapter: a read-only wrapper that implements IList(T) and IListSource(T), returned from LCExt.AsList{T}. |
CListSourceAsSparse< T > | Adapter from IListSource{T} to ISparseListSource{T}. |
CListSourceDebugView< T > | This helper class gives a nice view of a custom collection within the debugger. |
CMap< K, V > | An immutable dictionary. |
CMapOrMMap< K, V > | Common base class that contains code shared between Map{K,V} and MMap{K,V}. |
CMMap< K, V > | A dictionary class built on top of InternalSet<KeyValuePair<K,V>> . |
CMSet< T > | A mutable set. |
CNegList< T > | Adapter: provides a view of an IList{T} in which the Count is the same, but the minimum index is not necessarily zero. Returned from LCExt.NegView{T}(IList{T},int). |
CNegListSlice< T > | Adapter: a random-access range for a slice of an INegListSource{T}. |
CNegListSource< T > | Adapter: provides a view of an IListSource{T} in which the Count is the same, but the minimum index is not necessarily zero. Returned from LCExt.NegView{T}(IListSource{T},int). |
CNestedEnumerable< Frame, T > | Helper type. You pass a cloneable Frame object to the constructor, and then a copy of this Frame is used to construct a new NestedEnumerator{Frame,T} each time the user calls GetEnumerator. |
CNestedEnumerator< Frame, T > | Helper class. An enumerator that helps enumerate tree data structures. It maintains a virtual call stack that avoids the performance hit of using nested "yield return" statements in C#. |
►CNumRange< Num, Math > | Represents a range of integers of a specified data type. |
CEnumerator | |
CRangeEnumerator< R, T > | Helper struct: enumerates through a forward range (IFRange{T}), calling the range methods through R instead of through IFRange{T}. |
CRangeEnumerator< T > | Helper struct: enumerates through a forward range (IFRange{T}). |
CRangeExt | Extension/helper methods for ranges. |
CReadOnlyAsCollection< T > | A read-only wrapper that implements ICollection(T) and ISource(T), returned from LCExt.AsCollection{T} |
CRepeated< T > | Helper struct. A sequence that stores one value, but acts like a list in which that value is repeated a specified number of times. Returned from Range.Repeat{T}. |
CReverseBinumerator< T > | Adapter: a IBinumerator{T} that swaps the MoveNext() and MovePrev() methods. |
CReversedList< T > | Adapter: a reversed of an IList{T}. TODO: unit tests. |
CReversedListSource< T > | Adapter: reversed view of IListSource{T} returned from LCExt.Reverse{T}. |
CSelectListSource< T, TResult > | Helper class: provides a modified view of an IListSource by transforming each element on-demand. Objects of this type are returned from LCExt.Select{T,TResult}(IListSource{T},Func{T,TResult}) |
CSelectNegLists< T > | Adapter: provides a view of an IList{T} in which element [i] is a NegList{T} N such that N[0] refers to element [i] in the original list. See LCExt.NegLists{T}(IList{T}) for more information. |
CSelectNegListSources< T > | Adapter: provides view of an IListSource{T} in which element [i] is a NegListSource{T} N such that N[0] refers to element [i] in the original list. See LCExt.NegLists{T}(IListSource{T}) for more information. |
►CSet< T > | An immutable set. |
CEnumerator | Enumerator for MSet{T}. |
CSimpleCache< T > | A cache designed to save memory by sharing instances of identical strings and other immutable objects. |
CSlice_< T > | Adapter: a random-access range for a slice of an IListSource{T}. |
CSparseAList< T > | A sparse A-List that implements ISparseList{T}. |
CStringSlice | A random-access slice of System.String. |
CUpCastListSource< T, TOut > | Helper class for treating a collection of a derived type as a collection of a base type or interface. |
CUpCastSource< T, TOut > | Helper class for treating a collection of a derived type as a collection of a base type or interface. |
►CValueCollection< TKey, TValue > | Adapter: this is a read-only collection of Values read from a generic IDictionary. It is a modified version of Dictionary{TKey, TValue}.ValueCollection from the Mono project, changed to use IDictionary instead of Dictionary. |
CEnumerator | Return type of GetEnumerator(). |
►CVList< T > | VList represents a reference to a reverse-order FVList. |
CEnumerator | Enumerates through a VList from index 0 up to index Count-1. |
CVListBlock< T > | VListBlock implements the core functionality of FVList, VList, FWList and WList. It is not intended to be used directly. |
CVListBlockArray< T > | Implementation of VListBlock(of T) that contains an array. It is always initialized with at least one item, and items cannot be removed unless the list is mutable. |
CVListBlockOfTwo< T > | The tail of a VList contains only one or two items. To improve efficiency slightly, these two-item lists are represented by a VListBlockOfTwo, which is more compact than VListBlockArray. |
CWeakKeyComparer< T > | Compares objects of the given type or WeakKeyReferences to them for equality based on the given comparer. Note that we can only implement IEqualityComparer{T} for T = object as there is no other common base between T and WeakKeyReference{T}. We need a single comparer to handle both types because we don't want to allocate a new weak reference for every lookup. |
CWeakKeyDictionary< TKey, TValue > | A dictionary with weak keys. |
CWeakKeyReference< T > | Provides a weak reference to an object of the given type to be used in a WeakDictionary along with the given comparer. |
CWeakValueDictionary< K, V > | A dictionary in which the values are weak. When a value has been garbage- collected, the dictionary acts as if the key is not present (except the Remove() method, which saves time by not checking whether the value is dead.) |
CWList< T > | WList is the mutable variant of the VList data structure. |
CWListBase< T > | Shared base class of FWList and WList. |
CWListProtected< T > | WList implementation in which the WList operations are only accessible to a derived class. |
►NEcs | |
►NParser | Enhanced C# parser |
CCommentSaver | A helper class that removes comments from a token stream, saving them into a list. This class deletes whitespace, but adds tokens to a list. |
CEcsLexer | Lexer for EC# source code (see ILexer{Token}). |
CEcsParser | Parses Enhanced C# code into a sequence of Loyc trees (LNode), one per top-level statement. |
CEcsPreprocessor | Handles EC# processor directives. |
CTokenExt | Provides the Type() extension method required by Token and the ToString(Token) method to express an EC# token as a string, for tokens that contain sufficient information to do so. |
CEcsLanguageService | The Value property provides easy access to the lexer, parser and printer for Enhanced C#. |
CEcsNodePrinter | Prints a Loyc tree to EC# source code. |
CEcsPrecedence | Contains Precedence objects that represent the precedence rules of EC#. |
CEcsValidators | A class filled with methods for checking whether a node has the correct LNode.Name and structure. For example, IsPropertyDefinition(node) checks whether node meets the requirements for being a property definition, such as having a Name equal to #property, and having name and return value that are complex identifiers. |
►NGeometry | Contains math code and data types for processing geometry (points, lines, polygons, etc.). Basic geometry stuff is in Loyc.Essentials.dll, while more advanced algorithms are found in Loyc.Utilities.dll. |
CBoundingBox< T > | Holds a mutable 2D bounding rectangle. |
CBoundingBoxExt | Extension methods for BoundingBox{T}. |
CBoundingBoxMath | Math and extension methods for BoundingBox{T}. |
CINewPoint3< Point, T > | This interface exists to work around a limitation of C#; see IPoint{T} and IPoint3{T}. |
CINewPoint< Point, T > | This interface exists to work around a limitation of C#; see IPoint{T}. |
CINewRectangle3< Rect, T > | This interface exists to work around a limitation of C#; see IRectangle3{T}. |
CINewRectangle< Rect, T > | This interface exists to work around a limitation of C#; see IRectangle{T}. |
CIPoint3< T > | A mutable 3D point with X, Y, and Z coordinates. |
CIPoint3Base< T > | This interface exists to work around a limitation of C#; use IPoint{T} instead. |
CIPoint3Reader< T > | Interface for reading the coordinates of a 3D point. |
CIPoint< T > | A mutable 2D point with X and Y coordinates. |
CIPointBase< T > | This interface exists to work around a limitation of C#; use IPoint{T} instead. |
CIPointReader< T > | Interface for reading the coordinates of a 2D point. |
CIRectangle3< T > | Represents a mutable 3D rectangle. |
CIRectangle3Base< T > | Represents a mutable 3D rectangular prism. |
CIRectangle3Reader< T > | Represents a read-only 3D rectangular prism. |
CIRectangle< T > | Represents a mutable 2D rectangle. |
CIRectangleBase< T > | Represents a mutable 2D rectangle. |
CIRectangleReader< T > | Represents a read-only 2D rectangle. |
CISize3Reader< T > | Interface for reading the size of a 3D object. |
CISizeReader< T > | Interface for reading the size of a 2D object. |
CLineMath | Contains algorithms that operate on lines. |
CLineSegment3< T > | Holds a 3D line segment. |
CLineSegment< T > | Holds a 2D line segment. |
CPoint3< T > | A 3D point (X-Y-Z triplet) structure. |
CPoint< T > | A 2D point (X-Y pair) structure. |
CPointExt | Contains methods for manipulating points in generic code. |
CPointMath | Math and extension methods for Point{T}. |
CPolygonMath | Contains useful basic polygon algorithms: hit testing, area calculation, orientation detection. |
CRectangle3Ext | Contains methods to manipulate rectangles. |
CRectangleExt | Contains methods to manipulate rectangles. |
CVector3< T > | Represents a three-dimensional vector, i.e. a magnitude and direction or the difference between two points, stored as X, Y and Z components. |
CVector3Math< T > | Implementation of IAdditionGroup{T} for Vector{T}. |
CVector< T > | Represents a two-dimensional vector, i.e. a magnitude and direction or the difference between two points, stored as X and Y components. |
CVectorExt | Extension methods for vectors. TODO: reconsider distribution of methods between this class and PointMath in Loyc.Utilities. |
CVectorMath< T > | An implementation of IAdditionGroup{T} for Vector{T}. |
►NLLParserGenerator | Code related to LLLPG, the Loyc LL(k) Parser Generator (LLLPG.exe). |
CAlts | Describes a series of alternatives (branches), a kleene star (*), or an optional element (?). |
CAltsA | |
CAndPred | Represents a zero-width assertion: either user-defined code to check a condition, or a predicate that scans ahead in the input and then backtracks to the starting point. |
CAutoValueSaverVisitor | Helper class invoked just after StageTwoParser. Its job is to create variables referenced by labels (label:item) and by code blocks ($RuleName), to modify the code blocks to remove the $ operator, and to update the ResultSaver of each labeled predicate. Also supports $result. |
CCodeGenHelperBase | Suggested base class for custom code generators. Each derived class is typically designed for a different kind of token. |
CDefaultErrorBranch | A singleton to be used as the value of Alts.ErrorBranch, representing the default_error branch. |
CEmptyA | |
CEndOfRule | A container for the follow set of a Rule. |
CGate | Represents a "gate" (p => m), which is a mechanism to separate prediction from matching in the context of branching (Alts). |
CGeneralCodeGenHelper | General-purpose code generator that supports any language with a finite number of input symbols represented by LNode expressions. This is the code generator helper for LLLPG parser {...} . |
CIntRange | Represents a range of single characters (e.g. 'A'..'Z'). |
CIntSet | Represents a set of characters (e.g. 'A'..'Z' | 'a'..'z' | '_'), or a set of token IDs. |
CIntStreamCodeGenHelper | Standard code generator for character/integer input streams and is the default code generator for LLParserGenerator. This is the code generator helper for LLLPG lexer {...} . |
CIPGCodeGenHelper | A class that implements this interface will generate small bits of code that the parser generator will use. The default implementation is IntStreamCodeGenHelper. To install a new code generator, set the LLParserGenerator.CodeGenHelper property or supply the generator in the constructor of LLParserGenerator. |
CIPGTerminalSet | This interface represents a set of terminals (and only a set of terminals, unlike TerminalPred which includes actions and a Basis Node). Typical lexers and parsers use PGIntSet and PGNodeSet, respectively. |
►CLLParserGenerator | Encapsulates LLLPG, the Loyc LL Parser Generator, which generates LL(k) recursive-descent parsers. |
CComputeNext | Gathers a list of all one-token transitions starting from a single position. Also gathers any and-predicates that must be traversed before completing a transition. |
CGenerateCodeVisitor | Directs code generation using the visitor pattern to visit the predicates in a rule. The process starts with Generate(Rule). |
CGetCanonical | Computes the "canonical" interpretation of a position for prediction purposes, so that ConsolidateDuplicatePositions can detect duplicates reliably. Call Do() to use. |
CGrammarPos | Represents a location in a grammar: a predicate and a "return stack" which is a so-called persistent singly-linked list. This type is used within Transition. |
CKthSet | Represents the possible interpretations of a single input character, in terms of transitions in the grammar. |
CPredictionAnalysisVisitor | Performs prediction analysis using the visitor pattern to visit the predicates in a rule. The process starts with Analyze(Rule). |
CTransition | Represents a position in a grammar (GrammarPos) plus the set of characters that leads to that position from the previous position. This is a single case in a KthSet. |
CLlpgBugsAndSlugs | Tests for known slugs (slowness bugs) and fixed bugs (regressions) |
►CLlpgGeneralTestsBase | Shared base class for "full-stack" LLLPG tests that use LeMP, the Ecs parser, and LLLPG macros in addition to the core engine. |
CTestCompiler | |
CLlpgHelpers | Helper methods for making LLLPG grammar nodes. Used by LlpgCoreTests. |
CLlpgTestLargerExamples | |
CPGIntSet | Represents a set of characters (e.g. 'A'..'Z' | 'a'..'z' | '_'), or a set of integers, used in the grammar of a parser. |
CPGNodeSet | An immutable set that implements IPGTerminalSet so that it can be used by LLParserGenerator. |
CPGTerminalSet | Extension methods for IPGTerminalSet. |
CPred | Represents part of a grammar for the LLParserGenerator. |
CPredA | Analytic predicate: a simpler form of predicate used for prediction analysis. |
CPredVisitor | Base class for implementing a visitor that examines a tree of LLLPG Predicates. |
CProgram | Entry point of LLLPG.exe, with QuickRun() method to help invoke LLLPG programmatically. |
CRecursivePredVisitor | Base class for implementing a visitor that examines a tree of LLLPG Predicates. The default implementation of Visit(P) for each predicate type P recursively visits the children of the P. |
CRecursiveRefA | |
CRecursiveReplacementPredVisitor | Base class for visitors that can replace predicates entirely. |
CRule | Represents an LLLPG rule, which is a Predicate plus a Name and optional attributes (e.g. token, private, etc.). |
CRuleRef | Represents a nonterminal, which is a reference to a rule. |
CSeq | Represents a sequence of predicates (Preds). |
CTerminalA | |
CTerminalPred | Represents a terminal (which is a token or a character) or a set of possible terminals (e.g. 'A'..'Z'). |
►NLLPG | |
CMacros | Macros for using LLLPG in LeMP. |
►NMath | Contains general-purpose math algorithms beyond what is provided in the .NET BCL (Base Class Library). Notable class: Math.MathEx. |
CFPI16 | Fixed-point type based on Int32 with 16 fractional bits |
CFPI23 | Fixed-point type based on Int32 with 23 fractional bits |
CFPI8 | Fixed-point type based on Int32 with 8 fractional bits |
CFPL16 | Fixed-point type based on Int64 with 16 fractional bits |
CFPL32 | Fixed-point type based on Int64 with 32 fractional bits |
CIAdditionGroup< T > | This defines a Group with the operation +, the neutral element Zero, and an operation - that is defined in terms of the inverse. A Negate operation is not provided so that this interface makes more sense for use with unsigned types |
CIBinaryMath< T > | Provides additional bit-oriented integer operations. |
CIBitwise< T > | Provides the standard set of bitwise operators. |
CIComplexMath< T > | Use this interface for types such as complex numbers that satisfy the field axioms but do not have a natural order. complex numbers of course do support IHasRoot. |
CIConvertTo< T > | Provides methods for converting common numeric types to another numeric type "T". |
CIExp< T > | Provides power, logarithm, raise-e-to-exponent (Exp) and logarithm-of-e (Log) operations. |
CIField< T > | This defines a Field with the operations +,-,*,/ |
CIFloatMath< T > | Provides operations available on floating-point types (float and double), including trigonometry and exponentiation. |
CIHasRoot< T > | Provides the Sqrt operation and its inverse, Square. |
CIIncrementer< T > | Provides increment, decrement, and next/previous-representable- value operations. |
CIIntMath< T > | Provides operations available on all unsigned integer types (byte, uint, etc.); see also IMath{T}, IIntMath{T}, and IFloatMath{T}. |
CIMath< T > | Provides operations available on all system numeric types (int, uint, double, etc.); see also ISignedMath{T}, IUIntMath{T}, IIntMath{T} and IFloatMath{T}. |
CIMultiplicationGroup< T > | This defines a Group with the operation *, the neutral element One, the inverse Inverse and an operation / that is defined in terms of the inverse. |
CIMultiply< T > | Provides the multiplication operation and the multiplicative identity, one. |
CINumTraits< T > | This interface provides information about a numeric type T. |
CIOneProvider< T > | Provides the value of "one" for type T. |
CIOrdered< T > | Provides comparison function for type T along with absolute value (Abs), and the minimum or maximum of two values (Min, Max). |
CIRationalMath< T > | Use this interface for floating-point, fixed-point, and rational types. Rational types support reciprocal and negation. |
CIRing< T > | This defines a Ring with the operations +,* |
CISignedMath< T > | Provides operations available on all signed numeric types (int, double, etc.); see also IUIntMath{T}, IIntMath{T} and IFloatMath{T}. |
CITrigonometry< T > | Provides trigonometry operations. |
CIUIntMath< T > | Provides operations available on all unsigned integer types (byte, uint, etc.); see also IMath{T}, IIntMath{T}, and IFloatMath{T}. |
CIZeroProvider< T > | Provides the value of "zero" for type T. |
CMath128 | Contains methods for manipulating 128-bit numbers, multiplying 64-bit numbers to produce 128-bit results, and dividing 128-bit numbers by 64-bit numbers. |
CMathD | Implements IFloatMath{T} for numbers of type System.Double. |
CMathEx | Provides additional math functions that are not available in System.Math. |
CMathExtensions | Standard extension methods for generic math interfaces such as IOrdered{T}. |
CMathF | Implements IFloatMath{T} for numbers of type System.Single. |
CMathF16 | Implements IRationalMath{T} for numbers of type FPI16. |
CMathF23 | Implements IRationalMath{T} for numbers of type FPI23. |
CMathF8 | Implements IRationalMath{T} for numbers of type FPI8. |
CMathFL16 | Implements IRationalMath{T} for numbers of type FPL16. |
CMathFL32 | Implements IRationalMath{T} for numbers of type FPL32. |
CMathI | Implements IIntMath{T} for numbers of type System.Int32. |
CMathI16 | Implements IIntMath{T} for numbers of type System.Int16. |
CMathI8 | Implements IIntMath{T} for numbers of type System.SByte. |
CMathL | Implements IIntMath{T} for numbers of type System.Int64. |
CMaths< T > | This class helps generic code to perform calculations on numbers of unknown type, by providing access to various math interfaces. |
CMathU | Implements IUIntMath{T} for numbers of type System.UInt32. |
CMathU16 | Implements IUIntMath{T} for numbers of type System.UInt16. |
CMathU8 | Implements IUIntMath{T} for numbers of type System.Byte. |
CMathUL | Implements IUIntMath{T} for numbers of type System.UInt64. |
►NMiniTest | A stripped-down NUnit lookalike which allows you to put simple unit tests in an assembly without having to add a reference to NUnit.Framework.dll . |
CAssert | The Assert class contains a collection of static methods that mirror the most common assertions used in NUnit. |
CAssertionException | Thrown when an assertion fails during a call to a method of Assert. |
CBenchmarkAttribute | Marks a benchmark test, which exists to test performance. Benchmark tests are often run multiple times to obtain an average running time. |
CExpectedExceptionAttribute | Marks a test that is expected to throw an exception of a particular type. The test fails if the expected exception is not thrown. |
CIgnoreException | Thrown by Assert.Ignore(). |
CInconclusiveException | Thrown by Assert.Inconclusive(). |
CRunTests | Searches for test methods and runs them, printing the name of each test to the console followed by errors (if any) produced by the test. |
CSetUpAttribute | Marks a method that is to be called prior to each test in a test fixture. |
CSuccessException | Thrown by Assert.Success(). |
CTearDownAttribute | Marks a method that is to be called after each test in a test fixture. |
CTestAttribute | Identifies a method that contains a unit test, or that returns other tests or test fixtures. |
CTestException | An exception thrown when a method of Assert fails. |
CTestFixtureAttribute | Identifies a class that contains unit tests, or methods that return other tests or test fixtures. |
►NSyntax | Loyc.Syntax.dll: contains Loyc trees (Loyc.Syntax.LNode), lexing stuff, LLLPG base classes (BaseParser{T} and BaseLexer), the LES parser and printer, data types related to source code management (e.g. ISourceFile, SourceRange) and other general-purpose code related to the manipulation of syntax |
►NLes | Contains classes related to Loyc Expression Syntax (LES), including the parser and printer (reachable through Loyc.Syntax.Les.LesLanguageService). |
CDefaultNodePrinterWriter | Base class for the helper classes of LesNodePrinter and Ecs.EcsNodePrinter, called LesNodePrinterWriter and EcsNodePrinterWriter. See INodePrinterWriter. |
CINodePrinterWriter | This interface is implemented by helper objects that handle the low-level details of node printing. It is used by LesNodePrinter. |
CLesIndentTokenGenerator | Indent postprocessor for Loyc Expression Syntax |
CLesLanguageService | The Value property provides easy access to the lexer, parser and printer for Loyc Expression Syntax (LES). |
CLesLexer | Lexer for EC# source code. |
CLesNodePrinter | Prints a Loyc tree in LES (Loyc Expression Syntax) format. |
CLesParser | Parses LES (Loyc Expression Syntax) code into a sequence of Loyc trees (LNode), one per top-level statement. |
CLesPrecedence | Contains Precedence objects that represent the precedence levels of LES. |
CLesPrecedenceMap | This class's main job is to maintain a table of Precedence values for LES operators. When you ask about a new operator, its precedence is cached for future reference. |
CNodePrinterWriterBase | Abstract base class for INodePrinterWriter. Has an protected _indentLevel field that is increased by Indent() and decreased by Dedent(). |
CTokenExt | Provides the Type() extension method required by Token and the ToString(Token) method to express an LES token as a string, for tokens that contain sufficient information to do so. |
►NLexing | Contains classes related to lexical analysis, such as the universal token type (Loyc.Syntax.Lexing.Token) and Loyc.Syntax.Lexing.TokensToTree. |
CBaseILexer< CharSrc, Token > | A version of BaseLexer{CharSrc} that implements ILexer{Token}. You should use this base class if you want to wrap your lexer in a postprocessor such as IndentTokenGenerator or TokensToTree. |
CBaseLexer | Alias for BaseLexer{C} where C is ICharSource. |
►CBaseLexer< CharSrc > | The recommended base class for lexers generated by LLLPG, when not using the inputSource option. |
CSavePosition | A helper class used by LLLPG for backtracking. |
CILexer< Token > | A standard interface for lexers. |
CILllpgApi< Token, MatchType, LaType > | For reference purposes, this interface is a list of the non-static methods that LLLPG expects to be able to call when it is generating code. LLLPG does not actually need lexers and parsers to implement this interface; they simply need to implement the same set of methods as this interface contains. |
CILllpgLexerApi< Token > | For reference purposes, this interface contains the non-static methods that LLLPG expects lexers to implement. LLLPG does not actually expect lexers to implement this interface; they simply need to implement the same set of methods as this interface contains. |
CIndentTokenGenerator | A preprocessor usually inserted between the lexer and parser that inserts "indent", "dedent", and "end-of-line" tokens at appropriate places in a token stream. |
CIndentTokenGenerator< Token > | A preprocessor usually inserted between the lexer and parser that inserts "indent", "dedent", and "end-of-line" tokens at appropriate places in a token stream. |
CISimpleToken | Alias for ISimpleToken{int}. |
CISimpleToken< TokenType > | Basic information about a token as expected by BaseParser{Token}: a token Type, which is the type of a "word" in the program (string, identifier, plus sign, etc.), a value (e.g. the name of an identifier), and an index where the token starts in the source file. |
CIToken< TT > | The methods of Token in the form of an interface. |
CLexerSource | A synonym for LexerSource{C} where C is ICharSource. |
CLexerSource< CharSrc > | An implementation of the LLLPG Lexer API, used with the LLLPG options inputSource and inputClass . |
CLexerSourceFile< CharSource > | Adds the AfterNewline method to SourceFile. |
CLexerSourceWorkaround< CharSrc > | This class only exists to work around a limitation of the C# language: "cannot change access modifiers when overriding 'protected' inherited member Error(...)". |
CLexerWrapper< Token > | A base class for wrappers that modify lexer behavior. Implements the ILexer interface, except for the NextToken() method. |
CToken | A common token type recommended for Loyc languages that want to use features such as token literals or the TokensToTree class. |
CTokenListAsLexer | Adapter: converts IEnumerable(Token) to the ILexer{Token} interface. |
CTokensToTree | A preprocessor usually inserted between the lexer and parser that converts a token list into a token tree. Everything inside brackets, parens or braces is made a child of the open bracket. |
CTokenTree | A list of Token structures along with the ISourceFile object that represents the source file that the tokens came from. |
CWhitespaceFilter | Alias for WhitespaceFilter{Token} |
CWhitespaceFilter< Token > | Filters out tokens whose Value is WhitespaceTag.Value. |
CWhitespaceTag | WhitespaceTag.Value can be used as the Token.Value of whitespace tokens, to make whitespace easy to filter out. |
CBaseParser< Token > | An base class designed for parsers that use LLLPG (Loyc LL(k) Parser Generator). Note: this is the old (harder to use) base class. You should use BaseParserForList{Token, LaType} instead. This class is now an alias for BaseParser{Token,int}. |
►CBaseParser< Token, MatchType > | An base class designed for parsers that use LLLPG (Loyc LL(k) Parser Generator). Note: this is the old (harder to use) base class design. You should use BaseParserForList{Token,MatchType} instead. |
CSavePosition | A helper class used by LLLPG for backtracking. |
CBaseParserForList< Token, MatchType > | An base class designed for parsers that use LLLPG (Loyc LL(k) Parser Generator) and receive tokens from any IEnumerator{Token}. |
CBaseParserForList< Token, MatchType, List > | An base class designed for parsers that use LLLPG (Loyc LL(k) Parser Generator) and receive tokens from any IEnumerator{Token}. (Potentially also useful for parsers written by hand.) |
CBaseParserNoBacktracking< Token > | An base class designed for parsers that use LLLPG (Loyc LL(k) Parser Generator) and receive tokens from an IEnumerator{Token}. |
CBaseParserNoBacktracking< Token, Enumerator > | An base class designed for parsers that use LLLPG (Loyc LL(k) Parser Generator) and receive tokens from any IEnumerator{Token}. |
CCallNode | Base class of all nodes that represent calls such as f(x) , operator calls such as x + y , braced blocks, and all other things that are not simple symbols and literals. |
CCodeSymbols | A list of common symbols that have special meaning somewhere in Loyc or EC#: operators, built-in data types, keywords, trivia, etc. |
CDescendantsFrame | Helper class used to enumerate LNode.Descendants(). |
CEmptySourceFile | A dummy implementation of ISourceFile that has only a filename, no source text. Used as the source file of synthetic syntax nodes. |
CIdNode | Base class of all nodes that represent simple identifiers (including special symbols such as #foo). |
CIIndexPositionMapper | This interface is for classes that can convert indexes to SourcePos structures and back. |
CIIndexToLine | Contains IndexToLine method. |
CILNodeVisitor | Interface for people that want to implement the visitor pattern with LNode. If your visitor does not need a base class, use LNodeVisitor as the base class. |
CIndexPositionMapper | Synonym for IndexPositionMapper<IListSource<char>> . |
CIndexPositionMapper< CharSource > | Helper class for mapping from indexes to SourcePos and back. |
CIParsingService | An interface that encapsulates the lexer, parser, and printer of a programming language, or a non-programming language that can be represented by Loyc trees. |
CISourceFile | Represents a text file with a file name and its textual content, plus the data necessary to convert between line-column positions and 0-based integer indexes. |
CLineAndCol | Holds a line number (Line) and a position in the line (PosInLine). This class isn't really needed in Loyc but is separated from SourcePos in case anyone might want position without a filename. |
CLineRemapper | A small helper class for languages such as C# and C++ that permit the locations reported by error messages to be remapped. This class stores and applies such commands (#line in C#/C++) |
CLiteralNode | Base class of all nodes that represent literal values such as 123 and "foo". |
►CLNode | All nodes in a Loyc syntax tree share this base class. |
CDeepComparer | An IEqualityComparer that compares nodes structurally. |
CPushedPrinter | Returned by PushPrinter(LNodePrinter). |
CLNodeExt | Standard extension methods for LNode. |
CLNodeFactory | Contains helper methods for creating LNodes. An LNodeFactory holds a reference to the current source file (File) so that it does not need to be repeated every time you create a node. |
CLNodeVisitor | Base class for people that want to implement the visitor pattern with LNode. |
CParserSource< Token > | Alias for ParserSource{Token, int, IList{Token}}. |
CParserSource< Token, MatchType > | Alias for ParserSource{Token, int, IList{Token}}. |
CParserSource< Token, MatchType, List > | An implementation of the LLLPG Parser API, used with the LLLPG options inputSource and inputClass . |
►CParsingService | Extension methods for IParsingService. |
CPushedCurrent | Returned by PushCurrent(IParsingService). |
CPrecedence | A four-byte tuple that represents the precedence and miscibility of an operator. |
CSourceFile | |
CSourceFile< CharSource > | A default implementation of ISourceFile based on IndexPositionMapper. |
CSourceFileWithLineRemaps | An wrapper around ISourceFile that applies line remapping information (if the source file uses it). |
CSourcePos | Holds a filename (FileName), a line number (Line) and a position in the line (PosInLine), representing a position in a source code file. |
CSourcePosAndIndex | A SourcePos that also includes the original index from which the Line and PosInLine were derived. |
CSourceRange | Holds a reference to a source file (ISourceFile<char>) and the beginning and end indices of a range in that file. |
CStreamCharSource | Exposes a stream as an ICharSource, as though it were an array of characters. The stream must support seeking, and if a text decoder is specified, it must meet certain constraints. |
►NThreading | Helper classes for multithreaded code. |
CPushedTLV< T > | Designed to be used in a "using" statement to alter a thread-local variable temporarily. |
CScratchBuffer< T > | Holds a single Value that is associated with the thread that assigned it. |
►CThreadEx | Creates and controls a thread, and fills in a gap in the .NET framework by propagating thread-local variables from parent to child threads, and by providing a ThreadStarting event. |
CThreadDestructor | See PropagateVariables for more information. |
CThreadLocalVariable< T > | Provides access to a thread-local variable through a dictionary that maps thread IDs to values. |
CThreadLocalVariableBase | When used with ThreadEx, implementing this base class allows you to be notified when a child thread is created or terminates. |
CThreadStartEventArgs | Used by the ThreadEx.ThreadStarting and ThreadEx.ThreadStopping events. |
CTinyReaderWriterLock | A fast, tiny 4-byte lock to support multiple readers or a single writer. Designed for low-contention, high-performance scenarios where reading is common and writing is rare. |
►NUtilities | Contains general-purpose classes that are not considered important enough to go directly into the Loyc namespace. Most of the classes in this namespace are defined in Loyc.Utilities.dll. |
CBloomFilterM64K2 | A bloom filter for very small sets. |
CCo | Extension methods for Co{T}. |
CCo< T > | A structure that helps you to write coroutines, or to avoid the performance penalty of nested iterators. |
CGoAliasAttribute | This attribute is applied to a method of an interface to specify alternate names that a method can have in T when you use GoInterface <Interface, T> to produce a wrapper. |
CGoDecoratorFieldAttribute | This attribute marks a field in an abstract class as pointing to a wrapped object to which GoInterface should forward calls. It is used when you want GoInterface to "complete" a decorator pattern for you. |
CGoInterface | Mainly for internal use by the other GoInterface classes. |
CGoInterface< Interface > | GoInterface<Interface> creates wrappers around objects of your choosing that implement the specified Interface, forwarding calls to methods in the wrapped object. It is inspired by the duck-typed interfaces in the Go programming language. |
CGoInterface< Interface, T > | GoInterface<Interface,T> creates a wrapper that implements the specified Interface, forwarding calls to methods in T. It is inspired by the duck-typed interfaces in the Go programming language. |
CIGoInterfaceWrapper | All GoInterface wrappers implement this interface. |
CSimpleTimer | A fast, simple timer class with a more convenient interface than System.Diagnostics.Stopwatch. Its resolution is typically 10-16 ms on desktop Windows systems. |
CStatistic | A lightweight class to help you compute the minimum, maximum, average and standard deviation of a set of values. Call Clear(), then Add(each value); you can compute the average and standard deviation at any time by calling Avg() and StdDeviation(). |
CTagsInWList< ValueT > | An implementation of ITags designed for AstNode. |
CUG | Contains global functions of Loyc.Utilities that don't belong in any specific class. |
CCheckParam | Helper methods for checking argument values that throw exceptions when an argument value is not acceptable. |
CConcurrentModificationException | An exception thrown when a data structure is accessed (read or written) by one thread at the same time as it is modified on another thread. |
CConsoleMessageSink | Sends all messages to System.Console.WriteLine(), with hard-coded colors for Error, Warning, Note, Verbose, and Detail. |
CExceptionExt | Extension methods for exceptions. |
CEzStopwatch | A wrapper around Stopwatch with a more convenient interface, currently oriented around measuring milliseconds (TODO: increase similarity to Stopwatch ) |
CG | Contains global functions that don't belong in any specific class. |
CGSymbol | This class produces global symbols. |
CHashTags< ValueT > | An implementation of IAttributes that can hold one attribute before allocating any memory for a hashtable. It is intended to be used as a base class but can be used on its own. |
CHolder< T > | A trivial class that holds a single value of type T in the Value property. |
CICloneable< out T > | Interface for types that can duplicate themselves. |
CIHasLocation | This interface allows an object to declare its "location". It is used by MessageSink.LocationString, which helps convert the "context" of a message into a string. |
CIHasValue< out T > | Interface for things that have a Value property. |
CIMessageSink | A general-purpose interface for a class that accepts formatted messages with context information. |
CInvalidStateException | An exception thrown when an object detects that its own state is invalid, or in other words, that an invariant has been violated. |
CIReferenceComparable | This is a tag which indicates that objects of this type are unique; specifically, any two different objects that implement this interface are always unequal, and one object is equal only to itself. |
CITags< T > | Interface for an object that can have "tags" attached, which are arbitrary objects reached through a key Symbol. |
CLocalizableAttribute | I plan to use this attribute someday to gather all the localizable strings in an application. This attribute should be applied to a string function parameter if the method calls Localized() using that parameter as the format string. |
CLocalize | Localize is a global hook into which a string-mapping localizer can be installed. It is designed to make internationalization exceptionally easy for developers. TODO: expand I18N features based on Mozilla's L20N. |
CLogException | An exception that includes a "context" object as part of a LogMessage structure, typically used to indicate where an error occurred. |
CLogMessage | Holds an argument list compatible with IMessageSink.Write. Typically used with MessageHolder. |
CMaybe | |
CMaybe< T > | Same as Nullable{T} except that it behaves like a normal type, i.e. (1) T is allowed to be a reference type and (2) you can nest them, as in Maybe{Maybe{int}} . |
CMemoizedTypeName | .NET Framework reflection doesn't offer complete type names for generic types such as "List<int>" (the Type.Name value of that class is "List`1"). Get fills in the gap, and also saves the computed name for fast repeated lookups. |
CMemoizedTypeName< T > | MemoizedTypeName<T>.Get() is an alternative to MemoizedTypeName.Get(typeof(T)). |
CMessageFilter | A decorator that uses a delegate to accept or ignore messages. |
CMessageHolder | A message sink that puts the messages it receives in a list. |
►CMessageSink | Holds the default message sink for this thread (Current), Symbols for the common message types, such as Warning and Error, and default instances of ConsoleMessageSink, TraceMessageSink and NullMessageSink. |
CPushedCurrent | Returned by PushCurrent(IMessageSink). |
CMessageSinkFromDelegate | This helper class lets you implement IMessageSink with one or two delegates (a writer method, and an optional severity filter). |
CMessageSplitter | A message sink that sends its messages to a list of other sinks. |
CNoValue | NoValue.Value is meant to be used as the value of a property that has "no value", meaning no value is assigned or that the property is meaningless at the current time or in the current context. |
CNullMessageSink | Discards all messages. However, there is a Count property that increases by one with each message received. |
CPair | Pair.Create(a, b) is a helper method for making pairs. |
CPair< T1, T2 > | A tuple of two values, A and B , in a struct. |
CRange | |
CReadOnlyException | An exception thrown when an attempt is made to modify a read-only object. |
CReferenceComparer< T > | An IEqualityComparer{T} based on reference equality |
CSeverityMessageFilter | A decorator (wrapper) for IMessageSink that filters out some messages if their Severity is too low, according to the value of the MinSeverity property. |
CStringExt | Extension methods for strings, such as SplitAt, Left, Right, Format and USlice. |
CSymbol | Represents a symbol, which is a singleton string that supports fast comparisons and extensible enums. |
CSymbolPool | A collection of Symbols. |
CSymbolPool< SymbolE > | This type of SymbolPool helps create more strongly typed Symbols that simulate enums, but provide extensibility. Specifically, it creates SymbolE objects, where SymbolE is some derived class of Symbol. |
CSymbolSet | A set of symbols. |
CTraceMessageSink | Sends all messages to System.Diagnostics.Trace.WriteLine(string). |
CTriplet< T1, T2, T3 > | A tuple of three values (A , B and C ) in a struct. |
CTypeExt | Extension methods for Type . |
CUString | UString is a slice of a string. It is a wrapper around string that provides a IBRange{T} of 21-bit UCS-4 characters. "U" stands for "Unicode", as in UCS-4, as opposed to a normal string that is UTF-16. |
CValueComparer< T > | You'd think the .NET framework would have a built-in method–even a CIL opcode–to bitwise-compare two values. Not supporting bitwise compare is, in my opinion, one of several mind-bogglingly dumb decisions in the CLR. Instead, all you can do is call ValueComparer.Default.Equals(a, b). |
Cvoid | .Value represents the sole value of System.Void (called "void" in C#). |
CWeakReferenceExt | The new WeakReference{T} type in .NET 4.5 removes the Target and IsAlive properties. These extension methods restore that traditional functionality, making it easier to transition from the old WeakReference to the new one. |
CWrapperBase< T > | Abstract class that helps you implement wrappers by automatically forwarding calls to Equals(), GetHashCode() and ToString(). |
▼NSystem | |
►NCollections | |
►NWindows | |
►NForms | |
CInputBox | This static class contains methods named Show() to display a dialog box with an input field, similar in appearance to the one in Visual Basic. The Show() method returns null if the user clicks Cancel, and non-null if the user clicks OK. |
▼NTextEditor | |
CFindAndReplaceForm | |
CGlobals | |
CHighlightGroup | Bundles a group of markers together so that they can be cleared together. |
CLempDemoForm | Main form for a multi-file text editor based on ICSharpCode.TextEditor.TextEditorControl. |
CLempDemoPanel | |
CProgram | |
CRegionFoldingStrategy | The class to generate the foldings, it implements ICSharpCode.TextEditor.Document.IFoldingStrategy |
CTextEditorSearcher | This class finds occurrances of a search string in a text editor's IDocument... it's like Find box without a GUI. |
CTextRange | |