syntax - pannous/angle GitHub Wiki

Wasp syntax is identical for data and code, which is executable data.

It is a general tree format which can express anything:

html

form{                                 
  //comment                          
  div{ class:"form-group"             
    label{ for:email                  
      "Email address:"                
    }
    input{ type:email id:email}     
  }
  button{ class:['btn' 'btn-info']  
    'Submit'                        
  }
}

angle ast

Hello World in Angle is
"Hello World"

The deep formal reason why this is a valid program is that the last object in a block is its return value and the last result in the root block of the main file is printed.

Fibonacci in Angle is

fibonacci number = if number<2 : 1 else fibonacci(number - 1) + fibonacci it - 2

Note how number simulataneously acts as type and variable name. This invention is called matching by type name. Note how the unique argument number can be accessed via it keyword and brackets are optional

Auto typed fibonacci in Angle is

fib := if it<2 : 1 else fib(it-1) + fib it - 2

A typical class record with optional fields can be expressed like this

class contact {
 name 
 email?
 phone?
 address {
  street
  city
  zip?
 }
}