wl

package module
v1.0.1-0...-3c720f8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 9, 2018 License: BSD-3-Clause Imports: 10 Imported by: 2

README

wl

Package WL provides a Wolfram Language parser. (Work In Progress)

Installation

$ go get modernc.org/wl

Documentation: godoc.org/modernc.org/wl

Documentation

Overview

Package wl provides a Wolfram Language parser (Work In Progress)

[0]: http://www.wolfram.com/language

Changelog

2017-08-14: The parser now seems to be reasonably complete for experimental use.

Index

Examples

Constants

View Source
const (
	ADD_TO                   = 57346
	AND                      = 57347
	APPLY                    = 57348
	APPLY_ALL                = 57349
	BACKSLASH                = 57350
	BECAUSE                  = 57351
	CAP                      = 57352
	CENTER_DOT               = 57353
	CIRCLE_DOT               = 57354
	CIRCLE_MINUS             = 57355
	CIRCLE_PLUS              = 57356
	CIRCLE_TIMES             = 57357
	COMPOSITION              = 57358
	CONDITION                = 57359
	CONJUGATE                = 57360
	CONJUGATE_TRANSPOSE      = 57361
	COPRODUCT                = 57362
	CROSS                    = 57363
	CUP                      = 57364
	DEC                      = 57365
	DEL                      = 57366
	DIAMOND                  = 57367
	DIFFERENCE_DELTA         = 57368
	DIFFERENTIAL_D           = 57369
	DISCRETE_RATIO           = 57370
	DISCRETE_SHIFT           = 57371
	DIVIDE                   = 57372
	DIVIDE2                  = 57373
	DIVIDE_BY                = 57374
	DOUBLE_LEFT_TEE          = 57375
	DOUBLE_RIGHT_TEE         = 57376
	DOUBLE_VERTICAL_BAR      = 57377
	DOWN_TEE                 = 57378
	ELEMENT                  = 57379
	EQUAL                    = 57380
	EQUIVALENT               = 57381
	EXISTS                   = 57382
	FACTORIAL                = 57383
	FLOAT                    = 57384
	FORM_BOX                 = 57385
	FOR_ALL                  = 57386
	FUNCTION                 = 57387
	GEQ                      = 57388
	GET                      = 57389
	HERMITIAN_CONJUGATE      = 57390
	IDENT                    = 57391
	IGNORE                   = 57392
	IMAGINARYI               = 57393
	IMAGINARYJ               = 57394
	IMPLIES                  = 57395
	INC                      = 57396
	INFO                     = 57397
	INFOSHORT                = 57398
	INT                      = 57399
	INTEGRATE                = 57400
	INTERSECTION             = 57401
	LEFT_TEE                 = 57402
	LEQ                      = 57403
	LPART                    = 57404
	MAP                      = 57405
	MAP_ALL                  = 57406
	MESSAGE_NAME             = 57407
	MINUS_PLUS               = 57408
	NAND                     = 57409
	NON_COMMUTATIVE_MULTIPLY = 57410
	NOR                      = 57411
	NOT_DOUBLE_VERTICAL_BAR  = 57412
	NOT_ELEMENT              = 57413
	NOT_EXISTS               = 57414
	NOT_VERTICAL_BAR         = 57415
	OR                       = 57416
	OUT                      = 57417
	OVERSCRIPT               = 57418
	PARTIAL_D                = 57419
	PATTERN                  = 57420
	PLUS_MINUS               = 57421
	POSTFIX                  = 57422
	POWER_SUBSCRIPT1         = 57423
	POWER_SUBSCRIPT2         = 57424
	PRE_INC                  = 57425
	PRODUCT                  = 57426
	PUT                      = 57427
	PUT_APPEND               = 57428
	QUOTE                    = 57429
	REPEATED                 = 57430
	REPEATED_NULL            = 57431
	REPLACEALL               = 57432
	REPLACEREP               = 57433
	RIGHT_COMPOSITION        = 57434
	RIGHT_TEE                = 57435
	RPART                    = 57436
	RULE                     = 57437
	RULEDELAYED              = 57438
	SAME                     = 57439
	SET_DELAYED              = 57440
	SLOT                     = 57441
	SMALL_CIRCLE             = 57442
	SPAN                     = 57443
	SQRT                     = 57444
	SQRT2                    = 57445
	SQUARE                   = 57446
	STAR                     = 57447
	STRING                   = 57448
	STRINGJOIN               = 57449
	STRING_EXPRESSION        = 57450
	SUBSCRIPT                = 57451
	SUBSET                   = 57452
	SUBTRACT_FROM            = 57453
	SUCH_THAT                = 57454
	SUM                      = 57455
	SUPERSET                 = 57456
	TAG_SET                  = 57457
	THEREFORE                = 57458
	TIMES_BY                 = 57459
	TRANSPOSE                = 57460
	UNARY_MINUS              = 57461
	UNARY_MINUS_PLUS         = 57462
	UNARY_PLUS               = 57463
	UNARY_PLUS_MINUS         = 57464
	UNDERSCRIPT              = 57465
	UNEQUAL                  = 57466
	UNION                    = 57467
	UNSAME                   = 57468
	UP_SET                   = 57469
	UP_SET_DELAYED           = 57470
	UP_TEE                   = 57471
	VEE                      = 57472
	VERTICAL_BAR             = 57473
	VERTICAL_SEPARATOR       = 57474
	VERTICAL_TILDE           = 57475
	WEDGE                    = 57476
	XNOR                     = 57477
	XOR                      = 57478
)

Variables

View Source
var Precedence map[int]int

Precedence maps token numbers to token precedence.

Functions

This section is empty.

Types

type CommaOpt

type CommaOpt struct {
	Token Token
}

CommaOpt represents data reduced by productions:

CommaOpt:
        /* empty */  // Case 0
|       ','          // Case 1
Example (Case0)
fmt.Println(exampleAST(153, "{ 1.97 }") == (*CommaOpt)(nil))
Output:

