# BasicCommands

기본적인 커맨드를 미리 정의해둔 클래스입니다.

# All

static ToastCommand[] All

모든 기본 커맨드를 모아둔 배열입니다.

# Literals

static ToastCommand[] Literals

리터럴 커맨드를 모아둔 배열입니다.

# Null

Func("null", (ToastContext) => null)
> null

null을 리턴합니다.

# True

Func("true", (ToastContext) => bool)
> true

true를 리턴합니다.

# False

Func("false", (ToastContext) => bool)
> false

false를 리턴합니다.

# Operators

static ToastCommand[] Operators

연산자 커맨드를 모아둔 배열입니다.

# Addition

Func("add", (float, ToastContext, float) => float)
> x add y

덧셈 연산자입니다.

# Subtraction

Func("sub", (float, ToastContext, float) => float)
> x sub y

뺄셈 연산자입니다.

# Multiplication

Func("mul", (float, ToastContext, float) => float)
> x mul y

곱셈 연산자입니다.

# Division

Func("div", (float, ToastContext, float) => float)
> x div y

나눗셈 연산자입니다.

# Modulus

Func("mod", (float, ToastContext, float) => float)
> x mod y

나머지 연산자입니다.

# FloorDivision

Func("floorDiv", (int, ToastContext, int) => int)
> x floorDiv y

정수 나눗셈 연산자입니다.

# Exponentiation

Func("exp", (float, ToastContext, float) => float)
> x exp y

x의 y제곱을 리턴합니다.

# Equal

Func("is", (object, ToastContext, object) => bool)
> x is y

두 객체가 같은지 확인합니다.

# Greater

Func("greater", (float, ToastContext, float) => bool)
> x greater y

x가 y보다 큰지 확인힙니다.

# Less

Func("less", (float, ToastContext, float) => bool)
> x less y

x가 y보다 작은지 확인합니다.

# GreaterOrEqual

Func("greaterEqual", (float, ToastContext, float) => bool)
> x greaterEqual y

x가 y보다 크거나 같은지 확인힙니다.

# LessOrEqual

Func("lessEqual", (float, ToastContext, float) => bool)
> x lessEqual y

x가 y보다 작거나 같은지 확인합니다.

# And

Func("and", (bool, ToastContext, bool) => bool)
> x and y

x와 y가 모두 true라면 true를 리턴합니다.

# Or

Func("or", (bool, ToastContext, bool) => bool)
> x or y

x와 y 중 하나 이상이 true라면 true를 리턴합니다.

# Not

Func("not", (ToastContext, bool) => bool)
> not x

x가 true라면 false를, false라면 true를 리턴합니다.

# BitwiseAnd

Func("bitAnd", (int, ToastContext, int) => int)
> x bitAnd y

비트 and 연산자입니다.

# BitwiseOr

Func("bitOr", (int, ToastContext, int) => int)
> x bitOr y

비트 or 연산자입니다.

# BitwiseXor

Func("bitXor", (int, ToastContext, int) => int)
> x bitXor y

비트 xor 연산자입니다.

# BitwiseNot

Func("bitNot", (ToastContext, int) => int)
> bitNot x

비트 not 연산자입니다.

# LeftShift

Func("lShift", (int, ToastContext, int) => int)
> x lShift y

왼쪽 쉬프트 연산자입니다.

# RightShift

Func("rShift", (int, ToastContext, int) => int)
> x rShift y

오른쪽 쉬프트 연산자입니다.

# Statements

static ToastCommand[] Statements

선택문, 반복문 커맨드를 모아둔 배열입니다.

# If

Func("if", (ToastContext, bool, FunctionNode) => object)
> if x y

x가 true라면 y를 실행하고, false라면 null을 리턴합니다.

# Else

Func("else", (CommandNode, ToastContext, FunctionNode) => object)
> if x y else z

if와 함께 사용하여, x가 true라면 y를, false라면 z를 실행합니다.

# While

Action("while", (ToastContext, INode, FunctionNode))
> while x (){

}

x가 true인동안 함수를 실행합니다.

# For

Func("for", (ToastContext, object[], FunctionNode) => object[])
> for x (y) {
    
}

배열 x의 값을 각각 파라미터 y로 하는 함수 ((y) { })의 실행결과를 모은 배열을 리턴합니다.

# Others

static ToastCommand[] Others

기타 커맨드를 모아둔 배열입니다.

# Print

Action("print", (ToastContext, object))
> print x

콘솔에 x를 출력합니다.

# Input

Func("input", (ToastContext) => string)
> input

콘솔에서 입력을 받아옵니다.

# Assign

Action("var", (ToastContext, CommandNode))
> var x is y
> var x add y
> var x sub y
> var x mul y
> var x div y
> var x mod y
> var x exp y
> var x floorDiv y
> var x bitAnd y
> var x bitOr y
> var x bitXor y
> var x bitNot y
> var x lShift y
> var x rShift y

