Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: e1c85798a5
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 149 lines (121 sloc) 2.647 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
%!PS-Adobe-2.0 EPSF-1.2
%%BoundingBox: -5 75 342 315
%%Creator: Gisle Aas (Copyright 1998), Reini Urban (Copyright 2009, 2010, 2011)

%require "common.ps"
%require "sv.ps"
%require "box.ps"
%require "rect.ps"
%require "mws.ps"
%require "ptr.ps"
%require "he-typed.ps"
%require "chararray.ps"
%require "break.ps"

0 300 sv
% arrow from sv_u.pvx
/Helvetica-Bold 9 SF
2 262 10 add M (TYPED) show
5 262 M (ARRAY) show
42 265 47 265 47 310 135 310 135 300 ptrn

/Courier 8 SF
40 302 M (hv) rshow
105 302 M (xpvhv) rshow

% gsave 0.8 setgray 55 285 105 300 rect F grestore
% 55 300 3 4 newbox
55 300 4 box

/Helvetica 11 SF
60 303 15 sub M
[(STASH) (MAGIC) (KEYS) (MAX)] {
    gsave
    currentpoint 30 mws pop
    grestore
    0 -15 RM
} forall

% Some pointer arrows
% 97.5 292.5 130 ptr1 % ARRAY
%97.5 217.5 130 ptr1 % MAGIC
%97.5 202.5 130 ptr1 % STASH

% HE*[] box
gsave
   0.8 setgray
   130 285 140 300 rect F
   150 285 240 300 rect F
grestore
gsave
   yellow
   240 285 250 300 rect F
grestore

0.5 setlinewidth
140 10 240 {
   dup dup 285 M 300 L S
   5 sub 292.5 ptrn % NULL pointer marks
} for
245 292.5 ptrn % last NULL pointer

1 LW
130 285 250 300 rect S

/Courier 8 SF
240 302 M (HE*[]) rshow
242 302 M (MAX+1) show

183 300 break

% HvAUX at HE* max+1
% (RITER)(EITER)(PMROOT)(NAME)
% xpvhv_aux box
% 275 300 1 6 newbox
275 300 6 box
325 302 M (xpvhv_aux) rshow

/Helvetica 11 SF
280 303 15 sub M
[(NAME)(BACKREFS)(EITER)(RITER)(name_count)(MROMETA)] {
    gsave
    currentpoint 40 mws pop
    grestore
    0 -15 RM
} forall
% Pointer from HE max+1 to aux
245 292.5 275 292.5 ptrn

gsave 0.3 setgray [4 3] 2 setdash
  325 262.5 340 262.5 340 77
  115 77 115 230 130 230 ptrn % EITER
grestore

325 292.5 332 292.5 332 195 277 195 277 185 ptrn % NAME
% NAME string
gsave
   275 185 translate 0.8 dup scale
   0 0 [(F)(o)(o)(:)(:)(B)(a)(r)(\\0)] chararray
grestore

% Pointer to first HE column
145 292.5 145 235 ptrn

gsave
  130 235 translate
  0.8 dup scale

  0 0 (abc) true he
  0 -70 (foobar) true he
  0 -140 (baz) false he
grestore


% Pointer to second HE column
% 225 292.5 255 250 ptrn
% gsave
% 245 250 translate
% 0.4 dup scale
% 0 0 (foo) true he
% 0 -70 (bar) false he
% grestore

% Illustrate FILL/MAX
gsave

% white background for the red arrow
1 setgray
130 261 230 264 rect fill %FILL
130 246 240 249 rect fill %MAX

red
0.5 setlinewidth

% FILL stuff
%140 260 M 140 265 L
%140 262.5 M 150 262.5 L
%150 265 M 150 265 L

% MAX length
130 250 M 130 245 L
130 247.5 M 240 247.5 L
240 250 M 240 245 L
stroke
240 247.5 M 236 249 L 236 246 L closepath fill
%130 262.5 M 134 264 L 134 261 L closepath fill
grestore


Something went wrong with that request. Please try again.