ostrat.pParse

This is the RSON package. Readable Succinct Object Notation. It could be just as accurately be described as Readable Succinct Data Notation, but that wouldn't scan as well and indicate it as a better replacement for JSON. RSON uses the standard semicolon separated statements combined with multilevel bracket hierarchy syntax familiar from C, C++, Java and JavaScript. Its main innovations over JSON and XML are allowing statements to be partitioned into comma delineated clauses, the empty statement, the empty clause and type inference. It uses a context free operator precedence hierarchy, with the exception of allowing the 4 ( - + ~ !) operator to be used as prefix operators. Beyond this it generally follows Scala syntax where this doesn't conflict with the preceding rules. Unlike Scala statements must finish with a semicolon unless it is the last statement of a file or a bracket block. Allowing statements to end with a newline introduces horrendous ambiguities unless one is willing to go completely down the significant whitespace route and I'm not sure if that could work even work for such a general purpose basic syntax.

The above allows it to combine a high level of human readability, succinctness, non-programmer / non-expert write-ability, programmer flexibility and composability and fast-parsing. The initial motivating use case was strategy games, which require huge amounts of modable date files. XML and JSON, the current defaults are simply not fit for purpose. RSON aims to break down the walls between game player, game modder, professional game artist, professional game scripter, professional imperative programming wizards in languages such as C / C++ and Rust and professional functional programming wizards in languages such as Scala, Haskell and Idris.

Attributes

Members list

Concise view

Type members

Classlikes

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
case class AsignExpr(left: AssignMemExpr, asToken: AsignToken, right: AssignMemExpr) extends CompoundExpr

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
case class AsignToken(startPosn: TextPosn) extends BlockMemToken with StatementMem

A + or - infix Operator token

A + or - infix Operator token

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
trait AssignMem extends StatementMem

An Assignment member can appear in the expressions either side of an asignment operator.

An Assignment member can appear in the expressions either side of an asignment operator.

Attributes

Graph
Supertypes
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes
trait AssignMemExpr extends Expr with AssignMem

An expression that is a member of the right oe left side of an assignment expression.

An expression that is a member of the right oe left side of an assignment expression.

Attributes

Graph
Supertypes
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes

A Token that is an AssignMem expression.

A Token that is an AssignMem expression.

Attributes

Graph
Supertypes
trait AssignMem
trait Expr
trait BlockMem
trait Token
trait TextSpan
class Object
trait Matchable
class Any
trait BlockMem extends TextSpan

This trait includes all the tokens except braces plus the Bracket syntactic blocks. The Block in the name block member is either the top level statements in the file or the statements with in a bracket block. Conceptually the source file is considered a special case of bracket block where the beginning of substitutes for the opening bracket and the end of file substitutes for the closing bracket. BlockMember has only two sub traits StatementMember and SemiToken. So a sequence of TokenOrBlocks is simply a series of tokens which has been parsed into Blocks.

This trait includes all the tokens except braces plus the Bracket syntactic blocks. The Block in the name block member is either the top level statements in the file or the statements with in a bracket block. Conceptually the source file is considered a special case of bracket block where the beginning of substitutes for the opening bracket and the end of file substitutes for the closing bracket. BlockMember has only two sub traits StatementMember and SemiToken. So a sequence of TokenOrBlocks is simply a series of tokens which has been parsed into Blocks.

Attributes

Graph
Supertypes
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes
class CharToken
class Dot2Token
class Dot3Token
class DotToken
trait Expr
class ColonExpr
class PreOpExpr
trait ExprSeq
class AsignExpr
trait AssignMem
trait ClauseMem
trait BlockMemToken extends BlockMem with Token

Token that is member of a block. Includes all tokens except the brace tokens.

Token that is member of a block. Includes all tokens except the brace tokens.

Attributes

Graph
Supertypes
trait Token
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes
trait BlockRaw

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any

Attributes

Graph
Supertypes
trait ExprSeq
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes
sealed trait Braces

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object CurlyBraces.type
object Parenthesis.type
object SquareBraces.type
sealed trait BracketCloseToken extends BracketToken

