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