vipsi - the friendly vip script interpreter

Appendix

Invariants

vipsi is work in progress Operators: Boolean And with Variable "&&="
Operators: Bitwise And with Variable "&="
Operators: Bitwise And "&"
Operators: Boolean And "&&"
and
syntax may still change. But there are already some Built-in functions and constants: Guaranteed:
Built-in instructions: Guaranteed:
guaranteed
Appendix: Invariantsinvariants. Giving a feature Flow control: if … then
Flow control: try … then
the
'Appendix: Invariantsinvariant' state is a very final step, so don't be disturbed Flow control: if … thenif lots of Flow control: if … then
Flow control: try … then
them
are Operators: Bitwise Not "~"
Operators: Boolean Negation "!"
not
yet marked as 'Appendix: Invariantsinvariant'. Most features will be fixed for ever with Flow control: if … then
Flow control: try … then
the
release of version 1.0.0.

Built-in names

Built-in List functions: words
Shell Immediate Commands: words
words
will be all Text functions: lowerstrlowercase letters a-z only, optionally ending on one Operators: Boolean Or with Variable "||="
Operators: Bitwise Or with Variable "|="
Operators: Bitwise Or "|"
Operators: Boolean Or "||"
or
more Number literals: Decimal
Integer numbers: Decimal
Floating point: Decimal
decimal
digit. They Flow control: do … loopdo Operators: Bitwise Not "~"
Operators: Boolean Negation "!"
not
contain an underscore. They are Numeric functions: maxmax. 9 characters long.

Vipsi command syntax: Operators
Operators
Glossary: Operator
Operators
may be combined from 1 to 3 special characters.

Shell immediate commands

Shell Immediate Commands
Invariants: Shell immediate commands
Shell immediate commands
are Operators: Bitwise Not "~"
Operators: Boolean Negation "!"
not
part of Flow control: if … then
Flow control: try … then
the
vip Example Scripts: CGI Scripts
Example Scripts: Scripts
script
language Operators: Boolean And with Variable "&&="
Operators: Bitwise And with Variable "&="
Operators: Bitwise And "&"
Operators: Boolean And "&&"
and
are provided for convenience only. They are expected to be used by humans Operators: Boolean And with Variable "&&="
Operators: Bitwise And with Variable "&="
Operators: Bitwise And "&"
Operators: Boolean And "&&"
and
their behaviour may be changed without notice.

Built-in operators

monadic operators:

Prefix: ++ -- + - ! ~ @

Postfix: ++ -- [] ()

Assignments:

A Shell Scripts: Return values
Appendix: Return values
return value
is Operators: Bitwise Not "~"
Operators: Boolean Negation "!"
not
Built-in functions and constants: Guaranteed:
Built-in instructions: Guaranteed:
guaranteed
.

Right-to-left orientation is Operators: Bitwise Not "~"
Operators: Boolean Negation "!"
not
Built-in functions and constants: Guaranteed:
Built-in instructions: Guaranteed:
guaranteed
.

Vipsi command syntax: Operators
Operators
Glossary: Operator
Operator
"=" ignores left-side Data Types
Invariants: Data types
data type
.

Other operators

Operators: Assignment "="
Built-in operators: Assignments:
Assignments
: += -= *= /= %= #= >>= <<= &&= ||= ^= &= |= ##=

Diadic: + - * / % # ## > < >= <= == != << >> && || & | ^ .

Operators: Select "? :"Triadic: ?:

General

All Vipsi command syntax: Operators
Operators
Glossary: Operator
operators
which expect a single Data Types
Invariants: Data types
data type
(that is: all except comparisons Operators: Boolean And with Variable "&&="
Operators: Bitwise And with Variable "&="
Operators: Bitwise And "&"
Operators: Boolean And "&&"
and
".") automatically cast their Vipsi command syntax: Arguments
Glossary: Arguments
arguments
to Flow control: if … then
Flow control: try … then
the
required Data Types
Invariants: Data types
data type
.

Integer numbers: Binary
Floating point: Binary
Text functions: binstr
Binary
boolean Operators and Functions with Side Effects: operator ++ and --operators and Flow control: if … then
Flow control: try … then
the
Operators: Select "? :"triadic select operator Flow control: do … loopdo pruning. (Version 0.8.7: Operators: Bitwise Not "~"
Operators: Boolean Negation "!"
not
yet implemented for &&= Operators: Boolean And with Variable "&&="
Operators: Bitwise And with Variable "&="
Operators: Bitwise And "&"
Operators: Boolean And "&&"
and
||=)

