Namespace Azos.CodeAnalysis
Classes
CodeAnalysisException
Base exception thrown by the framework
CodeProcessorException
Thrown by code processors such as lexers, parsers , symantic analyzers, compilers etc...
CommonCodeProcessor
Provides base implementation for common code processors
Language
Represents and abstraction of the language
LazyFSMState<TToken>
Represents a state object for Lazy Finate State Machine that enumerates tokes from IEnumerable(Token) and does not support a notion of index addressing
Lexer<TToken>
Performs lexical analysis of the source code in particular language Allows to enumerate over source as typed Token stream - depending on implementation enumeration may do lexical analysis token-by-token or in chunks with every enumerator advance
Message
Represents a message emitted from code-analyzing entities such as lexers, parsers, semantic analyzers and compilers. Messages have severity type like warning, info or error etc.
MessageList
Provides a list of messages, this class is not thread-safe
ObjectResultAnalysisContext<TObject>
A context that can hold analysis result as TObject. This class is useful for cases like dynamic language parsers (i.e. JSON)
Parser<TLexer>
Performs parsing of token streams provided by lexers
PatternSearch
Provides Token-pattern matching utilities
SourceRefCommonCodeProcessor
Provides base implementation for common code processors
StringEscapeErrorException
Token
Represents a lexical token of the language. This is an abstract class that particular language implementations must extend to define language-specific token types
Tokenized<TToken>
Provides read-only view over TokenList
TokenList<TToken>
A list of tokens
UnspecifiedLanguage
Represents Unspecified unknown language
Interfaces
IAnalysisContext
Describes an entity that retains state during analysis, such as: module compiler, project compiler, code unit translator etc. This entity may also contain compiler/parser/lexer options etc.
ICodeProcessor
Describes an entity that may process source code in some language
ILanguageProcessorNotifications
Describes an entity capable of receiving messages as they are emitted by entities such as parsers and compilers
ILexer
Describes general lexer interface. Lexer turn string source input which is obtained via ISourceText implementation (i.e. FileSource,WebSource...) into tokenized stream. Some lexer implementations may support lazy analysis, that is - source text analysis which is done in chunks when lexer is iterated over, others may lex the whole source text at once
IParser
Describes general parser interface
IProjectItem
Represents an item that is a part of some project, i.e. a CS source file in CSharp project
Enums
FSMI
Describes transition instructions for Finate State Machine (FSM)
LanguageFamily
Defines various languages
MessageType
Message type like: Info, Warning, Error
TokenKind
Provides language-agnostic token classification
Delegates
LazyFSMPredicate<TToken>
Lazy Finate State Machine (FSM) predicate, tries to match condition and returns appropriate next action