You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.0 KiB
96 lines
2.0 KiB
C Copyright(C) 1999-2020 National Technology & Engineering Solutions
|
|
C of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
|
|
C NTESS, the U.S. Government retains certain rights in this software.
|
|
C
|
|
C See packages/seacas/LICENSE for details
|
|
|
|
C=======================================================================
|
|
LOGICAL FUNCTION LXSCNP(DELIM,STR,NS,CH)
|
|
IMPLICIT INTEGER (A-Z)
|
|
CHARACTER*504 ILINE
|
|
COMMON /LXCOM1/ILINE
|
|
COMMON /LXCOM2/JLINE,LXINIT
|
|
CHARACTER*(*) DELIM
|
|
CHARACTER*(*) STR
|
|
INTEGER NS
|
|
CHARACTER CH
|
|
LOGICAL QFLAG
|
|
CHARACTER QCH
|
|
|
|
NS = 0
|
|
J = JLINE
|
|
LP = 0
|
|
QFLAG = .FALSE.
|
|
2600 CONTINUE
|
|
CH = ILINE(J:J)
|
|
IF (LP.EQ.0) THEN
|
|
ID = INDEX(DELIM,CH)
|
|
IF (ID.GT.0) THEN
|
|
GO TO 2620
|
|
|
|
END IF
|
|
|
|
END IF
|
|
|
|
IF (.NOT.QFLAG) THEN
|
|
IF (LP.EQ.0) THEN
|
|
ID = INDEX(DELIM,CH)
|
|
IF (ID.GT.0) THEN
|
|
GO TO 2620
|
|
|
|
END IF
|
|
|
|
END IF
|
|
|
|
IF (CH.EQ.CHAR(0)) THEN
|
|
GO TO 2620
|
|
|
|
ELSE IF (CH.EQ.'(' .OR. CH.EQ.'[' .OR. CH.EQ.'{') THEN
|
|
LP = LP + 1
|
|
|
|
ELSE IF (CH.EQ.')' .OR. CH.EQ.']' .OR. CH.EQ.'}') THEN
|
|
LP = LP - 1
|
|
|
|
ELSE IF (CH.EQ.'''' .OR. CH.EQ.'"' .OR. CH.EQ.CHAR(96)) THEN
|
|
QFLAG = .TRUE.
|
|
QCH = CH
|
|
END IF
|
|
|
|
IF (LP.LT.0) THEN
|
|
GO TO 2620
|
|
|
|
END IF
|
|
|
|
NS = NS + 1
|
|
STR(NS:NS) = CH
|
|
|
|
ELSE
|
|
NS = NS + 1
|
|
STR(NS:NS) = CH
|
|
IF (CH.EQ.CHAR(0)) THEN
|
|
GO TO 2620
|
|
|
|
ELSE IF (CH.EQ.QCH) THEN
|
|
IF (CH.EQ.ILINE(J+1:J+1)) THEN
|
|
NS = NS + 1
|
|
STR(NS:NS) = CH
|
|
J = J + 2
|
|
GO TO 2610
|
|
|
|
ELSE
|
|
QFLAG = .FALSE.
|
|
END IF
|
|
|
|
END IF
|
|
|
|
END IF
|
|
|
|
J = J + 1
|
|
2610 GO TO 2600
|
|
|
|
2620 CONTINUE
|
|
JLINE = J
|
|
LXSCNP = ((LP.EQ.0) .AND. .NOT.QFLAG)
|
|
RETURN
|
|
|
|
END
|
|
|