Logic - LightningLaser8/ISL GitHub Wiki

Relative Positioning

ISL line numbers can either be a plain number, such as in jump 5, which will go to line 5, or they can be relative.
Relative line numbers are refixed with ~, and count a number of lines on top of the current line number.
Example:

number input
webprompt input "Input a number"
if input < 10 jump ~3
log "Number greater than 10"
jump ~2
log "Number less than 10"
flush

This code will take in a number, check its value against 10, and output if it is bigger or smaller than 10.
Here, ~2 in jump and ~3 in if...jump are used to create an if... else statement with relative positioning.

Interpretation Precedence

Different parts of an ISL statement are processed at different times. This list shows the order of interpretation of ISL constructs:

  1. Illegal character removal
  2. String Literal protection " "
  3. Getters \...\
  4. Label removal >label< keyword parameter
  5. Keywords label >keyword< parameter
  6. String Literal values
  7. Parameters and types label keyword >parameter<
  8. Label effects
  9. The actual operation
  10. Errors
  11. Changes to execution (stopping, rundelay etc)