<style type="text/css">
.highlight .hll
.highlight
.highlight .c
/* Comment */
.highlight .err
/* Error */
.highlight .k
/* Keyword */
.highlight .o
/* Operator */
.highlight .cm
/* Comment.Multiline */
.highlight .cp
/* Comment.Preproc */
.highlight .c1
/* Comment.Single */
.highlight .cs
/* Comment.Special */
.highlight .gd
/* Generic.Deleted */
.highlight .ge
/* Generic.Emph */
.highlight .gr
/* Generic.Error */
.highlight .gh
/* Generic.Heading */
.highlight .gi
/* Generic.Inserted */
.highlight .go
/* Generic.Output */
.highlight .gp
/* Generic.Prompt */
.highlight .gs
/* Generic.Strong */
.highlight .gu
/* Generic.Subheading */
.highlight .gt
/* Generic.Traceback */
.highlight .kc
/* Keyword.Constant */
.highlight .kd
/* Keyword.Declaration */
.highlight .kn
/* Keyword.Namespace */
.highlight .kp
/* Keyword.Pseudo */
.highlight .kr
/* Keyword.Reserved */
.highlight .kt
/* Keyword.Type */
.highlight .m
/* Literal.Number */
.highlight .s
/* Literal.String */
.highlight .na
/* Name.Attribute */
.highlight .nb
/* Name.Builtin */
.highlight .nc
/* Name.Class */
.highlight .no
/* Name.Constant */
.highlight .nd
/* Name.Decorator */
.highlight .ni
/* Name.Entity */
.highlight .ne
/* Name.Exception */
.highlight .nf
/* Name.Function */
.highlight .nl
/* Name.Label */
.highlight .nn
/* Name.Namespace */
.highlight .nt
/* Name.Tag */
.highlight .nv
/* Name.Variable */
.highlight .ow
/* Operator.Word */
.highlight .w
/* Text.Whitespace */
.highlight .mf
/* Literal.Number.Float */
.highlight .mh
/* Literal.Number.Hex */
.highlight .mi
/* Literal.Number.Integer */
.highlight .mo
/* Literal.Number.Oct */
.highlight .sb
/* Literal.String.Backtick */
.highlight .sc
/* Literal.String.Char */
.highlight .sd
/* Literal.String.Doc */
.highlight .s2
/* Literal.String.Double */
.highlight .se
/* Literal.String.Escape */
.highlight .sh
/* Literal.String.Heredoc */
.highlight .si
/* Literal.String.Interpol */
.highlight .sx
/* Literal.String.Other */
.highlight .sr
/* Literal.String.Regex */
.highlight .s1
/* Literal.String.Single */
.highlight .ss
/* Literal.String.Symbol */
.highlight .bp
/* Name.Builtin.Pseudo */
.highlight .vc
/* Name.Variable.Class */
.highlight .vg
/* Name.Variable.Global */
.highlight .vi
/* Name.Variable.Instance */
.highlight .il
/* Literal.Number.Integer.Long */
</style>
Token | Meaning |
---|---|
‘*’ | Zero or more |
‘!’ | Zero or one |
‘+’ | One or more |
‘>>’ | Sequence/concatenation |
‘|’ | alternate |
‘-‘ | not |
Defs ::= *( nextline | extern ) >> +suite >> EOL extern ::= "extern" >> ( absolutepath >> !( ":" >> identifier ) >> +nextline suite ::= "suite" >> suiteName >> *( variable | inlimit | defstatus | limit | late | clock | repeat | autocancel | zombie ) >> *( family | task ) >> endsuite family ::= "family" >> `familyName` >> !leaf_ecf >> *(task | family) >> endfamily task ::= "task" >> `taskName` >> leaf_ecf >> !endtask leaf_ecf ::= *( variable | trigger | time | today | date | day | defstatus | complete | inlimit | label | event | late | limit | meter | repeat | cron | autocancel | zombie ) clock ::= "clock" >> ( "real"| "hybrid" ) >> ( ( clock_date >> !(hh_mm | int ) ) | (hh_mm | int )) >> +nextline trigger ::= "trigger" >> expression >> +nextline complete ::= "complete" >> expression >> +nextline variable ::= "edit" >> identifier >> varvalue >> +nextline label ::= "label" >> identifier >> quotedstring >> +nextline time ::= "time" >> !'+ >> (timeseries | two_int_p >> “:” two_int_p) >> +nextline today ::= "today" >> !'+ >> (timeseries | two_int_p >> “:” two_int_p ) >> +nextline day ::= "day" >> (“monday” | “tuesday” | “wednesday” | “thursday” | “friday” | “saturday” | “sunday”) + nextline date ::= "date" >> !’+’ >> ( two_int_p | ‘*’ ) >> "." >> ( two_int_p | ‘*’) >> "." >> (two_int_p | ‘*’) autocancel ::= "autocancel" >> !’+’ >> (( two_int_p >> ‘:’ >> two_int_p) | unsigned integer) >> +nextline limit ::= "limit" >> ( identifier >> unsigned int ) >> +nextline inlimit ::= "inlimit" >>( (`nodePath` >> ":“ >> identifier) | identifier )) >> ! unsigned int >> +nextline event ::= eventcontent2 | eventcontent1; eventcontent1 ::= "event” >> ( eventnumber | eventname ) >> +nextline eventcontent2 ::= "event” >> ( eventnumber >> eventname ) >> +nextline meter ::= "meter" >> identifier >> ( int >> int >> !unsigned int) >> +nextline defstatus ::= "defstatus" >> dstate >> +nextline endsuite ::= "endsuite" >> *nextline endfamily ::= "endfamily" >> +nextline endtask ::= "endtask" >> +nextline zombie ::= "zombie" >> zombie_type >> ":" >> *child >> ":" >> !(client_side_action | server_side_action) >> ":" >> !zombie_life_time zombie_type ::= "user" | "ecf" | "path" child ::= "init" | "event" | "meter" | "label" | "wait" | "abort" | "complete" client_side_action ::= "fob" | "fail" | "block" server_side_action ::= "adopt" | "delete" zombie_life_time ::= unsigned integer ( default: user(300), ecf(3600), path(900) ) late ::= "late" >> late_option >> !late_option >> !late_option >> +nextline late_option ::= "-c" >> hh_mm | ("-s" >> hh_mm ) | "-a" >> hh_mm repeat ::= "repeat" >> repeat_type >> +nextline repeat_type ::= repeat_date | repeat_day | repeat_month | repeat_year | repeat_integer | repeat_enumerated | repeat_string repeat_day ::= "day" >> unsigned integer >> !ymd repeat_month ::= “month" >> unsigned integer >> !ymd repeat_year ::= "year" >> unsigned integer >> !ymd repeat_integer ::= "integer" >> identifier >> integer >> " " >> integer >> " " >> integer repeat_enumerated ::= "enumerated" >> identifier >> +identifier repeat_string ::= "string" >> identifier >> +identifier repeat_date ::= "date" >> identifier >> ymd >> ymd >> unsigned integer varvalue ::= tickquotedstring | quotedstring | identifier suiteName ::= node_name >> +nextline familyName ::= node_name >> +nextline taskName ::= node_name >> +nextline nodestate ::= "complete” | "unknown” | "queued" | "aborted" | “active” dstate ::= "complete” | "unknown” | "queued" | "aborted" | “active” | “suspended” eventnumber ::= unsigned integer eventname ::= identifier hh_mm ::= !'+' >> two_int_p >> ":" >> two_int_p clock_date ::= ( two_int_p | ‘*’ ) >> "." >> ( two_int_p | ‘*’ ) >> "." >> (two_int_p | ‘*’) cron ::= "cron" >> ((‘-w >> +int) | (‘-d’ >> +int) | (‘-m’ >> +int)) >> timeseries >> +nextline node_name ::= (alpha_numeric | ‘_’| ‘.’) >> *(alpha_numeric | ‘_’ | ‘.’ ) comment ::= ’#’ >> printable chars > newline nextline ::= newline | comment timeseries ::= two_int_p >> “:” >> two_int_p >> two_int_p >> “:” >> two_int_p >> two_int_p >> “:” >> two_int_p quotedstring ::= ’”‘ >> *(printable chars) >> ‘”’ tickquotedstring ::= ’'’ >> *(print_p - nextline) ] absolutepath ::= !’/’ >> identifier >> *( ‘/’ >> identifier ) dotdotpath ::= ".." >> +( ‘/’ >> identifier ) dotpath ::= ‘.’ >> +( ‘/’ >> identifier ) identifier ::= (alpha_numeric | ‘_’) >> *(alpha_numeric | ‘_’) nodePath ::= absolutepath | dotdotpath | dotpath expression ::= printable chars >> !’\’ >> nextline two_int_p ::= 2 digit integer theYear ::= 4 digit integer ymd ::= 8 digit integer newline ::= \n