false
Example (Case1)
fmt.Println(exampleAST(154, "{ 1.97 , ]"))
Output:

&wl.CommaOpt{
· Token: ',',
}

func (*CommaOpt) Pos

func (n *CommaOpt) Pos() token.Pos

Pos reports the position of the first component of n or zero if it's empty.

func (*CommaOpt) String

func (n *CommaOpt) String() string

String implements fmt.Stringer.

type ExprList

type ExprList struct {
	Case       int
	ExprList   *ExprList
	Expression *Expression
	Token      Token
}

ExprList represents data reduced by productions:

ExprList:
        Expression               // Case 0
|       ExprList ',' Expression  // Case 1
Example (Case0)
fmt.Println(exampleAST(151, "{ 1.97 ,"))
Output:

&wl.ExprList{
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
}
Example (Case1)
fmt.Println(exampleAST(152, "{ 1.97 , 1.98 ,"))
Output:

&wl.ExprList{
· ExprList: &wl.ExprList{
· · Case: 1,
· · Expression: &wl.Expression{
· · · Case: ExpressionFloat,
· · · Token: FLOAT, "1.98",
· · },
· · Token: ',',
· },
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
}

func (*ExprList) Pos

func (n *ExprList) Pos() token.Pos

Pos reports the position of the first component of n or zero if it's empty.

func (*ExprList) String

func (n *ExprList) String() string

String implements fmt.Stringer.

type Expression

type Expression struct {
	Case        ExpressionCase
	CommaOpt    *CommaOpt
	ExprList    *ExprList
	Expression  *Expression
	Expression2 *Expression
	Expression3 *Expression
	FileName    *FileName
	Tag         *Tag
	Tag2        *Tag
	Token       Token
	Token2      Token
	Token3      Token
}

Expression represents data reduced by productions:

Expression:
        "++" Expression                                            // Case ExpressionPreInc