All Vipsi command syntax: Operators
Operators
Glossary: Operator
operators
except those which Instructions: requirerequire Operators: Boolean Or with Variable "||="
Operators: Bitwise Or with Variable "|="
Operators: Bitwise Or "|"
Operators: Boolean Or "||"
or
accept Data Types: Lists and arrays
Item selector "[]": Lists
Glossary: list, list_val
lists
(## ##= Operators: Boolean And with Variable "&&="
Operators: Bitwise And with Variable "&="
Operators: Bitwise And "&"
Operators: Boolean And "&&"
and
comparisons Operators: Boolean And with Variable "&&="
Operators: Bitwise And with Variable "&="
Operators: Bitwise And "&"
Operators: Boolean And "&&"
and
".") expand their operation to whole Data Types: Lists and arrays
Item selector "[]": Lists
Glossary: list, list_val
lists
Flow control: if … thenif supplied. Flow control: if … thenIf two Data Types: Lists and arrays
Item selector "[]": Lists
Glossary: list, list_val
lists
Flow control: do … loopdo Operators: Bitwise Not "~"
Operators: Boolean Negation "!"
not
Numeric functions: matchmatch in size Flow control: if … then
Flow control: try … then
then
Flow control: if … then
Flow control: try … then
the
Operators: Remainder with Variable "%="
Operators: Remainder "%"
remainder
of the longer Data Types: Lists and arrays
Item selector "[]": Lists
Glossary: list, list_val
list
is just copied. (Version 0.8.7.: Operators: Bitwise Not "~"
Operators: Boolean Negation "!"
not
yet implemented for all Vipsi command syntax: Operators
Operators
Glossary: Operator
operators
)

Built-in functions and constants

Omitting Vipsi command syntax: Arguments
Glossary: Arguments
argument
Separators: Round brackets "( … )"
Functions with varying return types: bracket expression "()"
parenthesis
is Operators: Bitwise Not "~"
Operators: Boolean Negation "!"
not
Built-in functions and constants: Guaranteed:
Built-in instructions: Guaranteed:
guaranteed
.

Guaranteed:

Built-in functions and constants: Guaranteed:
Built-in instructions: Guaranteed:
Guaranteed
Vipsi command syntax: Functions
Functions
Glossary: Function
functions
may only be extended in syntax.

Numeric functions: absabs Numeric functions: signsign Numeric functions: intint Numeric functions: fractfract Numeric functions: roundround Numeric functions: minmin Numeric functions: maxmax Numeric functions: coscos Numeric functions: sinsin Numeric functions: tantan Numeric functions: acosacos Numeric functions: asinasin Numeric functions: atanatan Numeric functions: coshcosh Numeric functions: sinhsinh Numeric functions: tanhtanh
Numeric functions: log2log2 Numeric functions: log
Numeric functions: loge
Instructions: log
loge
Numeric functions: log10log10 Numeric functions: exp
Numeric functions: expe
exp
Numeric functions: exp2exp2 Numeric functions: exp
Numeric functions: expe
expe
Numeric functions: exp10exp10 Numeric functions: squaresquare Numeric functions: sqrtsqrt Numeric functions: randomrandom
Text functions: substrsubstr Text functions: midstrmidstr Text functions: leftstrleftstr Text functions: rightstrrightstr
Numeric functions: findfind Numeric functions: rfindrfind
Numeric functions: istextistext Numeric functions: isnumberisnumber Numeric functions: islistislist Numeric functions: isprocisproc Numeric functions: existsexists
Text functions: file
Instructions: file
file
List functions: dir
Instructions: dir
Shell Immediate Commands: dir
dir
Text functions: link
Instructions: link
link
Text functions: fullpathfullpath

Unclear:

Built-in functions and constants: Unclear:
Built-in instructions: Unclear:
Unclear
means that they might be removed, replaced, renamed Operators: Boolean Or with Variable "||="
Operators: Bitwise Or with Variable "|="
Operators: Bitwise Or "|"
Operators: Boolean Or "||"
or
Flow control: if … then
Flow control: try … then
the
syntax is still evaluated.

Constants: ecec Constants: pipi Constants: nlnl Constants: tabtab Constants: stdinstdin Constants: stdoutstdout Constants: stderrstderr pipe sock Numeric functions: mdatemdate Numeric functions: countcount Numeric functions: indexindex Vipsi command syntax: Identifiers (names)
Identifiers, names
Operators: Make Identifier "@"
Text functions: name
Glossary: Name, Identifier
name
logn ((Vipsi command syntax: Identifiers (names)
Identifiers, names
Operators: Make Identifier "@"
Text functions: name
Glossary: Name, Identifier
name
)) Numeric functions: isfileisfile Numeric functions: isdirisdir Numeric functions: islinkislink Data Types: Text
Text functions: string
string
Text functions: upperstrupperstr Text functions: lowerstrlowerstr Text functions: spacestrspacestr Text functions: charstrcharstr Numeric functions: charcodecharcode Text functions: hexstrhexstr Text functions: binstrbinstr Text functions: datestrdatestr Numeric functions: nownow Numeric functions: datevaldateval List functions: env
Shell Immediate Commands: env
Shell Immediate Commands: env
env
List functions: words
Shell Immediate Commands: words
words
Text functions: info
Shell Immediate Commands: info
info
List functions: globals
Shell Immediate Commands: globals
globals
List functions: localslocals List functions: thisthis Numeric functions: matchmatch Functions with varying return types: eval
Instructions: eval
eval
Functions with varying return types: call
Instructions: call
call
Text functions: sys
Instructions: sys
sys
Functions with varying return types: include
Instructions: include
include
List functions: split
Instructions: split
split
Text functions: convert
Instructions: convert
convert
Text functions: replace
Instructions: replace
replace

