LL(n)

Program

/*
 * A program can be 
 * either <= { Dependency -> Space }
 * or <= Block
 */
 
 Program :=
    | {
        (Dependency ">>")? 
        
        Space
    }
    
    | Block

Dependency

/*
 * Dependencies can be defined as a list of dependency items,
 *     with the delimiter ","
 *   
 * @("abc", "xyz", ...)
 */
 
 Dependency := "@" "(" DependencyItem ["," DependencyItem]* ")"

Dependency Item

Space

Block

Statement

Expression

Variable Definition

Free Variable (Undefined)

Variable (Assignment)

Last updated