|       "--" Expression                                            // Case ExpressionPreDec
|       ";;"                                                       // Case 2
|       ";;" Expression                                            // Case 3
|       "<<" FileName                                              // Case 4
|       "\\@" Expression                                           // Case 5
|       "\\@" Expression "\\%" Expression                          // Case 6
|       "\\[Del]" Expression                                       // Case 7
|       "\\[Integrate]" Expression "\\[DifferentialD]" Expression  // Case 8
|       "\\[MinusPlus]" Expression                                 // Case 9
|       "\\[PlusMinus]" Expression                                 // Case 10
|       "\\[Sqrt]" Expression                                      // Case 11
|       "\\[Square]" Expression                                    // Case 12
|       '!' Expression                                             // Case 13
|       '(' Expression ')'                                         // Case ExpressionParenExpr
|       '+' Expression                                             // Case ExpressionUnaryPlus
|       '-' Expression                                             // Case ExpressionUnaryMinus
|       '{' '}'                                                    // Case 17
|       '{' ExprList CommaOpt '}'                                  // Case 18
|       Expression "!=" Expression                                 // Case ExpressionNe
|       Expression "&&" Expression                                 // Case ExpressionLAnd
|       Expression "**" Expression                                 // Case 21
|       Expression "*=" Expression                                 // Case ExpressionMulAssign
|       Expression "++"                                            // Case ExpressionPostInc
|       Expression "+=" Expression                                 // Case ExpressionAddAssign
|       Expression "--"                                            // Case ExpressionPostDec
|       Expression "-=" Expression                                 // Case ExpressionSubAssign
|       Expression "->" Expression                                 // Case 27
|       Expression ".."                                            // Case 28
|       Expression "..."                                           // Case 29
|       Expression "/*" Expression                                 // Case 30
|       Expression "/." Expression                                 // Case 31
|       Expression "//" Expression                                 // Case 32
|       Expression "//." Expression                                // Case 33
|       Expression "//@" Expression                                // Case 34
|       Expression "/:" Expression                                 // Case 35
|       Expression "/;" Expression                                 // Case 36
|       Expression "/=" Expression                                 // Case 37
|       Expression "/@" Expression                                 // Case 38
|       Expression ":=" Expression                                 // Case 39
|       Expression ":>" Expression                                 // Case 40
|       Expression ";;"                                            // Case 41
|       Expression ";;" Expression                                 // Case 42
|       Expression "<=" Expression                                 // Case ExpressionLe
|       Expression "<>" Expression                                 // Case 44
|       Expression "=!=" Expression                                // Case 45
|       Expression "==" Expression                                 // Case ExpressionEq
|       Expression "===" Expression                                // Case 47
|       Expression ">=" Expression                                 // Case ExpressionGe
|       Expression ">>" FileName                                   // Case ExpressionRsh
|       Expression ">>>" FileName                                  // Case 50
|       Expression "@*" Expression                                 // Case 51
|       Expression "@@" Expression                                 // Case 52
|       Expression "@@@" Expression                                // Case 53
|       Expression "[[" ExprList CommaOpt "]]"                     // Case 54
|       Expression "\\&" Expression                                // Case 55
|       Expression "\\+" Expression                                // Case 56
|       Expression "\\[Backslash]" Expression                      // Case 57
|       Expression "\\[Because]" Expression                        // Case 58
|       Expression "\\[Cap]" Expression                            // Case 59
|       Expression "\\[CenterDot]" Expression                      // Case 60
|       Expression "\\[CircleDot]" Expression                      // Case 61
|       Expression "\\[CircleMinus]" Expression                    // Case 62
|       Expression "\\[CirclePlus]" Expression                     // Case 63
|       Expression "\\[CircleTimes]" Expression                    // Case 64
|       Expression "\\[ConjugateTranspose]"                        // Case 65
|       Expression "\\[Conjugate]"                                 // Case 66
|       Expression "\\[Coproduct]" Expression                      // Case 67
|       Expression "\\[Cross]" Expression                          // Case 68
|       Expression "\\[Cup]" Expression                            // Case 69
|       Expression "\\[Diamond]" Expression                        // Case 70
|       Expression "\\[DifferenceDelta]" Expression                // Case 71
|       Expression "\\[DiscreteRatio]" Expression                  // Case 72
|       Expression "\\[DiscreteShift]" Expression                  // Case 73
|       Expression "\\[DoubleLeftTee]" Expression                  // Case 74
|       Expression "\\[DoubleRightTee]" Expression                 // Case 75
|       Expression "\\[DoubleVerticalBar]" Expression              // Case 76
|       Expression "\\[DownTee]" Expression                        // Case 77
|       Expression "\\[Element]" Expression                        // Case 78
|       Expression "\\[Equivalent]" Expression                     // Case 79
|       Expression "\\[Function]" Expression                       // Case 80
|       Expression "\\[HermitianConjugate]"                        // Case 81
|       Expression "\\[Implies]" Expression                        // Case 82
|       Expression "\\[Intersection]" Expression                   // Case 83
|       Expression "\\[LeftTee]" Expression                        // Case 84
|       Expression "\\[Nand]" Expression                           // Case 85
|       Expression "\\[Nor]" Expression                            // Case 86
|       Expression "\\[NotDoubleVerticalBar]" Expression           // Case 87
|       Expression "\\[NotElement]" Expression                     // Case 88
|       Expression "\\[NotVerticalBar]" Expression                 // Case 89
|       Expression "\\[PartialD]" Expression                       // Case 90
|       Expression "\\[RightTee]" Expression                       // Case 91
|       Expression "\\[SmallCircle]" Expression                    // Case 92
|       Expression "\\[Star]" Expression                           // Case 93
|       Expression "\\[Subset]" Expression                         // Case 94
|       Expression "\\[SuchThat]" Expression                       // Case 95
|       Expression "\\[Superset]" Expression                       // Case 96
|       Expression "\\[Therefore]" Expression                      // Case 97
|       Expression "\\[Transpose]"                                 // Case 98
|       Expression "\\[Union]" Expression                          // Case 99
|       Expression "\\[UpTee]" Expression                          // Case 100
|       Expression "\\[Vee]" Expression                            // Case 101
|       Expression "\\[VerticalBar]" Expression                    // Case 102
|       Expression "\\[VerticalSeparator]" Expression              // Case 103
|       Expression "\\[VerticalTilde]" Expression                  // Case 104
|       Expression "\\[Wedge]" Expression                          // Case 105
|       Expression "\\[Xnor]" Expression                           // Case 106
|       Expression "\\[Xor]" Expression                            // Case 107
|       Expression "\\^" Expression "\\%" Expression               // Case 108
|       Expression "\\_" Expression                                // Case 109
|       Expression "\\`" STRING                                    // Case 110
|       Expression "^:=" Expression                                // Case 111
|       Expression "^=" Expression                                 // Case 112
|       Expression "||" Expression                                 // Case ExpressionLOr
|       Expression "~~" Expression                                 // Case 114
|       Expression '!'                                             // Case ExpressionFactorial
|       Expression '!' '!'                                         // Case 116
|       Expression '&'                                             // Case 117
|       Expression '*' Expression                                  // Case ExpressionMul
|       Expression '+' Expression                                  // Case ExpressionAdd
|       Expression '-' Expression                                  // Case ExpressionSub
|       Expression '.' Expression                                  // Case 121
|       Expression '/' Expression                                  // Case ExpressionDiv
|       Expression ':' Expression                                  // Case 123
|       Expression ';'                                             // Case 124
|       Expression ';' Expression                                  // Case ExpressionCompound
|       Expression '<' Expression                                  // Case ExpressionLt
|       Expression '=' '.'                                         // Case 127
|       Expression '=' Expression                                  // Case ExpressionAssign
|       Expression '>' Expression                                  // Case ExpressionGt
|       Expression '?' Expression                                  // Case ExpressionPatternTest
|       Expression '@' Expression                                  // Case 131
|       Expression '[' ']'                                         // Case 132
|       Expression '[' ExprList CommaOpt ']'                       // Case 133
|       Expression '^' Expression                                  // Case 134
|       Expression '|' Expression                                  // Case ExpressionOr
|       Expression '~' Expression                                  // Case 136
|       Expression QUOTE                                           // Case 137
|       '?' Tag                                                    // Case ExpressionInfoShort
|       '?' '?' Tag                                                // Case ExpressionInfo
|       FLOAT                                                      // Case ExpressionFloat
|       IDENT                                                      // Case ExpressionIdent
|       IDENT "::" Tag                                             // Case ExpressionMessageName
|       IDENT "::" Tag "::" Tag                                    // Case ExpressionMessageName2
|       INT                                                        // Case ExpressionInteger
|       OUT                                                        // Case 145
|       PATTERN                                                    // Case ExpressionPattern
|       SLOT                                                       // Case ExpressionSlot
|       STRING                                                     // Case ExpressionString
Example (Add)
fmt.Println(exampleAST(121, "1.97 + 1.98"))
Output:

&wl.Expression{
· Case: ExpressionAdd,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: '+',
}
Example (AddAssign)
fmt.Println(exampleAST(26, "1.97 += 1.98"))
Output:

&wl.Expression{
· Case: ExpressionAddAssign,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: ADD_TO, "+=",
}
Example (Assign)
fmt.Println(exampleAST(130, "1.97 = 1.98"))
Output:

&wl.Expression{
· Case: ExpressionAssign,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: '=',
}
Example (Case002)
fmt.Println(exampleAST(4, ";;"))
Output:

&wl.Expression{
· Case: ExpressionCase(2),
· Token: SPAN, ";;",
}
Example (Case003)
fmt.Println(exampleAST(5, ";; 1.97"))
Output:

&wl.Expression{
· Case: ExpressionCase(3),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: SPAN, ";;",
}
Example (Case004)
fmt.Println(exampleAST(6, "<< a"))
Output:

&wl.Expression{
· Case: ExpressionCase(4),
· FileName: &wl.FileName{
· · Token: IDENT, "a",
· },
· Token: GET, "<<",
}
Example (Case005)
fmt.Println(exampleAST(7, "\\@ 1.97"))
Output:

