View previous topic :: View next topic |
Author |
Message |
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Mon Mar 17, 2003 5:08 pm Post subject: Code checker (IF, REPEAT, WHILE, brackets, and vars) |
|
|
Added mismatched bracket and quote marks checking, and find
vars routine (the find vars routine is faster than my old variable
finder program).
Tip - if you compile this and put it in your VDS tools folder, it will
be added to your VDS IDE Tools menu.
- Checks IF/END, REPEAT/UNTIL, WHILE/WEND commands, checks for
mismatched brackets (parenthesis, braces, square brackets), checks
for mismatched quotes, and finds variables.
- Shows number of brackets missing, what line, and whether LEFT or
RIGHT.
- Finds largest nesting depth of IF, REPEAT, WHILE, and GOSUB
commands (traces subroutines for nested depths).
- Portions of code may be copied from clipboard and checked.
- Displays IF/END, REPEAT/UNTIL, and WHILE/WEND in indented form.
- Results may be saved to file or copied to clipboard.
- Program window is resizable.
NOTES:
- Does not check brackets and vars between quotes, so make sure
quote marks match first.
- Nesting depth may not be 100% accurate in cases where
subroutines are exited on IF conditions.
- If your program uses a variable in a GOTO command (such as
"goto %e" etc.), the code checker will see this as an error because
it has no way of knowing the value of the variable.
____________________________________________________________________________________________________________________________________________________________________________________________________________________
Code: |
rem -- VDS3 and VDS4 compatible --
OPTION SCALE, 96
OPTION DECIMALSEP, "."
%%width = @diff(@sysinfo(SCREENWIDTH), 10)
TITLE By Mac
DIALOG CREATE, "Mac's Code Syntax Checker",-1,0,%%width,300,RESIZABLE
%%hwnd = @winexists("Mac's Code Syntax Checker")
DIALOG ADD,STYLE,S1,MS Sans Serif,8,B
DIALOG ADD,STYLE,S2,Courier new,9
DIALOG ADD,MENU,&Source,&File|Ctrl+F,&Clipboard|Ctrl+V,-,E&xit|Alt+X
DIALOG ADD,MENU,&Results,&Save Results|Ctrl+S,Copy Results|Ctrl+C
DIALOG ADD,MENU,&Check,&Check Code Pairs,Check Pairs and &Trace,Check Brackets,Check Quotes,Find Variables
DIALOG ADD,MENU,&Help,&Help
DIALOG ADD,LIST,L1,0,0,@div(%%width, 2),280,,S2
DIALOG ADD,LIST,L2,0,@div(%%width, 2),@div(%%width, 2),280,,S1,CLICK
rem -- Add horizontal scroll to lists --
%z = @sendmsg(@winexists(~L1),$0194,2000,0)
%z = @sendmsg(@winexists(~L2),$0194,2000,0)
DIALOG ADD,STATUS,Stat,"Ready...",S1
DIALOG SHOW
rem -- load from command line --
if @file(%1)
LIST LOADFILE, L1, %1
%f = %1
end
rem -- main code working list --
LIST CREATE, 1
rem -- results working list --
LIST CREATE, 2
rem -- store line number of subprocedures while tracing --
LIST CREATE, 3
rem -- sorted list (removes variable duplicates) --
LIST CREATE, 4, SORTED
rem -- possible variable chars --
%%vchars = "0123456789_abcdefghijklmnopqrstuvwxyz"
%e = @event()
:EVLOOP
DIALOG SET, Stat, "Ready... "%f @count(L1) lines
WAIT EVENT
PARSE "%e;%d", @event(d)
goto %e
:RESIZE
DIALOG SETPOS,L1,0,0,@div(@winpos(%%hwnd,W), 2),@diff(@winpos(%%hwnd,H), 66)
DIALOG SETPOS,L2,0,@div(@winpos(%%hwnd,W), 2),@diff(@div(@winpos(%%hwnd,W), 2), 7),@diff(@winpos(%%hwnd,H), 66)
goto EVLOOP
:L2CLICK
OPTION FIELDSEP, "#"
PARSE ";%l", @item(L2)
if @both(@numeric(%l), @greater(@count(L1), @pred(%l)))
LIST SEEK, L1, @pred(%l)
end
OPTION FIELDSEP, "|"
goto EVLOOP
:FileMENU
%f = @filedlg()
if @file(%f)
LIST LOADFILE, L1, %f
LIST CLEAR, L2
else
INFO No valid file...@tab()
end
goto EVLOOP
:Check Pairs and TraceMENU
%%trace = 1
:Check Code PairsMENU
if @greater(1, @count(L1))
%%trace = ""
INFO Nothing loaded...@tab()
goto EVLOOP
end
LIST ASSIGN, 1, L1
LIST CLEAR, L2
rem -- Loop straight thru first, counting all
rem -- IF/ELSE/ELSIF/END, REPEAT/UNTIL, WHILE/WEND and GOSUBs.
%%ifnum = 0
%%elsenum = 0
%%elsifnum = 0
%%endnum = 0
%%repeatnum = 0
%%untilnum = 0
%%whilenum = 0
%%wendnum = 0
%%gosubnum = 0
%x = 0
REPEAT
DIALOG SET, Stat, Checking @succ(%x) of @count(1) lines...
%s = @trim(@item(1, %x))
if @equal(@substr(%s, 1,2), "IF")
%%ifnum = @succ(%%ifnum)
end
if @equal(@substr(%s, 1,4), "ELSE")
%%elsenum = @succ(%%elsenum)
end
if @equal(@substr(%s, 1,5), "ELSIF")
%%elsifnum = @succ(%%elsifnum)
end
if @equal(@substr(%s, 1,3), "END")
%%endnum = @succ(%%endnum)
end
if @equal(@substr(%s, 1,6), "REPEAT")
%%repeatnum = @succ(%%repeatnum)
end
if @equal(@substr(%s, 1,5), "UNTIL")
%%untilnum = @succ(%%untilnum)
end
if @equal(@substr(%s, 1,5), "WHILE")
%%whilenum = @succ(%%whilenum)
end
if @equal(@substr(%s, 1,4), "WEND")
%%wendnum = @succ(%%wendnum)
end
if @equal(@substr(%s, 1,5), "GOSUB")
%%gosubnum = @succ(%%gosubnum)
end
%x = @succ(%x)
UNTIL @equal(%x, @count(1))
if @not(%%trace)
goto SkipTrace
end
rem -- Trace thru program following GOSUB commands --
%%ifcount = 0
%%ifmax = 0
%%repeatcount = 0
%%repeatmax = 0
%%whilecount = 0
%%whilemax = 0
%%submax = 0
%%indent = 0
%%curpos = 0
%%loop = 0
REPEAT
if @greater(@count(1), %%curpos)
LIST SEEK, 1, %%curpos
end
%s = @trim(@item(1))
GOSUB CheckCommands
%%curpos = @succ(%%curpos)
%%loop = @succ(%%loop)
DIALOG SET, Stat, Tracing line @succ(@index(1)) of @count(1) lines...
UNTIL @greater(%%loop, @count(1)) @event()
:SkipTrace
LIST ASSIGN, L2, 2
LIST ADD, L2, "______________________________________"
LIST ADD, L2, ""
LIST ADD, L2, "IF/END/ELSE/ELSIF:"
if @not(@equal(%%ifnum, %%endnum))
LIST ADD, L2, " *** ERROR - Mismatched IF/END ***"
end
LIST ADD, L2, " "IF: %%ifnum
LIST ADD, L2, " "END: %%endnum
LIST ADD, L2, " "ELSE: %%elsenum
LIST ADD, L2, " "ELSIF: %%elsifnum
if %%trace
LIST ADD, L2, " "Deepest nest: %%ifmax
end
LIST ADD, L2, ""
LIST ADD, L2, "REPEAT/UNTIL:"
if @not(@equal(%%repeatnum, %%untilnum))
LIST ADD, L2, " *** ERROR - Mismatched REPEAT/UNTIL ***"
end
LIST ADD, L2, " "REPEAT: %%repeatnum
LIST ADD, L2, " "UNTIL: %%untilnum
if %%trace
LIST ADD, L2, " "Deepest nest: %%repeatmax
end
LIST ADD, L2, ""
LIST ADD, L2, "WHILE/WEND:"
if @not(@equal(%%whilenum, %%wendnum))
LIST ADD, L2, " *** ERROR - Mismatched WHILE/WEND ***"
end
LIST ADD, L2, " "WHILE: %%whilenum
LIST ADD, L2, " "WEND: %%wendnum
if %%trace
LIST ADD, L2, " "Deepest nest: %%whilemax
end
LIST ADD, L2, ""
LIST ADD, L2, "SUBPROCEDURES:"
LIST ADD, L2, " "GOSUB: %%gosubnum
if %%trace
LIST ADD, L2, " "Deepest nest: %%submax
end
LIST ADD, L2, ""
LIST CLEAR, 1
LIST CLEAR, 2
LIST CLEAR, 3
%%trace = ""
goto EVLOOP
:Check BracketsMENU
if @greater(1, @count(L1))
INFO Nothing loaded...@tab()
goto EVLOOP
end
LIST ASSIGN, 1, L1
LIST CLEAR, L2
%x = 0
REPEAT
DIALOG SET, Stat, Checking @succ(%x) of @count(1) lines...
rem -- count left and right brackets --
if @greater(@len(@item(1, %x)), 0)
rem -- parenthesis --
%%left_parenth = 0
%%right_parenth = 0
rem -- braces { } --
%%left_brace = 0
%%right_brace = 0
rem -- square brackets --
%%left_bracket = 0
%%right_bracket = 0
%y = 1
REPEAT
rem -- skip quoted strings --
if @equal(@substr(@item(1, %x), %y), @chr(34))
REPEAT
%y = @succ(%y)
UNTIL @greater(%y, @len(@item(1, %x)))@equal(@substr(@item(1, %x), %y), @chr(34))
end
if @equal(@substr(@item(1, %x), %y), "(")
%%left_parenth = @succ(%%left_parenth)
end
if @equal(@substr(@item(1, %x), %y), ")")
%%right_parenth = @succ(%%right_parenth)
end
if @equal(@substr(@item(1, %x), %y), "{")
%%left_brace = @succ(%%left_brace)
end
if @equal(@substr(@item(1, %x), %y), "}")
%%right_brace = @succ(%%right_brace)
end
if @equal(@substr(@item(1, %x), %y), "[")
%%left_bracket = @succ(%%left_bracket)
end
if @equal(@substr(@item(1, %x), %y), "]")
%%right_bracket = @succ(%%right_bracket)
end
%y = @succ(%y)
UNTIL @greater(%y, @len(@item(1, %x)))
if @not(@equal(%%left_parenth, %%right_parenth))
if @greater(%%left_parenth, %%right_parenth)
LIST ADD, L2, @diff(%%left_parenth, %%right_parenth)" missing RIGHT parenthesis ')' line # "@succ(%x)
else
LIST ADD, L2, @diff(%%right_parenth, %%left_parenth)" missing LEFT parenthesis '(' line # "@succ(%x)
end
end
if @not(@equal(%%left_brace, %%right_brace))
if @greater(%%left_brace, %%right_brace)
LIST ADD, L2, @diff(%%left_brace, %%right_brace)" missing RIGHT braces '}' line # "@succ(%x)
else
LIST ADD, L2, @diff(%%right_brace, %%left_brace)" missing LEFT braces '{' line # "@succ(%x)
end
end
if @not(@equal(%%left_bracket, %%right_bracket))
if @greater(%%left_bracket, %%right_bracket)
LIST ADD, L2, @diff(%%left_bracket, %%right_bracket)" missing RIGHT square brackets ']' line # "@succ(%x)
else
LIST ADD, L2, @diff(%%right_bracket, %%left_bracket)" missing LEFT square brackets '[' line # "@succ(%x)
end
end
end
%x = @succ(%x)
UNTIL @greater(%x, @pred(@count(1)))
if @greater(1, @count(L2))
LIST ADD, L2, "No mismatched brackets found"
end
goto EVLOOP
:Check QuotesMENU
if @greater(1, @count(L1))
INFO Nothing loaded...@tab()
goto EVLOOP
end
LIST ASSIGN, 1, L1
LIST CLEAR, L2
%x = 0
REPEAT
DIALOG SET, Stat, Checking @succ(%x) of @count(1) lines...
rem -- count quotes and divide by 2 --
if @greater(@len(@item(1, %x)), 0)
%s = @trim(@item(1, %x))
%%quotes = 0
rem -- skip first char to allow for LOADTEXT --
%y = 2
REPEAT
if @equal(@substr(%s, %y), @chr(34))
%%quotes = @succ(%%quotes)
end
%y = @succ(%y)
UNTIL @greater(%y, @len(%s))
if @greater(@mod(%%quotes, 2), 0)
LIST ADD, L2, "Mismatched quotation marks line # "@succ(%x)
end
end
%x = @succ(%x)
UNTIL @greater(%x, @pred(@count(1)))
if @greater(1, @count(L2))
LIST ADD, L2, "No mismatched quotation marks found"
end
goto EVLOOP
:Find VariablesMENU
if @greater(1, @count(L1))
INFO Nothing loaded...@tab()
goto EVLOOP
end
LIST ASSIGN, 1, L1
LIST CLEAR, L2
LIST CLEAR, 4
%x = 0
REPEAT
DIALOG SET, Stat, Checking @succ(%x) of @count(1) lines...
rem -- find vars --
if @greater(@len(@item(1, %x)), 0)
%%var = ""
%y = 1
REPEAT
rem -- skip quoted strings --
if @equal(@substr(@item(1, %x), %y), @chr(34))
REPEAT
%y = @succ(%y)
UNTIL @greater(%y, @len(@item(1, %x)))@equal(@substr(@item(1, %x), %y), @chr(34))
end
if @equal(@substr(@item(1, %x), %y), "%")
rem -- user defined --
if @equal(@substr(@item(1, %x), @succ(%y)), "%")
%%var = %%var@substr(@item(1, %x), %y)
%y = @succ(%y)
REPEAT
%%var = %%var@substr(@item(1, %x), %y)
%y = @succ(%y)
UNTIL @greater(%y, @len(@item(1, %x)))@equal(@pos(@substr(@item(1, %x), %y), %%vchars), 0)
if @equal(@substr(@item(1, %x), %y), "%")
%y = @pred(%y)
end
else
rem -- check for standard vars a-z --
if @greater(@pos(@substr(@item(1, %x), @succ(%y)), %%vchars), 0)
%%var = %%var@substr(@item(1, %x), %y)@substr(@item(1, %x), @succ(%y))
%y = @succ(%y)
end
end
if @greater(@len(%%var), 1)
LIST ADD, 4, %%var
%%var = ""
end
end
%y = @succ(%y)
UNTIL @greater(%y, @len(@item(1, %x)))
end
%x = @succ(%x)
UNTIL @greater(%x, @pred(@count(1)))
if @greater(1, @count(4))
LIST ADD, 4, "No variables found"
else
LIST ADD, 4, "--" @count(4)" variables found --"
end
LIST ASSIGN, L2, 4
LIST CLEAR, 4
goto EVLOOP
:ClipboardMENU
LIST PASTE, L1
LIST CLEAR, L2
if @greater(@count(L1), 0)
INFO Code loaded from clipboard...@tab()
else
INFO Clipboard is empty...@tab()
end
goto EVLOOP
:Save ResultsMENU
%g = @filedlg(,,,SAVE)
if @file(%g)
LIST SAVEFILE, L2, %g
end
goto EVLOOP
:Copy ResultsMENU
if @greater(@count(L2), 0)
LIST COPY, L2
INFO Results copied to clipboard...@tab()
else
INFO Nothing to copy...@tab()
end
goto EVLOOP
:HelpMenu
if @winexists("Code Checker by Mac")
goto EVLOOP
end
%h = " Features:"@cr()
%h = %h" - Checks IF/END, REPEAT/UNTIL, WHILE/WEND commands, checks for"@cr()
%h = %h" mismatched brackets, mismatched quotes, and finds variables."@cr()
%h = %h" - Finds largest nesting depth of IF, REPEAT, WHILE, and GOSUB"@cr()
%h = %h" commands (traces subroutines for nested depths)."@cr()
%h = %h" - Portions of code may be copied from clipboard and checked."@cr()
%h = %h" - Displays IF/END, REPEAT/UNTIL, and WHILE/WEND in indented form."@cr()
%h = %h" - Results may be saved to file or copied to clipboard."@cr()
%h = %h" - Program window is resizable."@cr()@cr()
%h = %h" Instructions:"@cr()
%h = %h" - To load VDS source code: select "@chr(34)Source@chr(34)" menu, then choose "@cr()
%h = %h" "@chr(34)File@chr(34)" or "@chr(34)Clipboard@chr(34).@cr()
%h = %h" - To check code: select "@chr(34)Check@chr(34)" menu, then choose "@chr(34)Check Code Pairs@chr(34)@cr()
%h = %h" to count code pairs (IF/END etc.) or "@chr(34)Check Pairs and Trace@chr(34) to@cr()
%h = %h" count code pairs AND trace thru code to check nesting depth."@cr()
%h = %h" - To save/copy results: select "@chr(34)Results@chr(34)" menu, then choose "@cr()
%h = %h" "@chr(34)Save Results@chr(34)" or "@chr(34)Copy Results@chr(34).@cr()@cr()
%h = %h" Notes:"@cr()
%h = %h" - Source code is shown on the left, results on the right."@cr()
%h = %h" - Unmatched IF/END, REPEAT/UNTIL, or WHILE/WEND routines may"@cr()
%h = %h" cause faulty nesting info, so correct these errors first."@cr()
%h = %h" - When showing largest nesting depth, the first one is shown"@cr()
%h = %h" if more than one are that size."@cr()
%h = %h" - Program does NOT indicate location of missing IF/END,"@cr()
%h = %h" REPEAT/UNTIL, or WHILE/WEND commands."@cr()
DIALOG CREATE,"Code Checker by Mac",-1,0,580,440,NOMIN
DIALOG ADD,STYLE,StyleC1,Courier New,10,B,YELLOW
DIALOG ADD,TEXT,Help,0,0,580,440,,StyleC1
DIALOG SHOW
DIALOG SET, Help, %h
%h = ""
DIALOG SELECT, 0
goto EVLOOP
:ExitMENU
:CLOSE
if @greater(%d, 0)
DIALOG SELECT, %d
DIALOG CLOSE
rem -- Kill any extra events -
%e = @event()
goto EVLOOP
end
EXIT
rem ---------- SUB ------------
:CheckCommands
if @greater(@count(2), 0)
LIST SEEK, 2, 0
if @match(2, "line # "@succ(@index(1)))
exit
end
end
%%pad = ""
if @equal(@substr(%s, 1,5), "GOSUB")
%%indent = @succ(%%indent)
GOSUB Pad
LIST ADD, 2, %%pad"GOSUB - line # "@succ(@index(1))
rem -- Line we return to --
LIST ADD, 3, %%curpos
rem -- Count largest subproc nesting --
if @greater(@count(3), %%submax)
%%submax = @count(3) - line # @succ(@item(3, 0))
end
%%sub = ":"@trim(@substr(%s, 6, @len(%s)))
GOSUB SeekSub
end
rem -- Check for subroutine exit --
if @both(@greater(@count(3), 0), @equal(@substr(%s, 1,4), "EXIT"))
LIST SEEK, 3, @pred(@count(3))
%%curpos = @item(3)
%%loop = %%curpos
LIST DELETE, 3
GOSUB Pad
LIST ADD, 2, %%pad"EXIT = "@succ(@index(1))
if @greater(%%indent, 0)
%%indent = @pred(%%indent)
end
end
if @equal(@substr(%s, 1, 2), "IF")
%%ifcount = @succ(%%ifcount)
%%indent = @succ(%%indent)
if @greater(%%ifcount, %%ifmax)
%%ifmax = %%ifcount - line # @succ(@index(1))
end
GOSUB Pad
LIST ADD, 2, %%pad"IF - line # "@succ(@index(1))
end
if @equal(@substr(%s, 1, 4), "ELSE")
GOSUB Pad
LIST ADD, 2, %%pad"ELSE - line # "@succ(@index(1))
end
if @equal(@substr(%s, 1, 5), "ELSIF")
GOSUB Pad
LIST ADD, 2, %%pad"ELSIF - line # "@succ(@index(1))
end
if @equal(@substr(%s, 1, 3), "END")
if @greater(%%ifcount, 0)
%%ifcount = @pred(%%ifcount)
end
GOSUB Pad
LIST ADD, 2, %%pad"END - line # "@succ(@index(1))
if @greater(%%indent, 0)
%%indent = @pred(%%indent)
end
end
if @equal(@substr(%s, 1, 6), "REPEAT")
%%repeatcount = @succ(%%repeatcount)
%%indent = @succ(%%indent)
if @greater(%%repeatcount, %%repeatmax)
%%repeatmax = %%repeatcount - line # @succ(@index(1))
end
GOSUB Pad
LIST ADD, 2, %%pad"REPEAT - line # "@succ(@index(1))
end
if @equal(@substr(%s, 1, 5), "UNTIL")
if @greater(%%repeatcount, 0)
%%repeatcount = @pred(%%repeatcount)
end
GOSUB Pad
LIST ADD, 2, %%pad"UNTIL - line # "@succ(@index(1))
if @greater(%%indent, 0)
%%indent = @pred(%%indent)
end
end
if @equal(@substr(%s, 1, 5), "WHILE")
%%whilecount = @succ(%%whilecount)
%%indent = @succ(%%indent)
if @greater(%%while, %%whilemax)
%%whilemax = %%while - line # @succ(@index(1))
end
GOSUB Pad
LIST ADD, 2, %%pad"REPEAT - line # "@succ(@index(1))
end
if @equal(@substr(%s, 1, 4), "WEND")
if @greater(%%whilecount, 0)
%%whilecount = @pred(%%whilecount)
end
GOSUB Pad
LIST ADD, 2, %%pad"WEND - line # "@succ(@index(1))
if @greater(%%indent, 0)
%%indent = @pred(%%indent)
end
end
exit
:SeekSub
%%found = ""
%x = 0
REPEAT
if @greater(@pos(%%sub, @item(1, %x)), 0)
if @equal(@trim(@item(1)), %%sub)
%%curpos = @index(1)
%%found = 1
end
end
%x = @succ(%x)
UNTIL %%found @equal(%x, @count(1))
if @not(%%found)
WARN CODE ERROR - Cannot find label @chr(34)%%sub@chr(34)@tab()
end
exit
:Pad
if @greater(%%indent, 1)
REPEAT
%%pad = %%pad" "
UNTIL @equal(@len(%%pad), @diff(@prod(%%indent, 5), 5))@greater(@len(%%pad), @prod(%%indent, 5))
end
exit
|
EDIT1 - Repaired bug in find vars routine that wouldn't separate vars
crammed together together - such as %a%b%c.
EDIT2 - Added command line file loading - it now loads the DSC file in
the VDS IDE when opened from the IDE Tools menu.
EDIT3 - Added code to show command line filename in status bar.
EDIT4 - OOPS - repaired bug when cramming user defined vars
together such as %%test1%%test2%%test3.
EDIT5 - Added code to make sure standard var is acceptable char.
Cheers, Mac _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
Last edited by Mac on Tue Mar 18, 2003 1:31 am; edited 5 times in total |
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Mon Mar 17, 2003 7:30 pm Post subject: |
|
|
Added some more stuff:
Checks for all mismatched brackets (parenthesis, braces, and square
brackets), and tells ya the line number, number of brackets missing,
and if they're LEFT or RIGHT brackets.
Checks for mismatched quotation marks (without tripping over LOADTEXT
commands).
Read the program description and notes for more info.
Cheers, Mac _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
|
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Mon Mar 17, 2003 10:52 pm Post subject: |
|
|
Repaired bug in find vars routine that wouldn't separate vars
crammed together together - such as %a%b%c, etc.
Cheers, Mac _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
|
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Mon Mar 17, 2003 11:24 pm Post subject: |
|
|
Added command line file loading - it now loads the DSC file in
the VDS IDE when opened from the IDE Tools menu.
Or ya can create a shortcut to the code checker in the "Send To"
folder.
BTW, ya might be surprised if ya run all your code thru this program.
The VDS run/debugger error check doesn't seem to catch all cases
of mismatched brackets, and some programs run with these errors...
Cheers, Mac _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
|
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Tue Mar 18, 2003 12:09 am Post subject: |
|
|
OOPS - repaired bug when cramming user defined vars
together such as %%test1%%test2%%test3. Forgot to
test for this earlier... _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
|
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Tue Mar 18, 2003 1:39 am Post subject: |
|
|
Added code to test that standard vars are valid chars - this prevents
mistaking invalid strings such as "%?" for vars.
For example:
Code: |
if @ask(Is this the correct %?)
goto nextProcedure
end
|
Cheers, Mac _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You can attach files in this forum You can download files in this forum
|
|