File:  [Coherent Logic Development] / freem_fileman / USER / DIM4.m
Revision 1.1: download - view: text, annotated - select for diffs
Mon Apr 28 14:13:20 2025 UTC (5 weeks, 4 days ago) by snw
Branches: MAIN
CVS tags: HEAD
Restructure repository

DIM4	;SFISC/JFW-MUMPS SYNTAX CHECKER ;3/20/91  5:21 PM
	;;21.0;VA FileMan;;Dec 28, 1994
	;Per VHA Directive 10-93-142, this routine should not be modified.
BK	I %ARG]"" S %=%ARG D ^DIM1 G ER:%ERR
	G GC^DIM
CL	G ER:%ERR I %ARG]"" F %Z=0:0 D S S %=%A D ^DIM1 G:%ARG=""!%ERR GC^DIM
IX	G GC^DIM:%ARG=""!%ERR D S S %L=":" D S1 I %C=%L S %=%A1 D ^DIM1 G ER:%A1=""!%ERR
	S %=%A D ^DIM1 G IX
ST	G GC^DIM:%ARG=""!%ERR D S G ER:%ERR!(%A=""&(%C=","))
	I %A?1"@".E S %=%A D ^DIM1 G ST
	S %L="=" D S1 G ER:(%A="")!(%A1="") S %=%A1 D ^DIM1 G ER:%ERR
	I %A?1"(".E1")" S %A=$E(%A,2,$L(%A)-1) G STM
	S %=%A D VV,^DIM1 G ST
STM	G ST:%ERR!(%A="") S %L="," D S1 G ER:%ERR!(%C=%L&(%A1=""))
	S %=%A D VV,^DIM1 S %A=%A1 G STM
RD	G GC^DIM:%ARG=""!%ERR D S G ER:%ERR!(%C=","&(%A=""))
	I "!#?"[$E(%A,1) S %I=0 D FRM G RD
	I %A?1"""".E G ER:$P(%A,"""",3)'="" S %=%A D ^DIM1 G RD
	I %A?1"*".E S %A=$E(%A,2,999)
	G ER:%A?1"^".E S %L=":" D S1 G ER:%ERR!(%C=%L&(%A1=""))!(%A="")
	S %=%A D VV,^DIM1 S %=%A1 D ^DIM1 G RD
WR	G GC^DIM:%ARG=""!%ERR D S G ER:%ERR!(%A=""&(%C=","))
	I "!#?"[$E(%A,1) S %I=0 D FRM G WR
	S:%A?1"*".E %A=$E(%A,2,999) S %=%A D ^DIM1 G WR
FRM	S %I=%I+1,%C=$E(%A,%I) Q:%C=""  I "!#?"'[%C S %ERR=1 Q
	G FRM:"!#"[%C S %=$E(%A,%I+1,999) D ^DIM1 Q
S	S (%A,%C)="" Q:%ERR  S (%ERR,%I)=0
INC	D %INC D QT:%C="""",P:%C="(" Q:%ERR  G OUT:","[%C,INC
QT	D %INC Q:%C=""""  G QT:%C]"" S %ERR=1 Q
P	S %P=1 F %J=0:0 D %INC D QT:%C="""" S %P=%P+$S(%C="(":1,%C=")":-1,1:0) Q:'%P  I %C="" S %ERR=1 Q
	Q
OUT	S %A=$E(%ARG,1,%I-1),%ARG=$E(%ARG,%I+1,999) Q
%INC	S %I=%I+1,%C=$E(%ARG,%I) Q
	;
S1	S (%A1,%C)="" Q:%ERR  S (%ERR,%I)=0
INCR	D %INC1 D QT1:%C="""",P1:%C="(" Q:%ERR  G OUT1:%L[%C,INCR
OUT1	S %A1=$E(%A,%I+1,999),%A=$E(%A,1,%I-1) Q
QT1	D %INC1 Q:%C=""""  G QT1:%C]"" S %ERR=1 Q
P1	S %P=1 F %J=0:0 D %INC1 D QT1:%C="""" S %P=%P+$S(%C="(":1,%C=")":-1,1:0) Q:'%P  I %C="" S %ERR=1 Q
	Q
%INC1	S %I=%I+1,%C=$E(%A,%I) Q
VV	I '%ERR,%]"",%'["@",%'?1U.UN,%'?1U.UN1"(".E1")",%'?1"%".UN1"(".E1")",%'?1"%".UN,%'?1"^"1U.UN1"(".E1")",%'?1"^%".UN1"(".E1")",%'?1"^(".E1")",%'?1"^"1U.UN,%'?1"$"1U,%'?1"$P".E!(%COM'="S") S %ERR=1
	Q
ER	G ER^DIM

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>