5.16.4. Statement

Start data section to src/flx_parse.mly[4 /33 ] Next Prev First Last
   451: statement:
   452:   | binding_definition { $1 }
   453:   | declarative { $1 }
   454:   | executable { $1 }
   455:   | inclusion { $1 }
   456:   | directive { $1 }
   457:   | publish { $1}
   458:   | comment { $1 }
   459:   | null_statement { $1 }
   460:   | user_statement { $1 }
   461: 
   462: comment:
   463:   | COMMENT_KEYWORD STRING SEMI { `AST_nop (rstoken $1 $3, snd $2) }
   464: 
   465: binding_definition:
   466:   | abstract_type { $1 }
   467:   | const_def { $1 }
   468:   | binding_header { $1 }
   469:   | export_statement { $1 }
   470: 
   471: publish:
   472:   /*
   473:   | PUBLISH STRING binding_definition
   474:     { `AST_public (slift $1, snd $2, $3) }
   475: 
   476:   | PUBLISH STRING declarative
   477:     { `AST_public (slift $1, snd $2, $3) }
   478:   */
   479: 
   480:   | PRIVATE declarative
   481:     { `AST_private (slift $1, $2) }
   482: 
   483:   | PRIVATE binding_definition
   484:     { `AST_private (slift $1, $2) }
   485: 
   486: declarative:
   487:   | function_definition { $1 }
   488:   | object_definition { $1 }
   489:   | procedure_definition { $1 }
   490:   | module_definition { $1 }
   491:   | union_decl { $1 }
   492:   | struct_decl { $1 }
   493:   | type_alias { $1 }
   494: 
   495: directive:
   496:   | open_decl { $1 }
   497:   | use_decl { $1 }
   498:   | regdef { $1 }
   499:   | glr_production { $1 }
   500:   | macro_definition { $1 }
   501: 
   502: executable:
   503:   | var_def { $1 }
   504:   | val_def { $1 }
   505:   | call { $1 }
   506:   | svc { $1 }
   507:   | return { $1 }
   508:   | ifgoto_stmt { $1 }
   509: /*  | whilst_stmt { $1 } */
   510:   | todo { $1 }
   511:   | assignment { $1 }
   512:   | inline_cpp { $1 }
   513:   | goto_statement { $1 }
   514:   | label_statement { $1 }
   515:   | assert_statement { $1 }
   516: 
   517: null_statement:
   518:   | SEMI                    { `AST_nop (rstoken $1 $1,"") }
   519: 
   520: user_statement:
   521:   | USER_STATEMENT_DRIVER
   522:     {
   523:       let srt, kw, f = $1 in
   524:       let sr = slift srt in
   525:       (*
   526:       print_endline ("USER STATEMENT KEYWORD " ^ kw);
   527:       *)
   528:       f ()
   529:     }
   530: 
   531: inclusion:
   532:   | INCLUDE STRING SEMI
   533:     {
   534:       let sr = rstoken $1 $3 in
   535:       `AST_include (sr, snd $2)
   536:     }
   537: 
End data section to src/flx_parse.mly[4]