updated spec pdf

master
Daniel Knüttel 2018-10-03 22:14:33 +02:00
parent fed33b6281
commit b2153c8225
1 changed files with 304 additions and 123 deletions

View File

@ -1,7 +1,7 @@
%PDF-1.4
%“Œ‹ž ReportLab Generated PDF document http://www.reportlab.com
1 0 obj
<< /F1 2 0 R /F2 3 0 R /F3 26 0 R >>
<< /F1 2 0 R /F2 3 0 R /F3 28 0 R >>
endobj
2 0 obj
<< /BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font >>
@ -10,137 +10,150 @@ endobj
<< /BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font >>
endobj
4 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 27 0 R /XYZ 62.69291 468.0236 0 ] /Rect [ 62.69291 663.0236 127.7229 675.0236 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 450.0236 0 ] /Rect [ 62.69291 663.0236 127.7229 675.0236 ] /Subtype /Link /Type /Annot >>
endobj
5 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 27 0 R /XYZ 62.69291 468.0236 0 ] /Rect [ 527.0227 663.7736 532.5827 675.7736 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 450.0236 0 ] /Rect [ 527.0227 663.7736 532.5827 675.7736 ] /Subtype /Link /Type /Annot >>
endobj
6 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 27 0 R /XYZ 62.69291 375.0236 0 ] /Rect [ 62.69291 645.0236 209.9629 657.0236 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 357.0236 0 ] /Rect [ 62.69291 645.0236 209.9629 657.0236 ] /Subtype /Link /Type /Annot >>
endobj
7 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 27 0 R /XYZ 62.69291 375.0236 0 ] /Rect [ 527.0227 645.7736 532.5827 657.7736 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 357.0236 0 ] /Rect [ 527.0227 645.7736 532.5827 657.7736 ] /Subtype /Link /Type /Annot >>
endobj
8 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 27 0 R /XYZ 62.69291 342.0236 0 ] /Rect [ 62.69291 627.0236 118.2629 639.0236 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 324.0236 0 ] /Rect [ 62.69291 627.0236 118.2629 639.0236 ] /Subtype /Link /Type /Annot >>
endobj
9 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 27 0 R /XYZ 62.69291 342.0236 0 ] /Rect [ 527.0227 627.7736 532.5827 639.7736 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 324.0236 0 ] /Rect [ 527.0227 627.7736 532.5827 639.7736 ] /Subtype /Link /Type /Annot >>
endobj
10 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 27 0 R /XYZ 62.69291 231.0236 0 ] /Rect [ 82.69291 609.0236 242.7529 621.0236 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 213.0236 0 ] /Rect [ 82.69291 609.0236 242.7529 621.0236 ] /Subtype /Link /Type /Annot >>
endobj
11 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 27 0 R /XYZ 62.69291 231.0236 0 ] /Rect [ 527.0227 609.7736 532.5827 621.7736 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 213.0236 0 ] /Rect [ 527.0227 609.7736 532.5827 621.7736 ] /Subtype /Link /Type /Annot >>
endobj
12 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 28 0 R /XYZ 62.69291 552.6236 0 ] /Rect [ 82.69291 591.0236 186.0729 603.0236 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 30 0 R /XYZ 62.69291 552.6236 0 ] /Rect [ 82.69291 591.0236 186.0729 603.0236 ] /Subtype /Link /Type /Annot >>
endobj
13 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 28 0 R /XYZ 62.69291 552.6236 0 ] /Rect [ 527.0227 591.7736 532.5827 603.7736 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 30 0 R /XYZ 62.69291 552.6236 0 ] /Rect [ 527.0227 591.7736 532.5827 603.7736 ] /Subtype /Link /Type /Annot >>
endobj
14 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 28 0 R /XYZ 62.69291 387.4236 0 ] /Rect [ 82.69291 573.0236 109.9329 585.0236 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 30 0 R /XYZ 62.69291 387.4236 0 ] /Rect [ 82.69291 573.0236 109.9329 585.0236 ] /Subtype /Link /Type /Annot >>
endobj
15 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 28 0 R /XYZ 62.69291 387.4236 0 ] /Rect [ 527.0227 573.7736 532.5827 585.7736 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 30 0 R /XYZ 62.69291 387.4236 0 ] /Rect [ 527.0227 573.7736 532.5827 585.7736 ] /Subtype /Link /Type /Annot >>
endobj
16 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 28 0 R /XYZ 62.69291 258.2236 0 ] /Rect [ 82.69291 555.0236 122.1529 567.0236 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 30 0 R /XYZ 62.69291 258.2236 0 ] /Rect [ 82.69291 555.0236 122.1529 567.0236 ] /Subtype /Link /Type /Annot >>
endobj
17 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 28 0 R /XYZ 62.69291 258.2236 0 ] /Rect [ 527.0227 555.7736 532.5827 567.7736 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 30 0 R /XYZ 62.69291 258.2236 0 ] /Rect [ 527.0227 555.7736 532.5827 567.7736 ] /Subtype /Link /Type /Annot >>
endobj
18 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 620.6236 0 ] /Rect [ 82.69291 537.0236 169.3829 549.0236 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 31 0 R /XYZ 62.69291 620.6236 0 ] /Rect [ 82.69291 537.0236 169.3829 549.0236 ] /Subtype /Link /Type /Annot >>
endobj
19 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 620.6236 0 ] /Rect [ 527.0227 537.7736 532.5827 549.7736 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 31 0 R /XYZ 62.69291 620.6236 0 ] /Rect [ 527.0227 537.7736 532.5827 549.7736 ] /Subtype /Link /Type /Annot >>
endobj
20 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 519.4236 0 ] /Rect [ 82.69291 519.0236 131.0329 531.0236 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 31 0 R /XYZ 62.69291 519.4236 0 ] /Rect [ 82.69291 519.0236 131.0329 531.0236 ] /Subtype /Link /Type /Annot >>
endobj
21 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 519.4236 0 ] /Rect [ 527.0227 519.7736 532.5827 531.7736 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 31 0 R /XYZ 62.69291 519.4236 0 ] /Rect [ 527.0227 519.7736 532.5827 531.7736 ] /Subtype /Link /Type /Annot >>
endobj
22 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 459.4236 0 ] /Rect [ 82.69291 501.0236 113.8129 513.0236 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 31 0 R /XYZ 62.69291 459.4236 0 ] /Rect [ 82.69291 501.0236 113.8129 513.0236 ] /Subtype /Link /Type /Annot >>
endobj
23 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 459.4236 0 ] /Rect [ 527.0227 501.7736 532.5827 513.7736 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 31 0 R /XYZ 62.69291 459.4236 0 ] /Rect [ 527.0227 501.7736 532.5827 513.7736 ] /Subtype /Link /Type /Annot >>
endobj
24 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 339.4236 0 ] /Rect [ 62.69291 483.0236 208.2929 495.0236 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 31 0 R /XYZ 62.69291 309.4236 0 ] /Rect [ 82.69291 483.0236 127.7129 495.0236 ] /Subtype /Link /Type /Annot >>
endobj
25 0 obj
<< /Border [ 0 0 0 ] /Contents () /Dest [ 29 0 R /XYZ 62.69291 339.4236 0 ] /Rect [ 527.0227 483.7736 532.5827 495.7736 ] /Subtype /Link /Type /Annot >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 31 0 R /XYZ 62.69291 309.4236 0 ] /Rect [ 527.0227 483.7736 532.5827 495.7736 ] /Subtype /Link /Type /Annot >>
endobj
26 0 obj
<< /BaseFont /Courier /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 31 0 R /XYZ 62.69291 165.4236 0 ] /Rect [ 62.69291 465.0236 208.2929 477.0236 ] /Subtype /Link /Type /Annot >>
endobj
27 0 obj
<< /Annots [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R
14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R
24 0 R 25 0 R ] /Contents 45 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 44 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0
/Trans << >> /Type /Page >>
<< /Border [ 0 0 0 ] /Contents () /Dest [ 31 0 R /XYZ 62.69291 165.4236 0 ] /Rect [ 527.0227 465.7736 532.5827 477.7736 ] /Subtype /Link /Type /Annot >>
endobj
28 0 obj
<< /Contents 46 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 44 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << >>
/Type /Page >>
<< /BaseFont /Courier /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font >>
endobj
29 0 obj
<< /Contents 47 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 44 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << >>
/Type /Page >>
<< /Annots [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R
14 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R
24 0 R 25 0 R 26 0 R 27 0 R ] /Contents 49 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 48 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0
/Trans << >> /Type /Page >>
endobj
30 0 obj
<< /Outlines 32 0 R /PageLabels 48 0 R /PageMode /UseNone /Pages 44 0 R /Type /Catalog >>
<< /Contents 50 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 48 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << >>
/Type /Page >>
endobj
31 0 obj
<< /Author () /CreationDate (D:20181002080507+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20181002080507+00'00') /Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\)) /Title (sBasic -- yet another simple programming language) /Trapped /False >>
<< /Contents 51 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 48 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << >>
/Type /Page >>
endobj
32 0 obj
<< /Count 12 /First 33 0 R /Last 43 0 R /Type /Outlines >>
<< /Contents 52 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 48 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << >>
/Type /Page >>
endobj
33 0 obj
<< /Dest [ 27 0 R /XYZ 62.69291 468.0236 0 ] /Next 34 0 R /Parent 32 0 R /Title (sBasic Usage) >>
<< /Outlines 35 0 R /PageLabels 53 0 R /PageMode /UseNone /Pages 48 0 R /Type /Catalog >>
endobj
34 0 obj
<< /Dest [ 27 0 R /XYZ 62.69291 375.0236 0 ] /Next 35 0 R /Parent 32 0 R /Prev 33 0 R /Title (sBasic Language Specification) >>
<< /Author () /CreationDate (D:20181003201416+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20181003201416+00'00') /Producer (ReportLab PDF Library - www.reportlab.com)
/Subject (\(unspecified\)) /Title (sBasic -- yet another simple programming language) /Trapped /False >>
endobj
35 0 obj
<< /Count 7 /Dest [ 27 0 R /XYZ 62.69291 342.0236 0 ] /First 36 0 R /Last 42 0 R /Next 43 0 R /Parent 32 0 R
/Prev 34 0 R /Title (Whitespace) >>
<< /Count 13 /First 36 0 R /Last 47 0 R /Type /Outlines >>
endobj
36 0 obj
<< /Dest [ 27 0 R /XYZ 62.69291 231.0236 0 ] /Next 37 0 R /Parent 35 0 R /Title (Variables and Arithmetic Operations) >>
<< /Dest [ 29 0 R /XYZ 62.69291 450.0236 0 ] /Next 37 0 R /Parent 35 0 R /Title (sBasic Usage) >>
endobj
37 0 obj
<< /Dest [ 28 0 R /XYZ 62.69291 552.6236 0 ] /Next 38 0 R /Parent 35 0 R /Prev 36 0 R /Title (Conditional Statements) >>
<< /Dest [ 29 0 R /XYZ 62.69291 357.0236 0 ] /Next 38 0 R /Parent 35 0 R /Prev 36 0 R /Title (sBasic Language Specification) >>
endobj
38 0 obj
<< /Dest [ 28 0 R /XYZ 62.69291 387.4236 0 ] /Next 39 0 R /Parent 35 0 R /Prev 37 0 R /Title (Loops) >>
<< /Count 8 /Dest [ 29 0 R /XYZ 62.69291 324.0236 0 ] /First 39 0 R /Last 46 0 R /Next 47 0 R /Parent 35 0 R
/Prev 37 0 R /Title (Whitespace) >>
endobj
39 0 obj
<< /Dest [ 28 0 R /XYZ 62.69291 258.2236 0 ] /Next 40 0 R /Parent 35 0 R /Prev 38 0 R /Title (Routines) >>
<< /Dest [ 29 0 R /XYZ 62.69291 213.0236 0 ] /Next 40 0 R /Parent 38 0 R /Title (Variables and Arithmetic Operations) >>
endobj
40 0 obj
<< /Dest [ 29 0 R /XYZ 62.69291 620.6236 0 ] /Next 41 0 R /Parent 35 0 R /Prev 39 0 R /Title (Special Commands) >>
<< /Dest [ 30 0 R /XYZ 62.69291 552.6236 0 ] /Next 41 0 R /Parent 38 0 R /Prev 39 0 R /Title (Conditional Statements) >>
endobj
41 0 obj
<< /Dest [ 29 0 R /XYZ 62.69291 519.4236 0 ] /Next 42 0 R /Parent 35 0 R /Prev 40 0 R /Title (Comments) >>
<< /Dest [ 30 0 R /XYZ 62.69291 387.4236 0 ] /Next 42 0 R /Parent 38 0 R /Prev 40 0 R /Title (Loops) >>
endobj
42 0 obj
<< /Dest [ 29 0 R /XYZ 62.69291 459.4236 0 ] /Parent 35 0 R /Prev 41 0 R /Title (Strings) >>
<< /Dest [ 30 0 R /XYZ 62.69291 258.2236 0 ] /Next 43 0 R /Parent 38 0 R /Prev 41 0 R /Title (Routines) >>
endobj
43 0 obj
<< /Dest [ 29 0 R /XYZ 62.69291 339.4236 0 ] /Parent 32 0 R /Prev 35 0 R /Title (sBasic Application Extensions) >>
<< /Dest [ 31 0 R /XYZ 62.69291 620.6236 0 ] /Next 44 0 R /Parent 38 0 R /Prev 42 0 R /Title (Special Commands) >>
endobj
44 0 obj
<< /Count 3 /Kids [ 27 0 R 28 0 R 29 0 R ] /Type /Pages >>
<< /Dest [ 31 0 R /XYZ 62.69291 519.4236 0 ] /Next 45 0 R /Parent 38 0 R /Prev 43 0 R /Title (Comments) >>
endobj
45 0 obj
<< /Length 5969 >>
<< /Dest [ 31 0 R /XYZ 62.69291 459.4236 0 ] /Next 46 0 R /Parent 38 0 R /Prev 44 0 R /Title (Strings) >>
endobj
46 0 obj
<< /Dest [ 31 0 R /XYZ 62.69291 309.4236 0 ] /Parent 38 0 R /Prev 45 0 R /Title (Datatypes) >>
endobj
47 0 obj
<< /Dest [ 31 0 R /XYZ 62.69291 165.4236 0 ] /Parent 35 0 R /Prev 38 0 R /Title (sBasic Application Extensions) >>
endobj
48 0 obj
<< /Count 4 /Kids [ 29 0 R 30 0 R 31 0 R 32 0 R ] /Type /Pages >>
endobj
49 0 obj
<< /Length 6211 >>
stream
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
q
@ -157,16 +170,30 @@ BT 1 0 0 1 0 3.5 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (Contents) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 480.0236 cm
1 0 0 1 62.69291 462.0236 cm
0 0 0 rg
BT /F1 10 Tf 12 TL ET
q
1 0 0 1 0 183 cm
1 0 0 1 0 201 cm
q
BT 1 0 0 1 0 2 Tm 12 TL /F2 10 Tf 0 0 .501961 rg (sBasic Usage) Tj T* ET
Q
Q
q
1 0 0 1 397.8898 201 cm
q
0 0 .501961 rg
0 0 .501961 RG
BT 1 0 0 1 0 2 Tm /F2 10 Tf 12 TL 66.44 0 Td (1) Tj T* -66.44 0 Td ET
Q
Q
q
1 0 0 1 0 183 cm
q
BT 1 0 0 1 0 2 Tm 12 TL /F2 10 Tf 0 0 .501961 rg (sBasic Language Specification) Tj T* ET
Q
Q
q
1 0 0 1 397.8898 183 cm
q
0 0 .501961 rg
@ -177,7 +204,7 @@ Q
q
1 0 0 1 0 165 cm
q
BT 1 0 0 1 0 2 Tm 12 TL /F2 10 Tf 0 0 .501961 rg (sBasic Language Specification) Tj T* ET
BT 1 0 0 1 0 2 Tm 12 TL /F2 10 Tf 0 0 .501961 rg (Whitespace) Tj T* ET
Q
Q
q
@ -191,7 +218,7 @@ Q
q
1 0 0 1 0 147 cm
q
BT 1 0 0 1 0 2 Tm 12 TL /F2 10 Tf 0 0 .501961 rg (Whitespace) Tj T* ET
BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Variables and Arithmetic Operations) Tj T* ET
Q
Q
q
@ -199,13 +226,13 @@ q
q
0 0 .501961 rg
0 0 .501961 RG
BT 1 0 0 1 0 2 Tm /F2 10 Tf 12 TL 66.44 0 Td (1) Tj T* -66.44 0 Td ET
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (1) Tj T* -66.44 0 Td ET
Q
Q
q
1 0 0 1 0 129 cm
q
BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Variables and Arithmetic Operations) Tj T* ET
BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Conditional Statements) Tj T* ET
Q
Q
q
@ -213,13 +240,13 @@ q
q
0 0 .501961 rg
0 0 .501961 RG
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (1) Tj T* -66.44 0 Td ET
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (2) Tj T* -66.44 0 Td ET
Q
Q
q
1 0 0 1 0 111 cm
q
BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Conditional Statements) Tj T* ET
BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Loops) Tj T* ET
Q
Q
q
@ -233,7 +260,7 @@ Q
q
1 0 0 1 0 93 cm
q
BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Loops) Tj T* ET
BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Routines) Tj T* ET
Q
Q
q
@ -247,7 +274,7 @@ Q
q
1 0 0 1 0 75 cm
q
BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Routines) Tj T* ET
BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Special Commands) Tj T* ET
Q
Q
q
@ -255,13 +282,13 @@ q
q
0 0 .501961 rg
0 0 .501961 RG
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (2) Tj T* -66.44 0 Td ET
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 66.44 0 Td (3) Tj T* -66.44 0 Td ET
Q
Q
q
1 0 0 1 0 57 cm
q
BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Special Commands) Tj T* ET
BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Comments) Tj T* ET
Q
Q
q
@ -275,7 +302,7 @@ Q
q
1 0 0 1 0 39 cm
q
BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Comments) Tj T* ET
BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Strings) Tj T* ET
Q
Q
q
@ -289,7 +316,7 @@ Q
q
1 0 0 1 0 21 cm
q
BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Strings) Tj T* ET
BT 1 0 0 1 20 2 Tm 12 TL /F1 10 Tf 0 0 .501961 rg (Datatypes) Tj T* ET
Q
Q
q
@ -318,78 +345,78 @@ q
Q
Q
q
1 0 0 1 62.69291 447.0236 cm
1 0 0 1 62.69291 429.0236 cm
q
BT 1 0 0 1 0 3.5 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (sBasic Usage) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 417.0236 cm
1 0 0 1 62.69291 399.0236 cm
q
0 0 0 rg
BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL .616905 Tw (sBasic is designed for freely programmable embedded applications that do not allow scripting languages) Tj T* 0 Tw (like JS, Lua or Python.) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 387.0236 cm
1 0 0 1 62.69291 369.0236 cm
q
0 0 0 rg
BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL .571751 Tw (One should not write applications with it, in contrary it is designed to write extensions for micro controller) Tj T* 0 Tw (projects.) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 354.0236 cm
1 0 0 1 62.69291 336.0236 cm
q
BT 1 0 0 1 0 3.5 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (sBasic Language Specification) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 321.0236 cm
1 0 0 1 62.69291 303.0236 cm
q
BT 1 0 0 1 0 3.5 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (Whitespace) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 291.0236 cm
1 0 0 1 62.69291 273.0236 cm
q
BT 1 0 0 1 0 14 Tm 2.394269 Tw 12 TL /F1 10 Tf 0 0 0 rg (The following whitespace characters will be converted to a single blank \() Tj /F3 10 Tf 0 0 0 rg (0x20) Tj /F1 10 Tf 0 0 0 rg (\): ) Tj /F3 10 Tf 0 0 0 rg (\\t\\r ) Tj /F1 10 Tf 0 0 0 rg (and multiple) Tj T* 0 Tw (blanks.) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 261.0236 cm
1 0 0 1 62.69291 243.0236 cm
q
BT 1 0 0 1 0 14 Tm .59284 Tw 12 TL /F1 10 Tf 0 0 0 rg (The newline character \() Tj /F3 10 Tf 0 0 0 rg (\\n) Tj /F1 10 Tf 0 0 0 rg (\) is a special character however multiple newline characters will be interpreted) Tj T* 0 Tw (as one.) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 243.0236 cm
1 0 0 1 62.69291 225.0236 cm
q
0 0 0 rg
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (A statement always ends with a newline character. Tokens are separated by blanks.) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 213.0236 cm
1 0 0 1 62.69291 195.0236 cm
q
BT 1 0 0 1 0 3 Tm 18 TL /F2 15 Tf 0 0 0 rg (Variables and Arithmetic Operations) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 183.0236 cm
q
0 0 0 rg
BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL 1.831318 Tw (Variables have data types. Usually they will be integers, but there might be other application specific) Tj T* 0 Tw (datatypes.) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 165.0236 cm
q
0 0 0 rg
BT 1 0 0 1 0 14 Tm /F1 10 Tf 12 TL 1.831318 Tw (Variables have data types. Usually they will be integers, but there might be other application specific) Tj T* 0 Tw (datatypes.) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 147.0236 cm
q
0 0 0 rg
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Variables have to be declared explicitly using the scheme:) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 131.8236 cm
1 0 0 1 62.69291 113.8236 cm
q
q
1 0 0 1 0 0 cm
@ -409,7 +436,7 @@ Q
Q
Q
q
1 0 0 1 62.69291 99.82362 cm
1 0 0 1 62.69291 81.82362 cm
q
BT 1 0 0 1 0 14 Tm 1.016651 Tw 12 TL /F2 10 Tf 0 0 0 rg (Note ) Tj /F1 10 Tf (that variable names must start with an alphabetic character. Variable names can contain after the) Tj T* 0 Tw (first character all of the following characters:) Tj T* ET
Q
@ -417,7 +444,7 @@ Q
endstream
endobj
46 0 obj
50 0 obj
<< /Length 4567 >>
stream
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
@ -597,8 +624,8 @@ Q
endstream
endobj
47 0 obj
<< /Length 4211 >>
51 0 obj
<< /Length 6919 >>
stream
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
q
@ -728,41 +755,189 @@ BT 1 0 0 1 0 26 Tm .112619 Tw 12 TL /F1 10 Tf 0 0 0 rg (A single line string sta
Q
Q
q
1 0 0 1 62.69291 351.4236 cm
1 0 0 1 62.69291 339.4236 cm
q
BT 1 0 0 1 0 14 Tm 1.447209 Tw 12 TL /F1 10 Tf 0 0 0 rg (A multi line string starts and ends with a ) Tj /F3 10 Tf 0 0 0 rg (` ) Tj /F1 10 Tf 0 0 0 rg (character and can span over several lines. Every newline) Tj T* 0 Tw (character in the string will be treated as such. ) Tj /F3 10 Tf 0 0 0 rg (" ) Tj /F1 10 Tf 0 0 0 rg (is treated as character ) Tj /F3 10 Tf 0 0 0 rg (") Tj /F1 10 Tf 0 0 0 rg (.) Tj T* ET
BT 1 0 0 1 0 26 Tm 1.447209 Tw 12 TL /F1 10 Tf 0 0 0 rg (A multi line string starts and ends with a ) Tj /F3 10 Tf 0 0 0 rg (` ) Tj /F1 10 Tf 0 0 0 rg (character and can span over several lines. Every newline) Tj T* 0 Tw 1.083145 Tw (character in the string will be treated as such. ) Tj /F3 10 Tf 0 0 0 rg (" ) Tj /F1 10 Tf 0 0 0 rg (is treated as character ) Tj /F3 10 Tf 0 0 0 rg (") Tj /F1 10 Tf 0 0 0 rg (. The rest of the conventions) Tj T* 0 Tw (follow the conventions for single line strings.) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 318.4236 cm
1 0 0 1 62.69291 321.4236 cm
q
BT 1 0 0 1 0 2 Tm 12 TL /F2 10 Tf 0 0 0 rg (Note ) Tj /F1 10 Tf (that strings in sBasic are static and stored in the program memory.) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 291.4236 cm
q
BT 1 0 0 1 0 3 Tm 18 TL /F2 15 Tf 0 0 0 rg (Datatypes) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 279.4236 cm
Q
q
1 0 0 1 62.69291 279.4236 cm
Q
q
1 0 0 1 62.69291 255.4236 cm
0 0 0 rg
BT /F1 10 Tf 12 TL ET
q
1 0 0 1 6 9 cm
q
0 0 0 rg
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET
Q
Q
q
1 0 0 1 23 -3 cm
q
BT 1 0 0 1 0 14 Tm .304987 Tw 12 TL /F1 10 Tf 0 0 0 rg (Strings are indicated by the ) Tj /F3 10 Tf 0 0 0 rg (str ) Tj /F1 10 Tf 0 0 0 rg (keyword. The variable itself is a pointer to the actual string that will) Tj T* 0 Tw (be stored at the end of the program memory) Tj T* ET
Q
Q
q
Q
Q
q
1 0 0 1 62.69291 249.4236 cm
Q
q
1 0 0 1 62.69291 237.4236 cm
0 0 0 rg
BT /F1 10 Tf 12 TL ET
q
1 0 0 1 6 -3 cm
q
0 0 0 rg
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET
Q
Q
q
1 0 0 1 23 -3 cm
q
BT 1 0 0 1 0 2 Tm 12 TL /F1 10 Tf 0 0 0 rg (Integers are indicated by the ) Tj /F3 10 Tf 0 0 0 rg (int ) Tj /F1 10 Tf 0 0 0 rg (keyword.) Tj T* ET
Q
Q
q
Q
Q
q
1 0 0 1 62.69291 231.4236 cm
Q
q
1 0 0 1 62.69291 207.4236 cm
0 0 0 rg
BT /F1 10 Tf 12 TL ET
q
1 0 0 1 6 9 cm
q
0 0 0 rg
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET
Q
Q
q
1 0 0 1 23 -3 cm
q
BT 1 0 0 1 0 14 Tm 3.646905 Tw 12 TL /F1 10 Tf 0 0 0 rg (Characters are indicated by the ) Tj /F3 10 Tf 0 0 0 rg (chr ) Tj /F1 10 Tf 0 0 0 rg (keyword. Literal characters are surrounded by two ) Tj /F3 10 Tf 0 0 0 rg (') Tj T* 0 Tw /F1 10 Tf 0 0 0 rg (characters. They can contain escape sequences \() Tj /F3 10 Tf 0 0 0 rg (\\ntr') Tj /F1 10 Tf 0 0 0 rg (\).) Tj T* ET
Q
Q
q
Q
Q
q
1 0 0 1 62.69291 201.4236 cm
Q
q
1 0 0 1 62.69291 177.4236 cm
0 0 0 rg
BT /F1 10 Tf 12 TL ET
q
1 0 0 1 6 9 cm
q
0 0 0 rg
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL 10.5 0 Td (\177) Tj T* -10.5 0 Td ET
Q
Q
q
1 0 0 1 23 -3 cm
q
BT 1 0 0 1 0 14 Tm .509985 Tw 12 TL /F1 10 Tf 0 0 0 rg (Floats are not supported by vanilla sBasic. They should however be marked using the ) Tj /F3 10 Tf 0 0 0 rg (flt ) Tj /F1 10 Tf 0 0 0 rg (or ) Tj /F3 10 Tf 0 0 0 rg (dbl) Tj T* 0 Tw /F1 10 Tf 0 0 0 rg (keywords.) Tj T* ET
Q
Q
q
Q
Q
q
1 0 0 1 62.69291 177.4236 cm
Q
q
1 0 0 1 62.69291 144.4236 cm
q
BT 1 0 0 1 0 3.5 Tm 21 TL /F2 17.5 Tf 0 0 0 rg (sBasic Application Extensions) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 276.4236 cm
1 0 0 1 62.69291 102.4236 cm
q
0 0 0 rg
BT 1 0 0 1 0 26 Tm /F1 10 Tf 12 TL 2.557126 Tw (When it comes to real world applications the sBasic language should be extended with Application) Tj T* 0 Tw .21784 Tw (Specific Commands \(ASC\). Those provide a way to directly access the assembly language controlling the) Tj T* 0 Tw (bytecode interpreter.) Tj T* ET
Q
Q
q
1 0 0 1 62.69291 84.42362 cm
q
0 0 0 rg
BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (ASCs should typically compile to few assembly commands, like:) Tj T* ET
Q
Q
endstream
endobj
48 0 obj
<< /Nums [ 0 49 0 R 1 50 0 R 2 51 0 R ] >>
52 0 obj
<< /Length 587 >>
stream
1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET
q
1 0 0 1 62.69291 583.8236 cm
q
q
1 0 0 1 0 0 cm
q
1 0 0 1 6.6 6.6 cm
q
.662745 .662745 .662745 RG
.5 w
.960784 .960784 .862745 rg
n -6 -6 468.6898 180 re B*
Q
q
0 0 0 rg
BT 1 0 0 1 0 158 Tm /F3 10 Tf 12 TL (# sBasic) Tj T* (string string_part = string + 1) Tj T* (PUTCREF string_part) Tj T* T* (; assembly) Tj T* (; string_part = string + 1) Tj T* (ld 0, string) Tj T* (ld 1, 1) Tj T* (add 0, 1) Tj T* (st 0, string_part) Tj T* T* (; PUTCREF string_part) Tj T* (ld 0, string_part) Tj T* (putcref 0) Tj T* ET
Q
Q
Q
Q
Q
endstream
endobj
49 0 obj
53 0 obj
<< /Nums [ 0 54 0 R 1 55 0 R 2 56 0 R 3 57 0 R ] >>
endobj
54 0 obj
<< /S /D /St 1 >>
endobj
50 0 obj
55 0 obj
<< /S /D /St 2 >>
endobj
51 0 obj
56 0 obj
<< /S /D /St 3 >>
endobj
57 0 obj
<< /S /D /St 4 >>
endobj
xref
0 52
0 58
0000000000 65535 f
0000000075 00000 n
0000000130 00000 n
@ -790,36 +965,42 @@ xref
0000003789 00000 n
0000003961 00000 n
0000004133 00000 n
0000004242 00000 n
0000004620 00000 n
0000004830 00000 n
0000005040 00000 n
0000005149 00000 n
0000005460 00000 n
0000005538 00000 n
0000005655 00000 n
0000005802 00000 n
0000005970 00000 n
0000006110 00000 n
0000006250 00000 n
0000006373 00000 n
0000006499 00000 n
0000006633 00000 n
0000006759 00000 n
0000006871 00000 n
0000007005 00000 n
0000007083 00000 n
0000013109 00000 n
0000017733 00000 n
0000022001 00000 n
0000022063 00000 n
0000022100 00000 n
0000022137 00000 n
0000004305 00000 n
0000004477 00000 n
0000004586 00000 n
0000004978 00000 n
0000005188 00000 n
0000005398 00000 n
0000005608 00000 n
0000005717 00000 n
0000006028 00000 n
0000006106 00000 n
0000006223 00000 n
0000006370 00000 n
0000006538 00000 n
0000006678 00000 n
0000006818 00000 n
0000006941 00000 n
0000007067 00000 n
0000007201 00000 n
0000007327 00000 n
0000007452 00000 n
0000007566 00000 n
0000007700 00000 n
0000007785 00000 n
0000014053 00000 n
0000018677 00000 n
0000025653 00000 n
0000026296 00000 n
0000026367 00000 n
0000026404 00000 n
0000026441 00000 n
0000026478 00000 n
trailer
<< /ID
% ReportLab generated PDF document -- digest (http://www.reportlab.com)
[(\371\300\304\374\242&eY\373\323\021\356\241\033"\261) (\371\300\304\374\242&eY\373\323\021\356\241\033"\261)]
/Info 31 0 R /Root 30 0 R /Size 52 >>
[(d\004\350\227\017\224\334\311#<k\343'\015\251\362) (d\004\350\227\017\224\334\311#<k\343'\015\251\362)]
/Info 34 0 R /Root 33 0 R /Size 58 >>
startxref
22174
26515
%%EOF