&wl.Expression{
· Case: ExpressionCase(5),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: SQRT2, "\\@",
}
Example (Case006)
fmt.Println(exampleAST(8, "\\@ 1.97 \\% 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(6),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: SQRT2, "\\@",
· Token2: POWER_SUBSCRIPT2, "\\%",
}
Example (Case007)
fmt.Println(exampleAST(9, "\\[Del] 1.97"))
Output:

&wl.Expression{
· Case: ExpressionCase(7),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: DEL, "∇",
}
Example (Case008)
fmt.Println(exampleAST(10, "\\[Integrate] 1.97 \\[DifferentialD] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(8),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: INTEGRATE, "∫",
· Token2: DIFFERENTIAL_D, "\uf74c",
}
Example (Case009)
fmt.Println(exampleAST(11, "\\[MinusPlus] 1.97"))
Output:

&wl.Expression{
· Case: ExpressionCase(9),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: MINUS_PLUS, "∓",
}
Example (Case010)
fmt.Println(exampleAST(12, "\\[PlusMinus] 1.97"))
Output:

&wl.Expression{
· Case: ExpressionCase(10),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: PLUS_MINUS, "±",
}
Example (Case011)
fmt.Println(exampleAST(13, "\\[Sqrt] 1.97"))
Output:

&wl.Expression{
· Case: ExpressionCase(11),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: SQRT, "√",
}
Example (Case012)
fmt.Println(exampleAST(14, "\\[Square] 1.97"))
Output:

&wl.Expression{
· Case: ExpressionCase(12),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: SQUARE, "\uf520",
}
Example (Case013)
fmt.Println(exampleAST(15, "! 1.97"))
Output:

&wl.Expression{
· Case: ExpressionCase(13),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: '!',
}
Example (Case017)
fmt.Println(exampleAST(19, "{ }"))
Output:

&wl.Expression{
· Case: ExpressionCase(17),
· Token: '{',
· Token2: '}',
}
Example (Case018)
fmt.Println(exampleAST(20, "{ 1.97 }"))
Output:

&wl.Expression{
· Case: ExpressionCase(18),
· ExprList: &wl.ExprList{
· · Expression: &wl.Expression{
· · · Case: ExpressionFloat,
· · · Token: FLOAT, "1.97",
· · },
· },
· Token: '{',
· Token2: '}',
}
Example (Case021)
fmt.Println(exampleAST(23, "1.97 ** 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(21),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: NON_COMMUTATIVE_MULTIPLY, "**",
}
Example (Case027)
fmt.Println(exampleAST(29, "1.97 -> 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(27),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: RULE, "->",
}
Example (Case028)
fmt.Println(exampleAST(30, "1.97 .."))
Output:

&wl.Expression{
· Case: ExpressionCase(28),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: REPEATED, "..",
}
Example (Case029)
fmt.Println(exampleAST(31, "1.97 ..."))
Output:

&wl.Expression{
· Case: ExpressionCase(29),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: REPEATED_NULL, "...",
}
Example (Case030)
fmt.Println(exampleAST(32, "1.97 /* 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(30),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: RIGHT_COMPOSITION, "/*",
}
Example (Case031)
fmt.Println(exampleAST(33, "1.97 /. 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(31),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: REPLACEALL, "/.",
}
Example (Case032)
fmt.Println(exampleAST(34, "1.97 // 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(32),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: POSTFIX, "//",
}
Example (Case033)
fmt.Println(exampleAST(35, "1.97 //. 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(33),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: REPLACEREP, "//.",
}
Example (Case034)
fmt.Println(exampleAST(36, "1.97 //@ 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(34),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: MAP_ALL, "//@",
}
Example (Case035)
fmt.Println(exampleAST(37, "a/:b=c"))
Output:

&wl.Expression{
· Case: ExpressionCase(35),
· Expression: &wl.Expression{
· · Case: ExpressionIdent,
· · Token: IDENT, "a",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionAssign,
· · Expression: &wl.Expression{
· · · Case: ExpressionIdent,
· · · Token: IDENT, "b",
· · },
· · Expression2: &wl.Expression{
· · · Case: ExpressionIdent,
· · · Token: IDENT, "c",
· · },
· · Token: '=',
· },
· Token: TAG_SET, "/:",
}
Example (Case036)
fmt.Println(exampleAST(38, "1.97 /; 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(36),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: CONDITION, "/;",
}
Example (Case037)
fmt.Println(exampleAST(39, "1.97 /= 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(37),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: DIVIDE_BY, "/=",
}
Example (Case038)
fmt.Println(exampleAST(40, "1.97 /@ 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(38),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: MAP, "/@",
}
Example (Case039)
fmt.Println(exampleAST(41, "1.97 := 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(39),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: SET_DELAYED, ":=",
}
Example (Case040)
fmt.Println(exampleAST(42, "1.97 :> 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(40),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: RULEDELAYED, ":>",
}
Example (Case041)
fmt.Println(exampleAST(43, "1.97 ;;"))
Output:

&wl.Expression{
· Case: ExpressionCase(41),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: SPAN, ";;",
}
Example (Case042)
fmt.Println(exampleAST(44, "1.97 ;; 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(42),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: SPAN, ";;",
}
Example (Case044)
fmt.Println(exampleAST(46, "1.97 <> 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(44),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: STRINGJOIN, "<>",
}
Example (Case045)
fmt.Println(exampleAST(47, "1.97 =!= 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(45),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: UNSAME, "=!=",
}
Example (Case047)
fmt.Println(exampleAST(49, "1.97 === 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(47),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: SAME, "===",
}
Example (Case050)
fmt.Println(exampleAST(52, "1.97 >>> b"))
Output:

&wl.Expression{
· Case: ExpressionCase(50),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· FileName: &wl.FileName{
· · Token: IDENT, "b",
· },
· Token: PUT_APPEND, ">>>",
}
Example (Case051)
fmt.Println(exampleAST(53, "1.97 @* 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(51),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: COMPOSITION, "@*",
}
Example (Case052)
fmt.Println(exampleAST(54, "1.97 @@ 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(52),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: APPLY, "@@",
}
Example (Case053)
fmt.Println(exampleAST(55, "1.97 @@@ 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(53),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: APPLY_ALL, "@@@",
}
Example (Case054)
fmt.Println(exampleAST(56, "1.97 [[ 1.98 ]]"))
Output:

&wl.Expression{
· Case: ExpressionCase(54),
· ExprList: &wl.ExprList{
· · Expression: &wl.Expression{
· · · Case: ExpressionFloat,
· · · Token: FLOAT, "1.98",
· · },
· },
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: LPART, "[[",
· Token2: RPART, "]]",
}
Example (Case055)
fmt.Println(exampleAST(57, "1.97 \\& 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(55),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: OVERSCRIPT, "\\&",
}
Example (Case056)
fmt.Println(exampleAST(58, "1.97 \\+ 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(56),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: UNDERSCRIPT, "\\+",
}
Example (Case057)
fmt.Println(exampleAST(59, "1.97 \\[Backslash] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(57),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: BACKSLASH, "∖",
}
Example (Case058)
fmt.Println(exampleAST(60, "1.97 \\[Because] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(58),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: BECAUSE, "∵",
}
Example (Case059)
fmt.Println(exampleAST(61, "1.97 \\[Cap] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(59),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: CAP, "⌢",
}
Example (Case060)
fmt.Println(exampleAST(62, "1.97 \\[CenterDot] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(60),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: CENTER_DOT, "·",
}
Example (Case061)
fmt.Println(exampleAST(63, "1.97 \\[CircleDot] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(61),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: CIRCLE_DOT, "⊙",
}
Example (Case062)
fmt.Println(exampleAST(64, "1.97 \\[CircleMinus] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(62),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: CIRCLE_MINUS, "⊖",
}
Example (Case063)
fmt.Println(exampleAST(65, "1.97 \\[CirclePlus] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(63),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: CIRCLE_PLUS, "⊕",
}
Example (Case064)
fmt.Println(exampleAST(66, "1.97 \\[CircleTimes] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(64),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: CIRCLE_TIMES, "⊗",
}
Example (Case065)
fmt.Println(exampleAST(67, "1.97 \\[ConjugateTranspose]"))
Output:

&wl.Expression{
· Case: ExpressionCase(65),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: CONJUGATE_TRANSPOSE, "\uf3c9",
}
Example (Case066)
fmt.Println(exampleAST(68, "1.97 \\[Conjugate]"))
Output:

&wl.Expression{
· Case: ExpressionCase(66),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: CONJUGATE, "\uf3c8",
}
Example (Case067)
fmt.Println(exampleAST(69, "1.97 \\[Coproduct] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(67),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: COPRODUCT, "∐",
}
Example (Case068)
fmt.Println(exampleAST(70, "1.97 \\[Cross] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(68),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: CROSS, "\uf4a0",
}
Example (Case069)
fmt.Println(exampleAST(71, "1.97 \\[Cup] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(69),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: CUP, "⌣",
}
Example (Case070)
fmt.Println(exampleAST(72, "1.97 \\[Diamond] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(70),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: DIAMOND, "⋄",
}
Example (Case071)
fmt.Println(exampleAST(73, "1.97 \\[DifferenceDelta] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(71),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: DIFFERENCE_DELTA, "∆",
}
Example (Case072)
fmt.Println(exampleAST(74, "1.97 \\[DiscreteRatio] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(72),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: DISCRETE_RATIO, "\uf4a4",
}
Example (Case073)
fmt.Println(exampleAST(75, "1.97 \\[DiscreteShift] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(73),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: DISCRETE_SHIFT, "\uf4a3",
}
Example (Case074)
fmt.Println(exampleAST(76, "1.97 \\[DoubleLeftTee] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(74),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: DOUBLE_LEFT_TEE, "⫤",
}
Example (Case075)
fmt.Println(exampleAST(77, "1.97 \\[DoubleRightTee] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(75),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: DOUBLE_RIGHT_TEE, "⊨",
}
Example (Case076)
fmt.Println(exampleAST(78, "1.97 \\[DoubleVerticalBar] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(76),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: DOUBLE_VERTICAL_BAR, "∥",
}
Example (Case077)
fmt.Println(exampleAST(79, "1.97 \\[DownTee] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(77),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: DOWN_TEE, "⊤",
}
Example (Case078)
fmt.Println(exampleAST(80, "1.97 \\[Element] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(78),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: ELEMENT, "∈",
}
Example (Case079)
fmt.Println(exampleAST(81, "1.97 \\[Equivalent] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(79),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: EQUIVALENT, "⧦",
}
Example (Case080)
fmt.Println(exampleAST(82, "1.97 \\[Function] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(80),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: FUNCTION, "\uf4a1",
}
Example (Case081)
fmt.Println(exampleAST(83, "1.97 \\[HermitianConjugate]"))
Output:

&wl.Expression{
· Case: ExpressionCase(81),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: HERMITIAN_CONJUGATE, "\uf3ce",
}
Example (Case082)
fmt.Println(exampleAST(84, "1.97 \\[Implies] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(82),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: IMPLIES, "\uf523",
}
Example (Case083)
fmt.Println(exampleAST(85, "1.97 \\[Intersection] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(83),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: INTERSECTION, "⋂",
}
Example (Case084)
fmt.Println(exampleAST(86, "1.97 \\[LeftTee] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(84),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: LEFT_TEE, "⊣",
}
Example (Case085)
fmt.Println(exampleAST(87, "1.97 \\[Nand] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(85),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: NAND, "⊼",
}
Example (Case086)
fmt.Println(exampleAST(88, "1.97 \\[Nor] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(86),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: NOR, "⊽",
}
Example (Case087)
fmt.Println(exampleAST(89, "1.97 \\[NotDoubleVerticalBar] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(87),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: NOT_DOUBLE_VERTICAL_BAR, "∦",
}
Example (Case088)
fmt.Println(exampleAST(90, "1.97 \\[NotElement] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(88),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: NOT_ELEMENT, "∉",
}
Example (Case089)
fmt.Println(exampleAST(91, "1.97 \\[NotVerticalBar] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(89),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: NOT_VERTICAL_BAR, "\uf3d1",
}
Example (Case090)
fmt.Println(exampleAST(92, "1.97 \\[PartialD] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(90),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: PARTIAL_D, "∂",
}
Example (Case091)
fmt.Println(exampleAST(93, "1.97 \\[RightTee] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(91),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: RIGHT_TEE, "⊢",
}
Example (Case092)
fmt.Println(exampleAST(94, "1.97 \\[SmallCircle] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(92),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: SMALL_CIRCLE, "∘",
}
Example (Case093)
fmt.Println(exampleAST(95, "1.97 \\[Star] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(93),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: STAR, "⋆",
}
Example (Case094)
fmt.Println(exampleAST(96, "1.97 \\[Subset] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(94),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: SUBSET, "⊂",
}
Example (Case095)
fmt.Println(exampleAST(97, "1.97 \\[SuchThat] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(95),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: SUCH_THAT, "∍",
}
Example (Case096)
fmt.Println(exampleAST(98, "1.97 \\[Superset] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(96),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: SUPERSET, "⊃",
}
Example (Case097)
fmt.Println(exampleAST(99, "1.97 \\[Therefore] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(97),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: THEREFORE, "∴",
}
Example (Case098)
fmt.Println(exampleAST(100, "1.97 \\[Transpose]"))
Output:

&wl.Expression{
· Case: ExpressionCase(98),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: TRANSPOSE, "\uf3c7",
}
Example (Case099)
fmt.Println(exampleAST(101, "1.97 \\[Union] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(99),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: UNION, "⋃",
}
Example (Case100)
fmt.Println(exampleAST(102, "1.97 \\[UpTee] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(100),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: UP_TEE, "⊥",
}
Example (Case101)
fmt.Println(exampleAST(103, "1.97 \\[Vee] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(101),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: VEE, "⋁",
}
Example (Case102)
fmt.Println(exampleAST(104, "1.97 \\[VerticalBar] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(102),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: VERTICAL_BAR, "\uf3d0",
}
Example (Case103)
fmt.Println(exampleAST(105, "1.97 \\[VerticalSeparator] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(103),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: VERTICAL_SEPARATOR, "\uf432",
}
Example (Case104)
fmt.Println(exampleAST(106, "1.97 \\[VerticalTilde] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(104),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: VERTICAL_TILDE, "≀",
}
Example (Case105)
fmt.Println(exampleAST(107, "1.97 \\[Wedge] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(105),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: WEDGE, "⋀",
}
Example (Case106)
fmt.Println(exampleAST(108, "1.97 \\[Xnor] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(106),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: XNOR, "\uf4a2",
}
Example (Case107)
fmt.Println(exampleAST(109, "1.97 \\[Xor] 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(107),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: XOR, "⊻",
}
Example (Case108)
fmt.Println(exampleAST(110, "1.97 \\^ 1.98 \\% 1.99"))
Output:

&wl.Expression{
· Case: ExpressionCase(108),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Expression3: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.99",
· },
· Token: POWER_SUBSCRIPT1, "\\^",
· Token2: POWER_SUBSCRIPT2, "\\%",
}
Example (Case109)
fmt.Println(exampleAST(111, "1.97 \\_ 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(109),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: SUBSCRIPT, "\\_",
}
Example (Case110)
fmt.Println(exampleAST(112, "1.97 \\` \"b\""))
Output:

&wl.Expression{
· Case: ExpressionCase(110),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: FORM_BOX, "\\`",
· Token2: STRING, "b",
}
Example (Case111)
fmt.Println(exampleAST(113, "1.97 ^:= 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(111),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: UP_SET_DELAYED, "^:=",
}
Example (Case112)
fmt.Println(exampleAST(114, "1.97 ^= 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(112),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: UP_SET, "^=",
}
Example (Case114)
fmt.Println(exampleAST(116, "1.97 ~~ 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(114),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: STRING_EXPRESSION, "~~",
}
Example (Case116)
fmt.Println(exampleAST(118, "1.97 ! !"))
Output:

&wl.Expression{
· Case: ExpressionCase(116),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: '!',
· Token2: '!',
}
Example (Case117)
fmt.Println(exampleAST(119, "1.97 &"))
Output:

&wl.Expression{
· Case: ExpressionCase(117),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: '&',
}
Example (Case121)
fmt.Println(exampleAST(123, "1.97 . 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(121),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: '.',
}
Example (Case123)
fmt.Println(exampleAST(125, "1.97 : 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(123),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: ':',
}
Example (Case124)
fmt.Println(exampleAST(126, "1.97 ;"))
Output:

&wl.Expression{
· Case: ExpressionCase(124),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: ';',
}
Example (Case127)
fmt.Println(exampleAST(129, "1.97 = ."))
Output:

&wl.Expression{
· Case: ExpressionCase(127),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: '=',
· Token2: '.',
}
Example (Case131)
fmt.Println(exampleAST(133, "1.97 @ 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(131),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: '@',
}
Example (Case132)
fmt.Println(exampleAST(134, "1.97 [ ]"))
Output:

&wl.Expression{
· Case: ExpressionCase(132),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: '[',
· Token2: ']',
}
Example (Case133)
fmt.Println(exampleAST(135, "1.97 [ 1.98 ]"))
Output:

&wl.Expression{
· Case: ExpressionCase(133),
· ExprList: &wl.ExprList{
· · Expression: &wl.Expression{
· · · Case: ExpressionFloat,
· · · Token: FLOAT, "1.98",
· · },
· },
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: '[',
· Token2: ']',
}
Example (Case134)
fmt.Println(exampleAST(136, "1.97 ^ 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(134),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: '^',
}
Example (Case136)
fmt.Println(exampleAST(138, "1.97 ~ 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCase(136),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: '~',
}
Example (Case137)
fmt.Println(exampleAST(139, "1.97 '"))
Output:

&wl.Expression{
· Case: ExpressionCase(137),
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: QUOTE, "'",
}
Example (Case145)
fmt.Println(exampleAST(147, "%97"))
Output:

&wl.Expression{
· Case: ExpressionCase(145),
· Token: OUT, "%97",
}
Example (Compound)
fmt.Println(exampleAST(127, "1.97 ; 1.98"))
Output:

&wl.Expression{
· Case: ExpressionCompound,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: ';',
}
Example (Div)
fmt.Println(exampleAST(124, "1.97 / 1.98"))
Output:

&wl.Expression{
· Case: ExpressionDiv,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: '/',
}
Example (Eq)
fmt.Println(exampleAST(48, "1.97 == 1.98"))
Output:

&wl.Expression{
· Case: ExpressionEq,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: EQUAL, "==",
}
Example (Factorial)
fmt.Println(exampleAST(117, "1.97 !"))
Output:

&wl.Expression{
· Case: ExpressionFactorial,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: '!',
}
Example (Float)
fmt.Println(exampleAST(142, "1.97"))
Output:

&wl.Expression{
· Case: ExpressionFloat,
· Token: FLOAT, "1.97",
}
Example (Ge)
fmt.Println(exampleAST(50, "1.97 >= 1.98"))
Output:

&wl.Expression{
· Case: ExpressionGe,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: GEQ, ">=",
}
Example (Gt)
fmt.Println(exampleAST(131, "1.97 > 1.98"))
Output:

&wl.Expression{
· Case: ExpressionGt,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: '>',
}
Example (Ident)
fmt.Println(exampleAST(143, "a"))
Output:

&wl.Expression{
· Case: ExpressionIdent,
· Token: IDENT, "a",
}
Example (Info)
fmt.Println(exampleAST(141, "? ? a"))
Output:

&wl.Expression{
· Case: ExpressionInfo,
· Tag: &wl.Tag{
· · Token: IDENT, "a",
· },
· Token: '?',
· Token2: '?',
}
Example (InfoShort)
fmt.Println(exampleAST(140, "? a"))
Output:

&wl.Expression{
· Case: ExpressionInfoShort,
· Tag: &wl.Tag{
· · Token: IDENT, "a",
· },
· Token: '?',
}
Example (Integer)
fmt.Println(exampleAST(146, "97"))
Output:

&wl.Expression{
· Case: ExpressionInteger,
· Token: INT, "97",
}
Example (LAnd)
fmt.Println(exampleAST(22, "1.97 && 1.98"))
Output:

&wl.Expression{
· Case: ExpressionLAnd,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: AND, "&&",
}
Example (LOr)
fmt.Println(exampleAST(115, "1.97 || 1.98"))
Output:

&wl.Expression{
· Case: ExpressionLOr,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: OR, "||",
}
Example (Le)
fmt.Println(exampleAST(45, "1.97 <= 1.98"))
Output:

&wl.Expression{
· Case: ExpressionLe,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: LEQ, "<=",
}
Example (Lt)
fmt.Println(exampleAST(128, "1.97 < 1.98"))
Output:

&wl.Expression{
· Case: ExpressionLt,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: '<',
}
Example (MessageName)
fmt.Println(exampleAST(144, "a :: b"))
Output:

&wl.Expression{
· Case: ExpressionMessageName,
· Tag: &wl.Tag{
· · Token: IDENT, "b",
· },
· Token: IDENT, "a",
· Token2: MESSAGE_NAME, "::",
}
Example (MessageName2)
fmt.Println(exampleAST(145, "a :: b :: c"))
Output:

&wl.Expression{
· Case: ExpressionMessageName2,
· Tag: &wl.Tag{
· · Token: IDENT, "b",
· },
· Tag2: &wl.Tag{
· · Token: IDENT, "c",
· },
· Token: IDENT, "a",
· Token2: MESSAGE_NAME, "::",
· Token3: MESSAGE_NAME, "::",
}
Example (Mul)
fmt.Println(exampleAST(120, "1.97 * 1.98"))
Output:

&wl.Expression{
· Case: ExpressionMul,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: '*',
}
Example (MulAssign)
fmt.Println(exampleAST(24, "1.97 *= 1.98"))
Output:

&wl.Expression{
· Case: ExpressionMulAssign,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: TIMES_BY, "*=",
}
Example (Ne)
fmt.Println(exampleAST(21, "1.97 != 1.98"))
Output:

&wl.Expression{
· Case: ExpressionNe,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: UNEQUAL, "!=",
}
Example (Or)
fmt.Println(exampleAST(137, "1.97 | 1.98"))
Output:

&wl.Expression{
· Case: ExpressionOr,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: '|',
}
Example (ParenExpr)
fmt.Println(exampleAST(16, "( 1.97 )"))
Output:

&wl.Expression{
· Case: ExpressionParenExpr,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: '(',
· Token2: ')',
}
Example (Pattern)
fmt.Println(exampleAST(148, "a_"))
Output:

&wl.Expression{
· Case: ExpressionPattern,
· Token: PATTERN, "a_",
}
Example (PatternTest)
fmt.Println(exampleAST(132, "1.97 ? 1.98"))
Output:

&wl.Expression{
· Case: ExpressionPatternTest,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: '?',
}
Example (PostDec)
fmt.Println(exampleAST(27, "1.97 --"))
Output:

&wl.Expression{
· Case: ExpressionPostDec,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: DEC, "--",
}
Example (PostInc)
fmt.Println(exampleAST(25, "1.97 ++"))
Output:

&wl.Expression{
· Case: ExpressionPostInc,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: INC, "++",
}
Example (PreDec)
fmt.Println(exampleAST(3, "-- 1.97"))
Output:

&wl.Expression{
· Case: ExpressionPreDec,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: DEC, "--",
}
Example (PreInc)
fmt.Println(exampleAST(2, "++ 1.97"))
Output:

&wl.Expression{
· Case: ExpressionPreInc,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: INC, "++",
}
Example (Rsh)
fmt.Println(exampleAST(51, "1.97 >> b"))
Output:

&wl.Expression{
· Case: ExpressionRsh,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· FileName: &wl.FileName{
· · Token: IDENT, "b",
· },
· Token: PUT, ">>",
}
Example (Slot)
fmt.Println(exampleAST(149, "#97"))
Output:

&wl.Expression{
· Case: ExpressionSlot,
· Token: SLOT, "#97",
}
Example (String)
fmt.Println(exampleAST(150, "\"a\""))
Output:

&wl.Expression{
· Case: ExpressionString,
· Token: STRING, "a",
}
Example (Sub)
fmt.Println(exampleAST(122, "1.97 - 1.98"))
Output:

&wl.Expression{
· Case: ExpressionSub,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: '-',
}
Example (SubAssign)
fmt.Println(exampleAST(28, "1.97 -= 1.98"))
Output:

&wl.Expression{
· Case: ExpressionSubAssign,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Expression2: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.98",
· },
· Token: SUBTRACT_FROM, "-=",
}
Example (UnaryMinus)
fmt.Println(exampleAST(18, "- 1.97"))
Output:

&wl.Expression{
· Case: ExpressionUnaryMinus,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: '-',
}
Example (UnaryPlus)
fmt.Println(exampleAST(17, "+ 1.97"))
Output:

&wl.Expression{
· Case: ExpressionUnaryPlus,
· Expression: &wl.Expression{
· · Case: ExpressionFloat,
· · Token: FLOAT, "1.97",
· },
· Token: '+',
}

func (*Expression) Pos

func (n *Expression) Pos() token.Pos

Pos reports the position of the first component of n or zero if it's empty.

func (*Expression) String

func (n *Expression) String() string

String implements fmt.Stringer.

type ExpressionCase

type ExpressionCase int

ExpressionCase represents case numbers of production Expression

const (
	ExpressionPreInc ExpressionCase = iota
	ExpressionPreDec

	ExpressionParenExpr
	ExpressionUnaryPlus
	ExpressionUnaryMinus

	ExpressionNe
	ExpressionLAnd

	ExpressionMulAssign
	ExpressionPostInc
	ExpressionAddAssign
	ExpressionPostDec
	ExpressionSubAssign

	ExpressionLe

	ExpressionEq

	ExpressionGe
	ExpressionRsh

	ExpressionLOr

	ExpressionFactorial

	ExpressionMul
	ExpressionAdd
	ExpressionSub

	ExpressionDiv

	ExpressionCompound
	ExpressionLt

	ExpressionAssign
	ExpressionGt
	ExpressionPatternTest

	ExpressionOr

	ExpressionInfoShort
	ExpressionInfo
	ExpressionFloat
	ExpressionIdent
	ExpressionMessageName
	ExpressionMessageName2
	ExpressionInteger

	ExpressionPattern
	ExpressionSlot
	ExpressionString
)

Values of type ExpressionCase

func (ExpressionCase) String

func (n ExpressionCase) String() string

String implements fmt.Stringer

type FileName

type FileName struct {
	Case  FileNameCase
	Token Token
}

FileName represents data reduced by productions:

FileName:
        IDENT   // Case FileNameIdent
|       STRING  // Case FileNameString
Example (Ident)
fmt.Println(exampleAST(155, "<< a"))
Output:

&wl.FileName{
· Token: IDENT, "a",
}
Example (String)
fmt.Println(exampleAST(156, "<< \"a\""))
Output:

&wl.FileName{
· Case: 1,
· Token: STRING, "a",
}

func (*FileName) Pos

func (n *FileName) Pos() token.Pos

Pos reports the position of the first component of n or zero if it's empty.

func (*FileName) String

func (n *FileName) String() string

String implements fmt.Stringer.

type FileNameCase

type FileNameCase int

FileNameCase represents case numbers of production FileName

const (
	FileNameIdent FileNameCase = iota
	FileNameString
)

Values of type FileNameCase

func (FileNameCase) String

func (n FileNameCase) String() string

String implements fmt.Stringer

type Input

type Input struct {
	// contains filtered or unexported fields
}

Input represents parser's source.

func NewInput

func NewInput(r io.RuneReader, interactive bool) (*Input, error)

NewInput returns a newly created Input or an error, of any. The interactive argument enables ParseExpression to return on newlines in input whenever the expression at that point is valid.

func (*Input) ParseExpression

func (p *Input) ParseExpression(file *token.File) (*Expression, error)

ParseExpression parses a Wolfram Language expression using file to record and annotate token and error positions, and returns the respective *Expression or an error, if any.

type Node

type Node interface {
	Pos() token.Pos
}

Node is implemented by all AST nodes.

type Tag

type Tag struct {
	Case  TagCase
	Token Token
}

Tag represents data reduced by productions:

Tag:
        IDENT   // Case TagIdent
|       STRING  // Case TagString
Example (Ident)
fmt.Println(exampleAST(157, "? a"))
Output:

&wl.Tag{
· Token: IDENT, "a",
}
Example (String)
fmt.Println(exampleAST(158, "? \"a\""))
Output:

&wl.Tag{
· Case: 1,
· Token: STRING, "a",
}

func (*Tag) Pos

func (n *Tag) Pos() token.Pos

Pos reports the position of the first component of n or zero if it's empty.

func (*Tag) String

func (n *Tag) String() string

String implements fmt.Stringer.

type TagCase

type TagCase int

TagCase represents case numbers of production Tag

const (
	TagIdent TagCase = iota
	TagString
)

Values of type TagCase

func (TagCase) String

func (n TagCase) String() string

String implements fmt.Stringer

type Token

type Token struct {
	Rune rune
	Val  string
	// contains filtered or unexported fields
}

Token represents a terminal AST node.

func (*Token) Pos

func (t *Token) Pos() token.Pos

Pos implements Node.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL