xref: /haiku/src/tests/add-ons/print/ppd/doc/PPD_Object_Model.txt (revision c90684742e7361651849be4116d0e5de3a817194)
1PPD
2
3# translationKeyword only if stand-alone = no *Keyword statements
4"*Default"Keyword ":" StringValue ["/" translationString ].
5"*"Keyword [Option ["/" translationString ]] ":" Value ["/" translationString ].
6"*?"Keyword ":" InvocationValue ["/" translationString ].
7"*Param"Keyword [Option ["/" translationString ]] ":" Value ["/" translationString ].
8
9Line comments start with "*%".
10
11*Include
12
13Keyword = ident.       # ,'.',/
14Option = ident {"." ident}.
15# translationString must not follow SymbolValue!
16# translationString is terminated by ":" if it follows a Option
17# or CR if it follows a Value.
18Value = InvocationValue | QuotedValue | SymbolValue | StringValue | NoValue.
19
20# ps code
21# requires statement with option keyword!
22# Must end with in separate line *End if multiline.
23InvocationValue = '"' printable '"' ["/" translationString ].
24
25# requires statement without an option keyword!
26# *JCL can have an option keyword!
27# Must end with in separate line *End if multiline.
28QuotedValue = '"' literalSubstring '"'.
29
30SymbolValue = "^" printable. # without whitespaces
31
32# In case of translation string it is separated by newline or slash.
33StringValue = printable . # first char must not be " or ^
34
35literalSubstring = { hexadecimalSubstring | char }.
36
37hexadecimalSubstring = "<" { whitespace* hexdigit hexdigit} ">".
38hexdigit = ['0'..'9','a'..'f','A'..'F'].
39
40# No option keyword present. Keyword stands alone.
41NoValue =.
42
43ident = identChar+.
44identChar = [33..126].
45
46printable = printableChar+.
47printableChar = [32..126] | tab | lf | cr. # " belongs not to printableChar!
48
49translationString = literalSubstring. # without lf and cr.
50
51char = [32..255] | tab | lf | cr.
52
53whitespace= space | tab.
54
55tab=9.
56lf=10.
57cr=13.
58space=32.
59
60max size of MainKeyword = 40 characters
61
62File Structure see 3.8
63
64Standard Option Values:
65True | False | None | Unknown
66
67
68OpenUI Keyword: PickOne | PickMany | Boolean
69CloseUI: Keyword
70Open[Sub]Group: string
71# InstallableOptions is a registered option!
72Close[Sub]Group: string
73
74UIConstraints: keyword1 option1 keyword2 option2
75# option 1 can be omitted see page 57
76
77# Unique name
78ModelName: "text"