DECLARE FUNCTION GetCommandLineParem$ (t$, tp$, nm!)
DECLARE FUNCTION MathPro! (n$)
DECLARE FUNCTION ReplaceMid$ (t$, r$, s!, ln!)
DECLARE FUNCTION FindQuoteLength! (t$, s!)
DECLARE FUNCTION TRIMS$ (n!, t$)
's$=command$
's$ = "V 0"
IF UCASE$(LEFT$(s$, 7)) = "LENGTH(" THEN Instant = 1
IF INSTR(UCASE$(s$), "LENGTH(") <> 0 THEN ss = INSTR(UCASE$(s$), "LENGTH(") + 7: s$ = ReplaceMid$(s$, TRIMS$(FindQuoteLength(s$, ss), ""), ss - LEN("LENGHT(") - 1, LEN("LENGTH(") + FindQuoteLength(s$, ss) + 4)
IF UCASE$(LEFT$(s$, 4)) = "MID " THEN txt$ = GetCommandLineParem$(s$, "TEXT", 0): en = VAL(GetCommandLineParem$(s$, "END", 1)): st = VAL(GetCommandLineParem$(s$, "START", 1)): outParem$ = MID$(txt$, st, en - st)
IF UCASE$(LEFT$(s$, 3)) = "KEY" THEN outParem$ = INPUT$(1)
IF UCASE$(LEFT$(s$, 4)) = "STRG" THEN LINE INPUT outParem$
IF UCASE$(LEFT$(s$, 5)) = MID$(s$, 1, 4) + "U" THEN outParem$ = UCASE$(outParem$)
IF UCASE$(LEFT$(s$, 5)) = MID$(s$, 1, 4) + "L" THEN outParem$ = LCASE$(outParem$)
IF UCASE$(LEFT$(s$, 4)) = "KEYP" THEN PRINT outParem$
IF UCASE$(LEFT$(s$, 2)) = "U " THEN outParem$ = UCASE$(RIGHT$(s$, LEN(s$) - 2))
IF UCASE$(LEFT$(s$, 2)) = "L " THEN outParem$ = LCASE$(RIGHT$(s$, LEN(s$) - 2))
IF UCASE$(LEFT$(s$, 3)) = "FC " THEN COLOR VAL(RIGHT$(s$, LEN(s$) - 3))
IF UCASE$(LEFT$(s$, 3)) = "BC " THEN COLOR , VAL(RIGHT$(s$, LEN(s$) - 3))
IF UCASE$(LEFT$(s$, 2)) = "V " THEN SCREEN VAL(RIGHT$(s$, LEN(s$) - 2))
IF Instant = 1 THEN outParem$ = s$


PRINT outParem$

FUNCTION FindQuoteLength (t$, s)
FOR q = s TO LEN(t$)
IF MID$(t$, q, 1) = CHR$(34) THEN OpenedQuote = (NOT OpenedQuote): q = q + (OpenedQuote) * -1
IF OpenedQuote THEN Cnt = Cnt + 1 ELSE EXIT FOR
NEXT q
FindQuoteLength = Cnt
END FUNCTION

FUNCTION GetCommandLineParem$ (t$, tp$, nm)
x = INSTR(UCASE$(t$), "/" + UCASE$(tp$) + ":") + LEN("/" + tp$ + ":")
IF nm = 0 THEN tl = FindQuoteLength(t$, x): m = 1 ELSE tl = INSTR(x, t$, " ") - x: m = 0
man$ = MID$(t$, x + m, tl)
IF nm = 0 = 0 THEN man$ = TRIMS$(MathPro(man$), "")
GetCommandLineParem$ = man$
END FUNCTION

FUNCTION MathPro (n$)
FOR q = 1 TO LEN(n$)
IF (MID$(n$, q, 1) = TRIMS$(VAL(MID$(n$, q, 1)), "")) = 0 = -1 AND op$ = "-" = -1 = -1 THEN Ouut = Ouut + (psdta - VAL(dd$)): psdta = 0
IF (MID$(n$, q, 1) = TRIMS$(VAL(MID$(n$, q, 1)), "")) = 0 = -1 AND op$ = "+" = -1 = -1 THEN Ouut = Ouut + (psdta + VAL(dd$)): psdta = 0
IF (MID$(n$, q, 1) = TRIMS$(VAL(MID$(n$, q, 1)), "")) = 0 = -1 AND op$ = "/" = -1 = -1 THEN Ouut = Ouut + (psdta / VAL(dd$)): psdta = 0
IF (MID$(n$, q, 1) = TRIMS$(VAL(MID$(n$, q, 1)), "")) = 0 = -1 AND op$ = "*" = -1 = -1 THEN Ouut = Ouut + (psdta * VAL(dd$)): psdta = 0
IF (MID$(n$, q, 1) = TRIMS$(VAL(MID$(n$, q, 1)), "")) = 0 = -1 THEN op$ = MID$(n$, q, 1): psdta = VAL(dd$): dd$ = "": q = q + 1
'PRINT Ouut; psdta; VAL(dd$); op$
dd$ = dd$ + MID$(n$, q, 1)
NEXT q
IF (MID$(n$, q, 1) = TRIMS$(VAL(MID$(n$, q, 1)), "")) = 0 = -1 AND op$ = "-" = -1 = -1 THEN Ouut = Ouut + (psdta - VAL(dd$)): psdta = 0
IF (MID$(n$, q, 1) = TRIMS$(VAL(MID$(n$, q, 1)), "")) = 0 = -1 AND op$ = "+" = -1 = -1 THEN Ouut = Ouut + (psdta + VAL(dd$)): psdta = 0
IF (MID$(n$, q, 1) = TRIMS$(VAL(MID$(n$, q, 1)), "")) = 0 = -1 AND op$ = "/" = -1 = -1 THEN Ouut = Ouut + (psdta / VAL(dd$)): psdta = 0
IF (MID$(n$, q, 1) = TRIMS$(VAL(MID$(n$, q, 1)), "")) = 0 = -1 AND op$ = "*" = -1 = -1 THEN Ouut = Ouut + (psdta * VAL(dd$)): psdta = 0
IF (MID$(n$, q, 1) = TRIMS$(VAL(MID$(n$, q, 1)), "")) = 0 = -1 THEN psdta = VAL(dd$): dd$ = "": q = q + 1
MathPro = Ouut
'PRINT Ouut; psdta; VAL(dd$); op$
IF op$ = "" THEN MathPro = VAL(n$)
END FUNCTION

FUNCTION ReplaceMid$ (t$, r$, s, ln)
ReplaceMid$ = LEFT$(t$, s) + r$ + MID$(t$, s + ln, LEN(t$) - (s + ln) + 1)
END FUNCTION

FUNCTION TRIMS$ (n, t$)
IF t$ = "" THEN TRIMS$ = LTRIM$(RTRIM$(STR$(n))) ELSE TRIMS$ = LTRIM$(RTRIM$(t$))
END FUNCTION