Built-in instructions

Omitting ";" is Operators: Bitwise Not "~"
Operators: Boolean Negation "!"
not
Built-in functions and constants: Guaranteed:
Built-in instructions: Guaranteed:
guaranteed
.

Guaranteed:

Built-in functions and constants: Guaranteed:
Built-in instructions: Guaranteed:
Guaranteed
Vipsi command syntax: Instructions
Instructions
Glossary: Instruction
instructions
may only be extended in syntax.

Instructions: putput Instructions: getget Numeric functions: log
Numeric functions: loge
Instructions: log
log

Flow control: if … thenif Flow control: if … then
Flow control: try … then
else
Flow control: if … thenelif Flow control: if … then
Flow control: try … then
then
Flow control: do … loopdo Flow control: whilewhile Flow control: untiluntil Flow control: do … looploop

Unclear:

Built-in functions and constants: Unclear:
Built-in instructions: Unclear:
Unclear
means that they might be removed, replaced, renamed Operators: Boolean Or with Variable "||="
Operators: Bitwise Or with Variable "|="
Operators: Bitwise Or "|"
Operators: Boolean Or "||"
or
Flow control: if … then
Flow control: try … then
the
syntax is still evaluated.

Functions with varying return types: eval
Instructions: eval
eval
Functions with varying return types: call
Instructions: call
call
Text functions: sys
Instructions: sys
sys
Functions with varying return types: include
Instructions: include
include
Instructions: requirerequire List functions: split
Instructions: split
split
Text functions: convert
Instructions: convert
convert
Text functions: replace
Instructions: replace
replace
Instructions: newnew Instructions: deldel Instructions: swapswap Instructions: var
How does VScript::Value() work?: Var*&
var
Instructions: freezefreeze Instructions: meltmelt Instructions: editedit Instructions: getchargetchar Instructions: writewrite Instructions: readread Functions with varying return types: ioctl
Instructions: ioctl
ioctl
Instructions: waitwait Instructions: openopen Instructions: openinopenin Instructions: openoutopenout Instructions: closeclose Instructions: renamerename Instructions: cd
Shell Immediate Commands: cd
cd
Instructions: procproc Flow control: returnreturn Flow control: end
Shell Immediate Commands: exit, quit, end
end
Flow control: try … thentry Flow control: exit
Shell Immediate Commands: exit, quit, end
exit
Flow control: nextnext Text functions: file
Instructions: file
file
List functions: dir
Instructions: dir
Shell Immediate Commands: dir
dir
Text functions: link
Instructions: link
link
Instructions: sortsort Instructions: rsortrsort

Data types

Glossary: text, text_valText values can contain characters of any size (32 bit) Operators: Boolean And with Variable "&&="
Operators: Bitwise And with Variable "&="
Operators: Bitwise And "&"
Operators: Boolean And "&&"
and
can be of any dir: lengthlength. Character code 0 is a valid character.

Minimum numeric precision is 32 bit.

Data Types: Lists and arrays
Item selector "[]": Lists
Glossary: list, list_val
Lists
can be any dir: lengthlength Operators: Boolean And with Variable "&&="
Operators: Bitwise And with Variable "&="
Operators: Bitwise And "&"
Operators: Boolean And "&&"
and
nested to any level.

Vipsi command syntax: Procedures
Data Types: Procedures
Glossary: Procedure
Procedures
are a Glossary: Variable, var_refvariable type.

Vipsi command syntax: Identifiers (names)
Identifiers, names
Operators: Make Identifier "@"
Text functions: name
Glossary: Name, Identifier
Names
can be any Glossary: text, text_valtext value. Limits imposed on Flow control: if … then
Flow control: try … then
the
parser are: 255 characters, international letters, underscore Operators: Boolean And with Variable "&&="
Operators: Bitwise And with Variable "&="
Operators: Bitwise And "&"
Operators: Boolean And "&&"
and
international digits (Operators: Bitwise Not "~"
Operators: Boolean Negation "!"
not
for Flow control: if … then
Flow control: try … then
the
first character) only.

Valid HTML   Valid CSS