Reference Policy Language Construct
policy :: rule+
rule :: let-rule | combine-rule | invoke-rule | install-rule | projection-rule | match-rule | url-match-rule
let-rule :: '(' 'let' '(' let-binding+')' rule+ ')'
let-binding :: '(' variable-name let-expression ')'
variable-name :: symbol
let-expression :: rule | ''
combine-rule :: unary-combine-rule | multi-combine-rule | threshold-rule
unary-combine-rule :: '(' unary-operator rule ')'
unary-operator :: 'not' | 'true-if-unknown' | 'false-if-unknown'
multi-combine-rule :: '(' multi-combine-operator rule* ')'
multi-combine-operator :: 'and' | 'or'
threshold-rule :: '(' 'threshold-and' threshold-value rule* ')'
threshold-value :: number
invoke-rule :: '(' 'invoke' policy-name statement-list optional-argument* ')'
policy-name :: quoted-name
statement-list :: '(' statement* ')'
statement :: '(' context content ')'
optional-argument :: s-expression
install-rule :: install-policy | install-interpreter
install-policy :: '(' 'install-policy statement-list ')'
install-interpreter :: '(' 'install-interpreter' statement-list ')'
match-rule :: '(' 'match' pattern rule ')'
pattern :: '*' | '+' | '.' | string-literal | symbol-literal | restriction |
'(' pattern* ')' | `\` string-literal | `,` string-literal
….
Reference Policy Language Construct