genstat.py lexer example

Example code file from GenStat Release 10 documentation.

" Example DGRA-7: Drawing a weather map

      This example draws a map of Great Britain with wind speed and
      direction indicated at various points."

FILEREAD [NAME='%gendir%/examples/DGRA-7.DAT'] X,Y
XAXIS 1; LOWER=0; UPPER=7000; MARK=!(0,1000...7000)
YAXIS 1; LOWER=0; UPPER=10000; MARK=!(0,1000...10000)
FRAME [GRID=xy] 1; YLOWER=0; YUPPER=1; XLOWER=0; XUPPER=0.7
PEN 1; SYMBOL=0; METHOD=open; JOIN=given; LINESTYLE=1
DGRAPH [KEYWINDOW=0; TITLE='Wind speed'] Y; X

" Add arrows of different sizes and angles at different places"
DELETE [REDEFINE=yes] Y,X
SCALAR N,P; 35,5     " no. units, no. points in shapes "
MATRIX [ROWS=P; COLUMNS=N] XX,YY
DIAGONAL [ROWS=N] Size
POINTER [NVALUES=!T(X,Y)] At,Shape
MATRIX [ROWS=1; COLUMNS=N] Angle,At[]
MATRIX [ROWS=P; COLUMNS=1] Onep,Shape[]; VALUES=!((1)#P),(*)2
READ Shape[]
 0.0  0.0
 0.0  1.0
-0.25 0.75
 0.0  1.0
 0.25 0.75 :
OPEN '%gendir%/examples/DGRA-7A.DAT'; CHANNEL=data7
READ [CHANNEL=data7] At[],Size,Angle
CLOSE data7
CALC Rad = ARCCOS(0.5)/60.0
CALC XX,YY = (Shape['X','Y']*+COS(Angle*Rad)+    \
             (-1,+1)*Shape['Y','X']*+SIN(Angle*Rad))*+(Size)*6    \
             +Onep*+At['X','Y']
VARIATE [P] Xg[1...N],Yg[1...N]
CALC Xg[1...N] = XX$[*;1...N]
CALC Yg[1...N] = YY$[*;1...N]

PEN 1; LINESTYLE=1; SYMBOL=0; METHOD=line; JOIN=given; CLINE=2
DGRAPH [SCREEN=keep; KEYWINDOW=0] Yg[]; Xg[]; PEN=1
"
PEN 1;  LINE=1; CLINE=2; ROT=RADIAN(!(#Angle)); SIZE=!(#Size)/10; SYMBOL=Shape; METH=point; JOIN=given
DGRAPH [SCREEN=keep; KEYWINDOW=0] At['Y']; At['X']; PEN=1"

genstat.py/Example.gen

genstat.py/Example (last edited 2011-03-25 12:53:08 by IanRiley)