LL(1) for nasal number -> NUMBER id -> IDENTIFIER string -> STRING scalar -> number scalar -> id scalar -> identifier scalar -> calculation scalars -> scalar scalar_end scalar_end -> , scalar scalar_end scalar_end -> $ lacked_identifier -> id = scalar lacked_identifier -> id = string lacked_identifier -> id = function identifier -> id [ scalar ] identifier -> id . identifier identifier -> id [ scalar : scalar ] identifier -> id [ scalar : ] identifier -> id ( ) identifier -> id ( scalar ) identifier -> id ( scalars ) identifiers -> identifier identifier_end identifier_end -> , identifier identifier_end identifier_end -> $ definition -> var id = scalar ; definition -> var id = string ; definition -> var id = function ; pre_assignment -> id =|+=|-=|*=|\=|~= scalar pre_assignment -> id =|+=|-=|*=|\=|~= string pre_assignment -> identifier =|+=|-=|*=|\=|~= scalar pre_assignment -> identifier =|+=|-=|*=|\=|~= string assignment -> pre_assignment ; parameter -> identifier parameter -> lacked_identifier parameters -> parameter parameter_end parameter_end -> ,identifier parameter_end parameter_end -> ,lacked_identifier parameter_end parameter_end -> $ function -> func { } function -> func { statement } function -> func { statements } function -> func ( ) { } function -> func ( ) { statement } function -> func ( ) { statements } function -> func ( parameter ) { } function -> func ( parameter ) { statement } function -> func ( parameter ) { statements } function -> func ( parameters ) { } function -> func ( parameters ) { statement } function -> func ( parameters ) { statements } calculation -> scalar + scalar calculation -> scalar - scalar calculation -> scalar * scalar calculation -> scalar \ scalar calculation -> scalar ~ scalar calculation -> scalar == scalar calculation -> scalar != scalar calculation -> scalar > scalar calculation -> scalar >= scalar calculation -> scalar < scalar calculation -> scalar <= scalar calculation -> scalar and scalar calculation -> scalar or scalar calculation -> ! scalar calculation -> scalar ? scalar : scalar calculation -> (calculation) calculation -> (scalar) loop -> for ( definition calculation ; pre_assignment) { } loop -> for ( definition calculation ; pre_assignment) statement loop -> for ( definition calculation ; pre_assignment) { statement } loop -> for ( definition calculation ; pre_assignment) { statements } loop -> forindex ( id ; id|identifier) { } loop -> forindex ( id ; id|identifier) statement loop -> forindex ( id ; id|identifier) { statement } loop -> forindex ( id ; id|identifier) { statements } loop -> foreach ( id ; id|identifier) { } loop -> foreach ( id ; id|identifier) statement loop -> foreach ( id ; id|identifier) { statement } loop -> foreach ( id ; id|identifier) { statements } loop -> while ( scalar ) { } loop -> while ( scalar ) statement loop -> while ( scalar ) { statement } loop -> while ( scalar ) { statements } if_choose -> if ( scalar ) { } if_choose -> if ( scalar ) statement if_choose -> if ( scalar ) { statement } if_choose -> if ( scalar ) { statements } else_if_choose -> else if { } else_if_choose -> else if statement else_if_choose -> else if { statement } else_if_choose -> else if { statements } else_if_choose -> elsif { } else_if_choose -> elsif statement else_if_choose -> elsif { statement } else_if_choose -> elsif { statements } else_choose -> else { } else_choose -> else statement else_choose -> else { statement } else_choose -> else { statements } mul_else_if -> else_if_choose mul_else_if mul_else_if -> $ choose -> if_choose choose -> if_choose mul_else_if choose -> if_choose else_choose choose -> if_choose mul_else_if else_choose