A closing bracket Token, The ']', ']' or ')' characters are BracketCloseTokens.

A closing bracket Token, The ']', ']' or ')' characters are BracketCloseTokens.

Attributes

Graph
Supertypes
trait Token
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes
sealed trait BracketOpen extends BracketToken

An opening Brace, '{', '[' or '('.

An opening Brace, '{', '[' or '('.

Attributes

Graph
Supertypes
trait Token
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes
sealed trait BracketToken extends Token

Attributes

Graph
Supertypes
trait Token
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes
case class BracketedRaws(statements: RArr[TextSpan], braces: Braces, startBracket: TextPosn, endBracket: TextPosn)

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
case class BracketedStatements(statements: RArr[Statement], braces: Braces, startBracket: TextPosn, endBracket: TextPosn) extends BlockStatements

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait ExprSeq
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
case class CharToken(startPosn: TextPosn, char: Char) extends ClauseMemExprToken

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
case class Clause(expr: ClauseMemExpr, optComma: OptRef[CommaToken]) extends TextSpan

Statements in RCON can be unclaused or multi comma separated. The empty Clause just contains a comma. The comma at the end of the last Clause of a Statement is optional.

Statements in RCON can be unclaused or multi comma separated. The empty Clause just contains a comma. The comma at the end of the last Clause of a Statement is optional.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes
trait ClauseMem extends ColonOpMem

Can be a member of either side of a ColonExpr

Can be a member of either side of a ColonExpr

Attributes

Graph
Supertypes
trait AssignMem
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes

An expression that can be a member of a Clause or the expression of clause.

An expression that can be a member of a Clause or the expression of clause.

Attributes

Graph
Supertypes
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes

A Token that is an Expression. Most tokens are expressions, but some are not such as braces, commas and semicolons.

A Token that is an Expression. Most tokens are expressions, but some are not such as braces, commas and semicolons.

Attributes

Graph
Supertypes
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes

A Token that can be a member of a Clause.

A Token that can be a member of a Clause.

Attributes

Graph
Supertypes
trait ClauseMem
trait AssignMem
trait Token
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes
case class ClausesExpr(clauses: RArr[Clause]) extends ExprSeqNonEmpty

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait ExprSeq
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
case class ColonExpr(left: ColonMemExpr, asToken: ColonToken, right: ColonMemExpr) extends CompoundExpr with AssignMemExpr with AssignMem

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any

An expression that can be a member of a Colon expression operand.

An expression that can be a member of a Colon expression operand.

Attributes

Graph
Supertypes
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes
trait ColonOpMem extends AssignMem

I think its helpful to have an expression member trait for syntax that is not expressions. So I don't think it would be helpful if say an opening brace was an expression. All Expressions are Expression members.

I think its helpful to have an expression member trait for syntax that is not expressions. So I don't think it would be helpful if say an opening brace was an expression. All Expressions are Expression members.

Attributes

Graph
Supertypes
trait AssignMem
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes
case class ColonToken(startPosn: TextPosn) extends BlockMemToken with ClauseMem

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait ClauseMem
trait AssignMem
trait Token
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
case class CommaToken(startPosn: TextPosn) extends EmptyExprToken with ClauseMemExpr

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait ExprSeq
trait ClauseMem
trait AssignMem
trait Expr
trait Token
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any

A compound expression. The traits sole purpose is to give an Expr, the start and end text positions from its first and last components.

A compound expression. The traits sole purpose is to give an Expr, the start and end text positions from its first and last components.

Attributes

Graph
Supertypes
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes

A compound expression. The traits sole purpose is to give an Expr, the start and end text positions from its first and last components.

A compound expression. The traits sole purpose is to give an Expr, the start and end text positions from its first and last components.

Attributes

Graph
Supertypes
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes
object CurlyBlock

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
case object CurlyBraces extends Braces

Attributes

