Telecomms Refactor & CodeMirror

This commit does the following:
 - A lot of shit I am really too tired to fucking write about
 - Absolute pathed telecomms scripting
 - Browser Datum traffic control
  - Absolutely lovely replacement for the fucking skin TCS window, using
    codemirror
 - CodeMirror integration for nanoUI
  - Sorta, I didn't work on this as much as I wanted to, because IT TOOK
    11 FUCKING HOURS TO GET THE BROWSER DATUM TO WORK
This commit is contained in:
Tigercat2000
2015-10-28 17:19:18 -07:00
parent f76109ca5c
commit c244a0fe15
38 changed files with 13973 additions and 2155 deletions

View File

@@ -7,8 +7,8 @@
Class: binary
Represents a binary operator in the AST. A binary operator takes two operands (ie x and y) and returns a value.
*/
/node/expression/operator/binary
var/node/expression/exp2
/datum/node/expression/operator/binary
var/datum/node/expression/exp2
////////// Comparison Operators //////////
/*
@@ -16,159 +16,176 @@
Returns true if x = y.
*/
//
Equal
precedence=OOP_EQUAL
/datum/node/expression/operator/binary/Equal
token = "=="
precedence = OOP_EQUAL
/*
Class: NotEqual
Returns true if x and y aren't equal.
Class: NotEqual
Returns true if x and y aren't equal.
*/
//
NotEqual
precedence=OOP_EQUAL
/datum/node/expression/operator/binary/NotEqual
token = "!="
precedence = OOP_EQUAL
/*
Class: Greater
Returns true if x > y.
Class: Greater
Returns true if x > y.
*/
//
Greater
precedence=OOP_COMPARE
/datum/node/expression/operator/binary/Greater
token = ">"
precedence = OOP_COMPARE
/*
Class: Less
Returns true if x < y.
Class: Less
Returns true if x < y.
*/
//
Less
precedence=OOP_COMPARE
/datum/node/expression/operator/binary/Less
token = "<"
precedence = OOP_COMPARE
/*
Class: GreaterOrEqual
Returns true if x >= y.
Class: GreaterOrEqual
Returns true if x >= y.
*/
//
GreaterOrEqual
precedence=OOP_COMPARE
/datum/node/expression/operator/binary/GreaterOrEqual
token = ">="
precedence = OOP_COMPARE
/*
Class: LessOrEqual
Returns true if x <= y.
Class: LessOrEqual
Returns true if x <= y.
*/
//
LessOrEqual
precedence=OOP_COMPARE
/datum/node/expression/operator/binary/LessOrEqual
token = "<="
precedence = OOP_COMPARE
////////// Logical Operators //////////
/*
Class: LogicalAnd
Returns true if x and y are true.
Class: LogicalAnd
Returns true if x and y are true.
*/
//
LogicalAnd
precedence=OOP_AND
/datum/node/expression/operator/binary/LogicalAnd
token = "&&"
precedence = OOP_AND
/*
Class: LogicalOr
Returns true if x, y, or both are true.
Class: LogicalOr
Returns true if x, y, or both are true.
*/
//
LogicalOr
precedence=OOP_OR
/datum/node/expression/operator/binary/LogicalOr
token = "||"
precedence = OOP_OR
/*
Class: LogicalXor
Returns true if either x or y but not both are true.
Class: LogicalXor
Returns true if either x or y but not both are true.
*/
//
LogicalXor //Not implemented in nS
precedence=OOP_OR
/datum/node/expression/operator/binary/LogicalXor //Not implemented in nS
precedence = OOP_OR
////////// Bitwise Operators //////////
/*
Class: BitwiseAnd
Performs a bitwise and operation.
Class: BitwiseAnd
Performs a bitwise and operation.
Example:
011 & 110 = 010
Example:
011 & 110 = 010
*/
//
BitwiseAnd
precedence=OOP_BIT
/datum/node/expression/operator/binary/BitwiseAnd
token = "&"
precedence = OOP_BIT
/*
Class: BitwiseOr
Performs a bitwise or operation.
Class: BitwiseOr
Performs a bitwise or operation.
Example:
011 | 110 = 111
Example:
011 | 110 = 111
*/
//
BitwiseOr
precedence=OOP_BIT
/datum/node/expression/operator/binary/BitwiseOr
token = "|"
precedence = OOP_BIT
/*
Class: BitwiseXor
Performs a bitwise exclusive or operation.
Class: BitwiseXor
Performs a bitwise exclusive or operation.
Example:
011 xor 110 = 101
Example:
011 xor 110 = 101
*/
//
BitwiseXor
precedence=OOP_BIT
/datum/node/expression/operator/binary/BitwiseXor
token = "`"
precedence = OOP_BIT
////////// Arithmetic Operators //////////
/*
Class: Add
Returns the sum of x and y.
Class: Add
Returns the sum of x and y.
*/
//
Add
precedence=OOP_ADD
/datum/node/expression/operator/binary/Add
token = "+"
precedence = OOP_ADD
/*
Class: Subtract
Returns the difference of x and y.
Class: Subtract
Returns the difference of x and y.
*/
//
Subtract
precedence=OOP_ADD
/datum/node/expression/operator/binary/Subtract
token = "-"
precedence = OOP_ADD
/*
Class: Multiply
Returns the product of x and y.
Class: Multiply
Returns the product of x and y.
*/
//
Multiply
precedence=OOP_MULTIPLY
/datum/node/expression/operator/binary/Multiply
token = "*"
precedence = OOP_MULTIPLY
/*
Class: Divide
Returns the quotient of x and y.
Class: Divide
Returns the quotient of x and y.
*/
//
Divide
precedence=OOP_MULTIPLY
/datum/node/expression/operator/binary/Divide
token = "/"
precedence = OOP_MULTIPLY
/*
Class: Power
Returns x raised to the power of y.
Class: Power
Returns x raised to the power of y.
*/
//
Power
precedence=OOP_POW
/datum/node/expression/operator/binary/Power
token = "^"
precedence = OOP_POW
/*
Class: Modulo
Returns the remainder of x / y.
Class: Modulo
Returns the remainder of x / y.
*/
//
Modulo
precedence=OOP_MULTIPLY
/datum/node/expression/operator/binary/Modulo
token = "%"
precedence = OOP_MULTIPLY