hasmer
Classes | Enumerations | Functions
Hasmer.Assembler.Parser Namespace Reference

Classes

class  HasmCommentParser
 Parses a comment (starting with a '//') from the stream. More...
 
class  HasmDataDeclaration
 Represents a ".data" declaration. More...
 
class  HasmFunctionModifierToken
 Represents a declaration that modifiers a function header. More...
 
class  HasmFunctionToken
 Represents a function definition token. More...
 
class  HasmHeader
 Represents a ".hasm" header declaration. More...
 
class  HasmInstructionToken
 Represents a Hasm instruction and its operands. More...
 
class  HasmIntegerToken
 Represents an integer, either a 4-byte signed integer or a 4-byte unsigned integer specifically. More...
 
class  HasmLabelToken
 Represents a label definition or reference. More...
 
class  HasmLiteralToken
 Represents a literal value, such as a numeric or string value. More...
 
class  HasmNumberToken
 Represents an 8-byte IEEE754 floating-point value. More...
 
class  HasmOperandToken
 Represents a Hasm instruction's operand. More...
 
class  HasmParserException
 Represents an error in syntax during the parsing of a Hasm file. More...
 
class  HasmProgram
 
class  HasmReaderState
 Represents the state of a Hasm reader, especially a HasmTokenStream. More...
 
class  HasmSimpleToken
 Represents a "simple" value, generally a constant identifier (e.g. "true" or "false"). More...
 
class  HasmStringToken
 Represents a string literal. More...
 
class  HasmIdentifierToken
 Represents an identifier. More...
 
class  HasmStringParser
 Parses an escaped string surrounded by double quotes. More...
 
struct  HasmStringStreamState
 
class  HasmStringStream
 Represents a stream that parses a Hasm assembly file. More...
 
class  HasmToken
 Represents a token in a Hasm assembly file. More...
 
class  TokenDefinition
 
class  TokenizerState
 
class  TokenMatch
 
struct  TokenizerResult
 
class  HasmTokenizer
 
interface  IHasmTokenParser
 Represents a class which can parse Hasm tokens from a Hasm file. More...
 

Enumerations

enum class  HasmDataDeclarationKind {
  String , Integer , Number , Null ,
  True , False
}
 The kind of data being declared in a ".data" declaration. More...
 
enum class  HasmFunctionModifierType {
  Id , Params , Registers , Symbols ,
  Strict
}
 The type of declaration for a function modifier. More...
 
enum class  HasmLabelKind { ArrayBuffer = 'A' , ObjectKeyBuffer = 'K' , ObjectValueBuffer = 'V' , CodeLabel = 'L' }
 Represents the type of a Hasm label. More...
 
enum class  HasmOperandTokenType {
  Register , Label , UInt , String ,
  Identifier , Double
}
 The type of the operand. More...
 
enum class  HasmStringStreamWhitespaceMode { Remove , Keep }
 Represents how the stream should treat whitespace. More...
 
enum class  StringParserState { Normal , Escape }
 
enum class  TokenizerResultKind { TokenMatch , EmptyMatch , FailedMatch }
 

Functions

delegate TokenizerResult Tokenizer (TokenizerState state)
 

Enumeration Type Documentation

◆ HasmDataDeclarationKind

The kind of data being declared in a ".data" declaration.

◆ HasmFunctionModifierType

The type of declaration for a function modifier.

◆ HasmLabelKind

Represents the type of a Hasm label.

Enumerator
ArrayBuffer 

A reference or declaration in the array buffer.

ObjectKeyBuffer 

A reference or declaration in the object key buffer.

ObjectValueBuffer 

A reference or declaration in the object value buffer.

CodeLabel 

A reference or declaration of an offset of code in a function's body, used for jump instructions.

◆ HasmOperandTokenType

The type of the operand.

Enumerator
Register 

The operand is a register reference.

Label 

The operand is a code label reference.

UInt 

The operand is an unsigned integer.

String 

The operand is a string literal.

Identifier 

The operand is an identifier.

Double 

The operand is an eight-byte IEEE754 float-point number.

◆ HasmStringStreamWhitespaceMode

Represents how the stream should treat whitespace.

Enumerator
Remove 

Removes all whitespace between tokens.

Keep 

Keeps all whitespace between tokens.