Graph
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
trait Braces
class Object
trait Matchable
class Any
Self type
case class CurlyCloseToken(startPosn: TextPosn) extends BracketCloseToken

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait TextSpan
class Object
trait Matchable
class Any
case class CurlyOpenToken(startPosn: TextPosn) extends BracketOpen

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait TextSpan
class Object
trait Matchable
class Any
final case class DeciFracNegToken(startPosn: TextPosn, dgs1: String, dgs2: String, trail: String) extends DeciFracToken

Negative Decimal fractional fixed point number token.

Negative Decimal fractional fixed point number token.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
final case class DeciFracPosToken(startPosn: TextPosn, dgs1: String, dgs2: String, trail: String) extends DeciFracToken with ValidPosFracToken with DigitSeqsCode

Positive Decimal fractional fixed point token.

Positive Decimal fractional fixed point token.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any

Decimal fractional fixed point token.

Decimal fractional fixed point token.

Attributes

Graph
Supertypes
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes

Sequence of point separated number sequences. Includes fixed point decimal numbers, IPv4 notation nad version nunbers.

Sequence of point separated number sequences. Includes fixed point decimal numbers, IPv4 notation nad version nunbers.

Attributes

Graph
Supertypes
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes
case class Dot2Token(startPosn: TextPosn) extends ClauseMemToken

The double Dot or Stop Token.

The double Dot or Stop Token.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait ClauseMem
trait AssignMem
trait Token
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
case class Dot3Token(startPosn: TextPosn) extends ClauseMemToken

The triple Dot or Stop Token.

The triple Dot or Stop Token.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait ClauseMem
trait AssignMem
trait Token
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
case class DotToken(startPosn: TextPosn) extends ClauseMemToken

The Dot or Stop Token.

The Dot or Stop Token.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait ClauseMem
trait AssignMem
trait Token
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any

Empty Clause class, represented by just a comma.

Empty Clause class, represented by just a comma.

Attributes

Companion:
object
Graph
Supertypes
class Clause
trait Serializable
trait Product
trait Equals
trait TextSpan
class Object
trait Matchable
class Any

Factory object for the empty clause. Not sure if it is necessary

Factory object for the empty clause. Not sure if it is necessary

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Graph
Supertypes
trait ExprSeq
trait ClauseMem
trait AssignMem
trait Expr
trait Token
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes

The Semicolon of the Empty statement is the expression of this special case of the unclaused statement

The Semicolon of the Empty statement is the expression of this special case of the unclaused statement

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Statement
trait TextSpan
class Object
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
trait Expr extends BlockMem with StatementMem

The fundamental expression trait. As it currently stands properly formed Statements either is empty or contains an expression or a sequence of clauses that contain each contain an expression.

The fundamental expression trait. As it currently stands properly formed Statements either is empty or contains an expression or a sequence of clauses that contain each contain an expression.

Attributes

Graph
Supertypes
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes
trait ExprSeq extends ColonMemExpr

An ExprSeq can be a sequence of Statements or a Sequence of Clauses.

An ExprSeq can be a sequence of Statements or a Sequence of Clauses.

Attributes

Graph
Supertypes
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes

An ExprSeq can be a sequence of Statements or a Sequence of Clauses.

An ExprSeq can be a sequence of Statements or a Sequence of Clauses.

Attributes

Companion:
object
Graph
Supertypes
trait ExprSeq
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
case class FileStatements(statements: RArr[Statement]) extends BlockStatements

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait ExprSeq
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
final case class FloatPtNegToken(startPosn: TextPosn, dgs1: String, dgs2: String, expPos: Boolean, expStr: String, trail: String) extends FloatPtToken

Negative Floating point fractional number token.

Negative Floating point fractional number token.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
final case class FloatPtPosToken(startPosn: TextPosn, dgs1: String, dgs2: String, expPos: Boolean, expStr: String, trail: String) extends FloatPtToken

Positive Floaiting point fractional number token.

Positive Floaiting point fractional number token.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any

Attributes

Graph
Supertypes
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes
case class HashAlphaToken(startPosn: TextPosn, srcStr: String) extends ClauseMemExprToken

The purpose of this token is for use at the beginning of a file, to make the the rest of the Statements, sub-statements. As if they were the statements inside parenthesis.

