Stephen Gallagher wrote: > I have updated the grammar page at > https://fedorahosted.org/sssd/wiki/HBAC_Grammar again. > > The main changes made are these: > > * Eliminate the arbitrary "singular" from monthly repetitions > * Add negative numbers for days of the month for counting from the end > * For readability, replaced "-" with "and" for "between DAY and DAY" > * For readability, added delimiter "at" before the range-specifier > > Please reread the page for more detail. > I have to comment on many things with the current state of grammar so for easier reference I copied it here and commented inline
>timerange = Absolute / Periodic > >Absolute = "absolute" WSP generalizedTime WSP "~" WSP generalizedTime > >generalizedTime as defined in RFC 4517 section 3.3.13 but without time zone at >the end. > >Periodic = "periodic" WSP Yearly / Monthly / Weekly / Daily > >Yearly = "yearly" WSP Y-specifier WSP range-specified > >Monthly = "monthly" WSP M-specifier WSP range-specifier > >Weekly = "weekly" WSP W-specifier WSP range-specifier > >Daily = "daily" WSP range-specifier > >Y-specifier = Y-month / Y-week / Y-day > >Y-month = "month" WSP month-number WSP M-specifier > >Y-week = "week" WSP week-of-the-year WSP W-specifier > >Y-day = "day" WSP day-of-the-year > >M-specifier = M-on / M-day If we read grammar so far we will end up with the following uses of the M-specifier periodic monthly <M-specifier> <range> periodic yearly month 1,4,7 <M-specifier> <range> So far so good. Now we have two variants of the M-specifier M-on and M-day >M-on = "on" WSP day-of-the-week WSP day-of-the-month-range The intent of this one was to be able to specify the weekday within a month >M-day = "day" WSP day-of-the-month-interval This one for calendar days within a month >W-specifier = "day" WSP day-of-the-week > >month-number = interval 1-12 > >week-of-the-year = interval 1-52 > >septet-of-the-month = interval 1-5 The septet is not used any more and should be removed, right? >day-of-the-month-interval = interval day-of-the-month This should be a plain interval from 1-31 with no negatives since it is used in the M-day rule I would argue that M-day can be just replaced with M-day = "day" WSP interval 1-31 Keep in mind that definition of the interval here is as described below: interval XX-YY = a comma-separated list of items from XX to YY, or dash-separated ranges. For example, (interval 1-31) 3-7,10,12,15,25-31 with no spaces inside. So definition of the day-of-the-month-interval can be then removed. >day-of-the-month-range = "between" WSP day-of-the-month WSP "and" WSP >day-of-the-month > >day-of-the-month = "-31" to "31" This notion allows me to enter "between -31 and 3" which does not make any sense. Also current grammar does not allow me to use ranges which I want to use here. I want to be able to express "Wednesday" of the first and third week of the month. Capability to do so it completely lost. We abandoned the term "septet" not because of the bad idea but because this is a confusing word. But we can leave without it as long as I can use complex intervals. After more thinking I would like to reject idea of the negative numbers. Instead we can do the following: M-on = "on" WSP day-of-the-week WSP "during" WSP day-of-the-month-range day-of-the-month-range = interval 1-31 / last-days last-days = "last" WSP sequential-days sequential-days = single number from the 1-31 range So if we want to say "Wednesday" of the first and third week of the month I will use: periodic monthly on Wed during 1-7,15-21 if I want to say Wednesday during last two weeks of the month I will say: periodic monthly on Wed during last 14 IMO it is cleaner and simpler and allows to express all the notions we want to express. >day-of-the-week = interval 1-7 (or Mon-Sun) > >range-specifier = "at" WSP HHMM WSP "+" WSP duration-specifier What is the value and significance of the "+" here? Is it just for readability? Then I would suggest that we replace it with the word "for". >duration-specifier = DDHHMM > >DD = "00" to "31" > >HH = "00" to "23" > >MM = "00" to "59" > > >interval XX-YY = a comma-separated list of items from XX to YY, or >dash-separated ranges. >range = dash-separated range This definition seems incomplete but I do not know how to make it better... >For example, (interval 1-31) 3-7,10,12,15,25-31 with no spaces inside. Thank you, Dmitri Pal Sr. Engineering Manager IPA project, Red Hat Inc. ------------------------------- Looking to carve out IT costs? www.redhat.com/carveoutcosts/ _______________________________________________ Freeipa-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/freeipa-devel
