ProxySG Content Policy Language Guide
50
• condition ::= trigger "=" expression
• trigger ::= identifier | identifier "." word
• expression ::= term | list
• list ::= "(" ((pattern ",")* pattern)? ")"
• disjunction ::= conjunction | disjunction "||" conjunction
• conjunction ::= term | conjunction "&&" term
• term ::= pattern | "(" disjunction ")" | "!" term
• pattern ::= word | 'string' | "string"
• word ::= sequence of characters not including whitespace, & | ( ) < > [ ] ; ! =
" '
• string ::= sequence of characters that may including whitespace, & | ( ) < > [ ] ;
! =. The characters " and ' may be enclosed within a string delimited by the
alternate delimiter.
Pattern Types
Different triggers support different pattern syntaxes.
A pattern for a boolean trigger has one of the following forms:
boolean ::= yes | no | true | false | on | off
The pattern for a numeric trigger can be either an integer or a range of integers. Numeric patterns
cannot contain white space.
trigger=I
Test if trigger == I.
trigger=I..J
Test if trigger >= I and trigger <= J (where I <= J). For example, time=0900..1700 tests if the
time is between 9:00 and 17:00 inclusive.
trigger=J..I
Test if trigger >= J or trigger <= I (where J > I). For example, minute=45..15 tests if the minute
of the hour is between 45 and 15 inclusive.
trigger=I..
Test if trigger >= I. For example, bitrate=56k.. tests if the bitrate is greater than or equal to
56000.
trigger=..J
Test if trigger <= J. For example, bitrate=..56k tests if the bitrate is less than or equal to 56000.
Some triggers have IP address patterns. This can be either a literal IP address, such as 1.2.3.4, or an IP
subnet pattern, such as 1.2.0.0/16, or a name defined by a
define subnet statement.
Some triggers have regex patterns. This is a Perl 5 regular expression that matches a substring of the
trigger value; it is not an anchored match unless an anchor is specified as part of the pattern.