Note. This article is about the visual domain-specific language used by Vercengen; for information on tis associated IDE, please see Scriptly IDE.
Forse is the DSL used by Vercengen for visual scripting, and comes in both a nodes form (for ve.NodeEditor) and a blocks form (for ve.ScriptManagerBlockly). It is fully compatible with base Javascript and corresponds to it 1:1, meaning that blocks/nodes/spreadsheet logic is equivalent and is fully interlinked/translatable. In addition, it contains the ability to be integrated with Spreadsheet formulas and ve.DatavisSuite via state bindings.
Individual blocks and their categories are listed below. These are split into both Blockly and Node views.
Blocks:
Since arguments of this type are mainly visual, they will not be documented. Forse blocks are documented top/down. Blocks are listed multiple times where blocks logically do the same thing, but are duplicated due to different logic flows or contexts.
Logic (6):
- If/do
- Comparison statement (=, !=, <, <=, >, >=)
- Comparison statement (and, or)
- Not
- Boolean (true, false)
- Null
- Ternary Statement
Loops (15):
- For loop
- While loop
- For try/catch loop
- For Each loop
- Switch Case
- Case
- Continue
- Break
- For loop (iteration)
- For Each in Array loop
- For Each key in Object loop
- Break/Continue in loop
- Throw
- Yield
- Yield
Maths (18):
- Number
- Blank
- Decrement/Increment
- Decrement/Increment
- Maths Operation
- Math.
Operation - Acos/Asin/Atan/Cos/Sin/Tan
- Constants
- Number is in Set
- Change Number by n
- Round Number
- Indicator of List
- Modulo
- Clamp Number
- Random Integer
- Random Fraction
Text (12):
- String
- Create Text with Strings
- Concatenate Strings
- Length of String
- Is String Empty
- Find Match in String
- Get Character in String
- Get Substring in String
- To Lowercase/Uppercase
- Trim String
- Print String
- Prompt for String
Lists (10):
- Create List
- Index of List
- Create List with Items
- Length of List
- Is List Empty
- Find Match in List
- Get Element in String
- Set Element in String As
- Get Sub-List
- Split Text
Maps (9):
- Create Map
- Size of Map
- Is Map Empty
- Map Key As Value
- Set Property Value
- Get Property
- Get Value in Map
- Set Value in Map
- Get Keys of Map
Colour (4):
- Colour
- Random Colour
- Colour (RGB)
- Blend Colours
Variables (6):
- Set Variable
- Is Variable
- Compare Variables
- Compare Variables
- Field
- Is Field
Functions (8):
- Declare Function
- Declare Function
- Call Function
- Call Function
- IIFE
- IIFE
- Return
- Destructure
Class (6):
- New
- Class Extends
- Class Extends
- Static
- Get
- Set
Other (6):
- Try/Catch/Finally
- Catch
- Export
- Import From
- Expression As Expression
- Comment
Nodes:
Custom Nodes (6):
- Config: Node Category, Node Name, Node Output Type, Comment
- Parameters: Input (Parameter), Output (Return)
Default Nodes (81):
- Booleans: Is Equal, Is Strictly Equal, Is Not Equal, Is Not Strictly Equal, Greater or Equal Than, Greater Than, Less Than or Equal, To Less Than, If Then, False, True, Null, Undefined, AND, NOT, OR, XOR
- Functions: Call Function, Call Function (Preview), Call Method, Call Method (Preview), Get Class Field, Set Class Field, (Log) ERROR, (Log) INFO, (Log) WARN, Run Script
- Loops: For Loop, Get Obj.Iter. Key, Get Obj.Iter. Value, Iterate over Object, Set Timeout
- Variables: Set Any, Set String Array, Set Number Array, Set Boolean, Set Number, Set String, Set Array, Set Null, Set Object, Get Any, Get String Array, Get Number Array, Get Boolean, Get Number, Get String, Get Array, Get Null, Get Object, Get Global
- Variables (Casting): Convert to Any, Convert to Array, Convert to String Array, Convert to Number Array, Convert to Boolean, Convert to Number, Convert to Script, Convert to String
- Variables (Expressions): Array Concat, Array Indexof, Array Length, Array Pop, Array Push, Array Reverse, Array Shift, Array Splice, Array Unshift, Join Array, Split String, Merge Objects, Get Object Keys, Get Object Values, Add Numbers, Exponentiate Numbers, Modulo, Multiply Numbers, Divide Numbers, Subtract Numbers, Add Strings, Ends With, Matches, Replace, Replace All, String Length, Starts With
Spreadsheet:
Formulas (504):
- ACCRINT
- ACCRINTM
- AMORLINC
- COUPDAYBS
- COUPDAYS
- COUPDAYSNC
- COUPNCD
- COUPNUM
- COUPPCD
- CUMIPMT
- CUMPRINC
- DB
- DDB
- DISC
- DOLLARDE
- DOLLARFR
- DURATION
- EFFECT
- FV
- FVSCHEDULE
- INTRATE
- IPMT
- IRR
- ISPMT
- MDURATION
- MIRR
- NOMINAL
- NPER
- NPV
- ODDFPRICE
- ODDFYIELD
- ODDLPRICE
- ODDLYIELD
- PDURATION
- PMT
- PPMT
- PRICE
- PRICEDISC
- PRICEMAT
- PV
- RATE
- RECEIVED
- RRI
- SLN
- SYD
- TBILLEQ
- TBILLPRICE
- TBILLYIELD
- VDB
- XIRR
- XNPV
- YIELD
- YIELDDISC
- YIELDMAT
- DATE
- DATEDIF
- DATEVALUE
- DAY
- DAYS
- DAYS360
- EDATE
- EOMONTH
- EPOCHTODATE
- HOUR
- ISOWEEKNUM
- MINUTE
- MONTH
- NETWORKDAYS
- NETWORKDAYS.INTL
- NOW
- SECOND
- TIME
- TIMEVALUE
- TO_DATE
- TODAY
- WEEKDAY
- WEEKNUM
- WORKDAY
- WORKDAY.INTL
- YEAR
- YEARFRAC
- ABS
- ACOS
- ACOSH
- ACOT
- ACOTH
- AGGREGATE
- ARABIC
- ASIN
- ASINH
- ATAN
- ATAN2
- ATANH
- BASE
- CEILING
- CEILING.MATH
- CEILING.PRECISE
- COMBIN
- COMBINA
- COS
- COSH
- COT
- COTH
- CSC
- CSCH
- DECIMAL
- DEGREES
- EVEN
- EXP
- FACT
- FACTDOUBLE
- FLOOR
- FLOOR.MATH
- FLOOR.PRECISE
- GCD
- INT
- LCM
- LET
- LN
- LOG
- LOG10
- MDETERM
- MINVERSE
- MMULT
- MOD
- MROUND
- MULTINOMIAL
- MUNIT
- ODD
- PI
- POWER
- PRODUCT
- QUOTIENT
- RADIANS
- RAND
- RANDARRAY
- RANDBETWEEN
- ROMAN
- ROUND
- ROUNDBANK
- ROUNDDOWN
- ROUNDUP
- SEC
- SECH
- SERIESSUM
- SEQUENCE
- SIGN
- SIN
- SINH
- SQRT
- SQRTPI
- SUBTOTAL
- SUM
- SUMIF
- SUMIFS
- SUMPRODUCT
- SUMSQ
- SUMX2MY2
- SUMX2PY2
- SUMXMY2
- TAN
- TANH
- TRUNC
- AVEDEV
- AVERAGE
- AVERAGE.WEIGHTED
- AVERAGEA
- AVERAGEIF
- AVERAGEIFS
- BETA.DIST
- BETA.INV
- BINOM.DIST
- BINOM.DIST.RANGE
- BINOM.INV
- CHISQ.DIST
- CHISQ.DIST.RT
- CHISQ.INV
- CHISQ.INV.RT
- CHISQ.TEST
- CONFIDENCE.NORM
- CONFIDENCE.T
- CORREL
- COUNT
- COUNTA
- COUNTBLANK
- COUNTIF
- COUNTIFS
- COVARIANCE.P
- COVARIANCE.S
- DEVSQ
- EXPON.DIST
- F.DIST
- F.DIST.RT
- F.INV
- F.INV.RT
- F.TEST
- FISHER
- FISHERINV
- FORECAST
- FORECAST.LINEAR
- FREQUENCY
- GAMMA
- GAMMA.DIST
- GAMMA.INV
- GAMMALN
- GAMMALN.PRECISE
- GAUSS
- GEOMEAN
- GROWTH
- HARMEAN
- HYPGEOM.DIST
- INTERCEPT
- KURT
- LARGE
- LINEST
- LOGEST
- LOGNORM.DIST
- LOGNORM.INV
- MARGINOFERROR
- MAX
- MAXA
- MAXIFS
- MEDIAN
- MIN
- MINA
- MINIFS
- MODE.MULT
- MODE.SNGL
- NEGBINOM.DIST
- NORM.DIST
- NORM.INV
- NORM.S.DIST
- NORM.S.INV
- PEARSON
- PERCENTILE.EXC
- PERCENTILE.INC
- PERCENTRANK.EXC
- PERCENTRANK.INC
- PERMUT
- PERMUTATIONA
- PHI
- POISSON.DIST
- PROB
- QUARTILE.EXC
- QUARTILE.INC
- RANK.AVG
- RANK.EQ
- RSQ
- SKEW
- SKEW.P
- SLOPE
- SMALL
- STANDARDIZE
- STDEV.P
- STDEV.S
- STDEVA
- STDEVPA
- STEYX
- T.DIST
- T.DIST.2T
- T.DIST.RT
- T.INV
- T.INV.2T
- T.TEST
- TREND
- TRIMMEAN
- VAR.P
- VAR.S
- VARA
- VARPA
- WEIBULL.DIST
- Z.TEST
- ADDRESS
- AREAS
- CHOOSE
- CHOOSECOLS
- CHOOSEROWS
- COLUMN
- COLUMNS
- DROP
- EXPAND
- FILTER
- FORMULATEXT
- HLOOKUP
- HSTACK
- HYPERLINK
- IMAGE
- INDEX
- INDIRECT
- LOOKUP
- MATCH
- OFFSET
- ROW
- ROWS
- SORT
- SORTBY
- TAKE
- TOCOL
- TOROW
- TRANSPOSE
- UNIQUE
- VLOOKUP
- VSTACK
- WRAPCOLS
- WRAPROWS
- XLOOKUP
- XMATCH
- DAVERAGE
- DCOUNT
- DCOUNTA
- DGET
- DMAX
- DMIN
- DPRODUCT
- DSTDEV
- DSTDEVP
- DSUM
- DVAR
- DVARP
- ASC
- ARRAYTOTEXT
- BAHTTEXT
- CHAR
- CLEAN
- CODE
- CONCAT
- CONCATENATE
- DBCS
- DOLLAR
- EXACT
- FIND
- FINDB
- FIXED
- LEFT
- LEFTB
- LEN
- LENB
- LOWER
- MID
- MIDB
- NUMBERSTRING
- NUMBERVALUE
- PROPER
- REGEXEXTRACT
- REGEXMATCH
- REGEXREPLACE
- REPLACE
- REPLACEB
- REPT
- RIGHT
- RIGHTB
- SEARCH
- SEARCHB
- SUBSTITUTE
- T
- TEXT
- TEXTAFTER
- TEXTBEFORE
- TEXTJOIN
- TEXTSPLIT
- TRIM
- UNICHAR
- UNICODE
- UPPER
- VALUE
- VALUETOTEXT
- AND
- BYCOL
- BYROW
- FALSE
- IF
- IFERROR
- IFNA
- IFS
- LAMBDA
- MAKEARRAY
- MAP
- NOT
- OR
- REDUCE
- SCAN
- SWITCH
- TRUE
- XOR
- CELL
- ERROR.TYPE
- ISBETWEEN
- ISBLANK
- ISDATE
- ISEMAIL
- ISERR
- ISERROR
- ISEVEN
- ISFORMULA
- ISLOGICAL
- ISNA
- ISNONTEXT
- ISNUMBER
- ISODD
- ISREF
- ISTEXT
- ISURL
- N
- NA
- SHEET
- SHEETS
- TYPE
- BESSELI
- BESSELJ
- BESSELK
- BESSELY
- BIN2DEC
- BIN2HEX
- BIN2OCT
- BITAND
- BITLSHIFT
- BITOR
- BITRSHIFT
- BITXOR
- COMPLEX
- CONVERT
- DEC2BIN
- DEC2HEX
- DEC2OCT
- DELTA
- ERF
- ERF.PRECISE
- ERFC
- ERFC.PRECISE
- GESTEP
- HEX2BIN
- HEX2DEC
- HEX2OCT
- IMABS
- IMAGINARY
- IMARGUMENT
- IMCONJUGATE
- IMCOS
- IMCOSH
- IMCOT
- IMCOTH
- IMCSC
- IMCSCH
- IMDIV
- IMEXP
- IMLN
- IMLOG
- IMLOG10
- IMLOG2
- IMPOWER
- IMPRODUCT
- IMREAL
- IMSEC
- IMSECH
- IMSIN
- IMSINH
- IMSQRT
- IMSUB
- IMSUM
- IMTAN
- IMTANH
- OCT2BIN
- OCT2DEC
- OCT2HEX
- BETADIST
- BETAINV
- BINOMDIST
- CHIDIST
- CHIINV
- CHITEST
- CONFIDENCE
- COVAR
- CRITBINOM
- EXPONDIST
- FDIST
- FINV
- FTEST
- GAMMADIST
- GAMMAINV
- HYPGEOMDIST
- LOGINV
- LOGNORMDIST
- MODE
- NEGBINOMDIST
- NORMDIST
- NORMINV
- NORMSDIST
- NORMSINV
- PERCENTILE
- PERCENTRANK
- POISSON
- QUARTILE
- RANK
- STDEV
- STDEVP
- TDIST
- TINV
- TTEST
- VAR
- VARP
- WEIBULL
- ZTEST
- ENCODEURL
- ARRAY_CONSTRAIN
- FLATTEN