The purpose of this token is for use at the beginning of a file, to make the the rest of the Statements, sub-statements. As if they were the statements inside parenthesis.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any

An identifier beginning with a lowercase that is not a valid raw Base32 or hexadecimal token.

An identifier beginning with a lowercase that is not a valid raw Base32 or hexadecimal token.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
case class IdentLowerHexaToken(startPosn: TextPosn, srcStr: String) extends IdentLowerToken

An identifier beginning with a lowercase that is a valid raw hexadecimal and raw Base32 token.

An identifier beginning with a lowercase that is a valid raw hexadecimal and raw Base32 token.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
case class IdentLowerOnlyToken(startPosn: TextPosn, srcStr: String) extends IdentLowerToken

An identifier beginning with a lowercase that is not a valid raw Base32 or hexadecimal token.

An identifier beginning with a lowercase that is not a valid raw Base32 or hexadecimal token.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any

A valid identifier beginning with a lowercase letter or an underscore character.

A valid identifier beginning with a lowercase letter or an underscore character.

Attributes

Companion:
object
Graph
Supertypes
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes

Extractor function object for IdentLowerToken type.

Extractor function object for IdentLowerToken type.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
case class IdentUnderToken(startPosn: TextPosn, srcStr: String) extends IdentifierToken

An identifier token beginning with an underscore character.

An identifier token beginning with an underscore character.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
case class IdentUpperBase32OnlyToken(startPosn: TextPosn, srcStr: String) extends IdentUpperBase32Token

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any

An alphanumeric token beginning with an alphabetic character that most commonly represents a name of something, but is also a valid raw Base32 Token.

An alphanumeric token beginning with an alphabetic character that most commonly represents a name of something, but is also a valid raw Base32 Token.

Attributes

Graph
Supertypes
Known subtypes

An identifier beigning with an upper case letter that is also a valid raw hexadecimal token.

An identifier beigning with an upper case letter that is also a valid raw hexadecimal token.

Attributes

Graph
Supertypes
case class IdentUpperOnlyToken(startPosn: TextPosn, srcStr: String) extends IdentUpperToken

An identifier beginning with a upper case that is not a valid raw Base32 or hexadecimal token.

An identifier beginning with a upper case that is not a valid raw Base32 or hexadecimal token.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any

An alphanumeric identifier token beginning with an upper case alphabetic character.

An alphanumeric identifier token beginning with an upper case alphabetic character.

Attributes

Companion:
object
Graph
Supertypes
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes

Extractor function object for IdentUpperToken type.

Extractor function object for IdentUpperToken type.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

An alphanumeric token beginning with an alphabetic character that normally represents a name of something, that identifies something.

An alphanumeric token beginning with an alphabetic character that normally represents a name of something, that identifies something.

Attributes

Companion:
object
Graph
Supertypes
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Common trait for RawIntDeciToken, NatOxToken and NatOyToken has the getIntStd method. This is the trait you would use in general purpose programming language, where raw hexadecimal and raw Bse32 numbers are disallowed.

Common trait for RawIntDeciToken, NatOxToken and NatOyToken has the getIntStd method. This is the trait you would use in general purpose programming language, where raw hexadecimal and raw Bse32 numbers are disallowed.

Attributes

Companion:
object
Graph
Supertypes
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes

Companion object for the IntStdToken trait, only contains an unapply method.

Companion object for the IntStdToken trait, only contains an unapply method.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
case class Nat0xToken(startPosn: TextPosn, digitsStr: String) extends NatStdToken with ValidHexaIntToken

A hexadecimal token with a leading "0x", that can be used for standard 32 bit Ints, 64 bit Longs, as well as less used integer formats such as BigInteger and Byte. This is in accord with the principle that RSON at the Token and AST (Abstract Syntax Tree) levels stores data not code, although of course at the higher semantic levels it can be used very well for programming languages.

A hexadecimal token with a leading "0x", that can be used for standard 32 bit Ints, 64 bit Longs, as well as less used integer formats such as BigInteger and Byte. This is in accord with the principle that RSON at the Token and AST (Abstract Syntax Tree) levels stores data not code, although of course at the higher semantic levels it can be used very well for programming languages.

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
object Nat0xToken

