Options
All
  • Public
  • Public/Protected
  • All
Menu

Index

Variables

Const binOpPrecedenceMap

binOpPrecedenceMap: Map<string, number> = new Map([["=", 0],["||", 1],["&&", 2],["==", 3], ["!=", 3],["<", 4], ["<=", 4], [">", 4], [">=", 4],["+", 5], ["-", 5],["*", 6], ["/", 6],])

Functions

Let ExpressionParser

  • ExpressionParser(i: CharStream): Failure | Success<SequenceNode>
  • Expression parser first searches for the first expression of a sequence and either another expression or the end of the program (NOP) and returns a sequence node

    Parameters

    • i: CharStream

    Returns Failure | Success<SequenceNode>

Let ExpressionParserNoSeq

  • ExpressionParserNoSeq(i: CharStream): Failure | Success<Expression<any>>
  • Searches through all possible expressions except for sequences used to avoid infinite looping in upper level parse

    Parameters

    • i: CharStream

    Returns Failure | Success<Expression<any>>

Let ExpressionParserNoStruct

  • ExpressionParserNoStruct(i: CharStream): Failure | Success<Expression<any>>
  • Tries all possible choices for expressions, excluding sequences and control structures

    Parameters

    • i: CharStream

    Returns Failure | Success<Expression<any>>

Let ExpressionParserNoStructBin

  • ExpressionParserNoStructBin(i: CharStream): Failure | Success<Expression<any>>
  • Tries all possible choices for expressions, excluding sequences, control structures and bin op

    Parameters

    • i: CharStream

    Returns Failure | Success<Expression<any>>

binOpChar

  • binOpChar(includePureLogic?: boolean): Prims.IParser<CharStream>
  • Parameters

    • Default value includePureLogic: boolean = true

    Returns Prims.IParser<CharStream>

binOpExpr

  • binOpExpr(includePureLogic?: boolean): Prims.IParser<Expression<any>>

Let bodyParser

  • bodyParser(i: CharStream): Failure | Success<BodyNode>
  • Body parses the body of a function, if, or loops statement, aka expressions between {}

    Parameters

    • i: CharStream

    Returns Failure | Success<BodyNode>

boolParse

Let conditionalParser

  • conditionalParser(i: CharStream): Failure | Success<Conditional>

createBinOp

float

  • float(): Prims.IParser<number>

Let funApp

  • funApp(i: CharStream): Failure | Success<any>
  • funApp parses valid function applications in the form "functionName(argsList)" parser checks for built-in functions like print, ellipse, and rect, and user-defined functions

    Parameters

    • i: CharStream

    Returns Failure | Success<any>

Let funAppArgList

  • funAppArgList(i: CharStream): Failure | Success<[[string, string, string, Expression<any>, string][], string]>
  • Parses an argument list and returns an array that stores a tuple of preArgNameWS, argName, preEqualWS, argValue, and postExprWS

    Parameters

    • i: CharStream

    Returns Failure | Success<[[string, string, string, Expression<any>, string][], string]>

Let funDef

  • funDef(i: CharStream): Failure | Success<FunDef>
  • funDef parses valid function definitions in the form "fun functionName(argList){body}" the parser returns a funDef node for the AST

    Parameters

    • i: CharStream

    Returns Failure | Success<FunDef>

Let funDefArgList

  • funDefArgList(i: CharStream): Failure | Success<[[string, string, string, Expression<any>, string][], string]>
  • Parses a list of arguments in function declaration

    Parameters

    • i: CharStream

    Returns Failure | Success<[[string, string, string, Expression<any>, string][], string]>

Let identifierParser

  • identifierParser(i: CharStream): Failure | Success<CharStream>

isOpRightAssoc

  • isOpRightAssoc(op: string): boolean

lNumber

Let listAccessOpParser

  • listAccessOpParser(i: CharStream): Failure | Success<ListAccessOp>

Let listParser

  • listParser(i: CharStream): Failure | Success<ListNode>

Let lstring

  • lstring(i: CharStream): Failure | Success<StringNode>
  • lstring parses valid strings in the SWELL language a valid string is surrounded by quotations and consists of letters, numbers, punctuation, and/or whitespace

    Parameters

    • i: CharStream

    Returns Failure | Success<StringNode>

multiLineComment

  • multiLineComment(): IParser<Object>

Let notExpr

  • notExpr(i: CharStream): Failure | Success<Not>

number

  • number(): Prims.IParser<number>
  • to be moved to Pants number parses numbers by repeatedly applying the digit parser

    Returns Prims.IParser<number>

Let parens

parse

  • parse is a function that wraps the input text in a CharStream and passes it to the upper-level parse function

    Parameters

    • program: string

      a string representing program text

    Returns Option<Expression<any>>

parseWithOutcome

  • parseWithOutcome(program: string): Prims.Outcome<Expression<any>>
  • parseWithOutcome is a function that wraps the input text in a CharStream and passes it to the upper-level parse function. The function returns an Outcome, which contains either an AST (on success) or failure information (on failure).

    Parameters

    • program: string

      a string representing program text

    Returns Prims.Outcome<Expression<any>>

punctuation

  • punctuation(): IParser<CharStream>
  • to be moved to Pants punctuation parses all possible punctuation characters

    Returns IParser<CharStream>

Let returnParser

  • returnParser(i: CharStream): Failure | Success<Return>
  • returnParser parses valid return statements in the form "return x" wraps the parsed value in a Return node for the AST

    Parameters

    • i: CharStream

    Returns Failure | Success<Return>

singleComment

string

  • string(): Prims.IParser<CharStream>
  • to be moved to Pants string is an arbitrary string parser that repeatedly applies the letter primitive returns a CharStream representing the entire parsed string

    Returns Prims.IParser<CharStream>

Let unOpsExpr

  • unOpsExpr(i: CharStream): Failure | Success<UnaryOp<any>>
  • unOpsExpr wraps a unary operation expression in the corresponding AST node and returns it

    Parameters

    • i: CharStream

    Returns Failure | Success<UnaryOp<any>>

varNameParse

  • varNameParse parses valid variable names variable names in SWELL begin with a letter and are followed by letters or digits

    Returns Prims.IParser<VariableNode>

Generated using TypeDoc