var x is y: y를 리턴하는 커맨드 x를 생성해 등록합니다. 즉 x를 변수처럼 사용할 수 있습니다.

var x add y: += 연산자와 같습니다. 그 외의 커맨드도 이 커맨드와 같습니다.

# Convert

Func("as", (object, ToastContext, VariableNode) => object)
> x as y

x의 타입을 y로 변환한 값을 리턴합니다. y에는 Toaster.TypeAliases의 값 중 하나를 대입하여 사용할 수 있습니다.

# Execute

Func("execute", (ToastContext, FunctionNode, object[]) => object)
> execute x y

함수 x를 실행합니다.

# Random

Func("random", (ToastContext, int, int) => long)
> random x y

x 이상 y 미만의 수 중 하나를 랜덤으로 선택합니다.

# RandomChoice

Func("randomChoice", (ToastContext, object[]) => object)
> randomChoice x

배열 x에서 요소 한 개를 랜덤으로 선택합니다.

# Lists

static ToastCommand[] Lists

리스트 관련 커맨드를 모아둔 배열입니다.

# Member

Func("member", (ToastContext, int, object[]) => object)
> member x y

배열 y에서 x번째 인덱스의 요소를 리턴합니다.

# Length

Func("len", (ToastContext, object[]) => int)
> len x

배열 x의 길이입니다.

# IndexOf

Func("indexOf", (ToastContext, object[], object) => int)
> indexOf x y

배열 x에서 요소 y를 찾아 인덱스를 리턴합니다.

# Filter

Func("filter", (ToastContext, object[], FunctionNode) => object[])
> filter x (y) {

}

배열 x에서 함수 (y) { }의 리턴값이 true인 요소만 골라 리턴합니다.

# Map

Func("map", (ToastContext, object[], FunctionNode) => object[])
> map x (y) {

}

배열 x의 각 요소를 파라미터로 하는 함수 (y) { }의 실행결과를 리턴합니다.

# Combine

Func("combine", (ToastContext, object[], object[]) => object[])
> combine x y

두 배열을 합합니다.

# Append

Func("append", (ToastContext, object[], object) => object[])
> append x y

배열 x에 y를 추가합니다.

# Remove

Func("remove", (ToastContext, object[], object) => object[])
> remove x y

배열 x에서 y를 제거합니다.

# Sort

Func("sort", (ToastContext, object[]) => object[])
> sort x

배열을 정렬합니다.

# SortAs

Func("sortAs", (ToastContext, object[], FunctionNode) => object[])
> sortAs x y

배열을 x의 각 요소를 파라미터로 하는 함수 y의 실행결과를 기준으로 정렬합니다.

# Shuffle

Func("shuffle", (ToastContext, object[]) => object[])
> shuffle x

배열을 랜덤으로 섞습니다.

# Range

Func("range", (ToastContext, int, int) => object[])
> range x y

x부터 y개의 수를 배열로 만들어 리턴합니다.

# Strings

static ToastCommand[] Strings

문자열 관련 커맨드를 모아둔 배열입니다.

# Split

Func("split", (ToastContext, string, string) => object[])
> split x y

문자열 x를 y를 기준으로 분리합니다.

# Reverse

Func("reverse", (ToastContext, string) => string)
> reverse x

문자열 x를 뒤집습니다.

# StartsWith

Func("startsWith", (ToastContext, string, string) => bool)
> startsWith x y

문자열 x가 y로 시작하는지 확인합니다.

# EndsWith

Func("endsWith", (ToastContext, string, string) => bool)
> endsWith x y

문자열 x가 y로 끝나는지 확인합니다.

# Contains

Func("contains", (ToastContext, string, string) => bool)
> contains x y

문자열 x에 y가 포함되는지 확인합니다.

# Trim

Func("trim", (ToastContext, string) => string)
> trim x

문자열 양쪽 끝의 공백을 제거합니다.

# Substring

Func("substring", (ToastContext, string, int, int) => string)
> substring x y z

문자열 x의 y번째 문자부터 z개의 문자를 리턴합니다.

# Join

Func("join", (string, ToastContext, object) => string)
> x join y

두 문자열을 결합합니다. 만약 y가 배열이라면 x를 분리자로 사용해 y의 요소를 결합합니다.

# Replace

Func("replace", (ToastContext, string, string, string) => string)
> replace x y z

문자열 x의 부분 문자열 y를 모두 z로 대체합니다.

# ToUpper

Func("toUpper", (ToastContext, object) => string)
> toUpper x

문자열을 모두 대문자로 만듭니다.

# ToLower

Func("toLower", (ToastContext, object) => string)
> toLower x

문자열을 모두 소문자로 만듭니다.