Function for parsing explicit Hexadecimal Token, one that begins with the characters '0x'.

Function for parsing explicit Hexadecimal Token, one that begins with the characters '0x'.

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class Nat0yToken(startPosn: TextPosn, digitsStr: String) extends IntStdToken with ValidBase32IntToken

A hexadecimal token with a leading "0y", that can be used for standard 32 bit Ints, 64 bit Longs, as well as less used integer formats such as BigInteger and Byte. This is in accord with the principle that RSON at the Token and AST (Abstract Syntax Tree) levels stores data not code, although of course at the higher semantic levels it can be used very well for programming languages.

A hexadecimal token with a leading "0y", that can be used for standard 32 bit Ints, 64 bit Longs, as well as less used integer formats such as BigInteger and Byte. This is in accord with the principle that RSON at the Token and AST (Abstract Syntax Tree) levels stores data not code, although of course at the higher semantic levels it can be used very well for programming languages.

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
object Nat0yToken

Function for parsing explicit Hexadecimal Token, one that begins with the charchters '0y'.

Function for parsing explicit Hexadecimal Token, one that begins with the charchters '0y'.

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class NatDeciToken(startPosn: TextPosn, srcStr: String) extends ValidRawHexaNatToken with RawIntDeciToken with NatStdToken with DigitSeqsCode

A 64 bit natural number token in standard decimal format, but which can be inferred to be a raw Hexadecimal. It can be used for standard 32 bit Ints and 64 bit Longs, as well as less used integer formats such as Byte. This is in accord with the principle that RSON at the Token and AST (Abstract Syntax Tree) levels stores data not code, although of course at the higher semantic levels it can be used very well for programming languages.

A 64 bit natural number token in standard decimal format, but which can be inferred to be a raw Hexadecimal. It can be used for standard 32 bit Ints and 64 bit Longs, as well as less used integer formats such as Byte. This is in accord with the principle that RSON at the Token and AST (Abstract Syntax Tree) levels stores data not code, although of course at the higher semantic levels it can be used very well for programming languages.

Attributes

Graph
Supertypes

Common trait for RawIntDeciToken, NatOxToken and NatOyToken has the getIntStd method. This is the trait you would use in general purpose programming language, where raw hexadecimal and raw Bse32 numbers are disallowed.

Common trait for RawIntDeciToken, NatOxToken and NatOyToken has the getIntStd method. This is the trait you would use in general purpose programming language, where raw hexadecimal and raw Bse32 numbers are disallowed.

Attributes

Companion:
object
Graph
Supertypes
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any
Known subtypes

Companion object for the NatStdToken trait, only contains an unapply method.

Companion object for the NatStdToken trait, only contains an unapply method.

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
case class NegDeciToken(startPosn: TextPosn, digitsStr: String) extends RawIntDeciToken with ValidRawHexaNegToken

Negative natural number token. There must be no space between the '-' character and the digits.

Negative natural number token. There must be no space between the '-' character and the digits.

Attributes

Graph
Supertypes
case class NonEmptyStatement(expr: Expr, optSemi: OptRef[SemicolonToken]) extends Statement with TextSpanCompound

An un-claused Statement that is not the empty statement.

An un-claused Statement that is not the empty statement.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Statement
trait TextSpan
class Object
trait Matchable
class Any
case class OperatorToken(startPosn: TextPosn, srcStr: String) extends ClauseMemExprToken

An Operator token.

An Operator token.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait ClauseMem
trait AssignMem
trait Expr
trait BlockMem
trait TextSpan
class Object
trait Matchable
class Any

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
case class ParenthCloseToken(startPosn: TextPosn) extends BracketCloseToken

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait TextSpan
class Object
trait Matchable
class Any
case class ParenthOpenToken(startPosn: TextPosn) extends BracketOpen

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Token
trait TextSpan
class Object
trait Matchable
class Any
case object Parenthesis extends Braces

Attributes

Graph