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

Previous slide Next slide Back to the first slide View Graphic Version