Code archives/Miscellaneous/QuoteLint

This code has been declared by its author to be Public Domain code.

Download source code

QuoteLint by MuffinRemnant2004
Find missing or spurious quotemarks in your .bb code - unterminated strings are accepted by the compiler but can cause difficult to trace errors. If you have an unfathomable bug it *might* be worth run your source through this simple utility.
; Name: quotelint.bb

; Author: MuffinRemnant

; Date: 11/01/2004

; Description: A small utility to check a given source file
; for mis-matched quotes - it just checks there are an even
; number of quotes on each source line.

; Notes: Blitz will accept unterminated strings in sourcecode
; (for example a$ = "Hello World ) that can cause unpredictable
; and difficult to trace errors. Run your source file through this
; simple utility to check everything is in order.
; Run the program as it stands to see a demonstration - it'll pick up
; the errors in the data statements at the end of the program and the
; Hello World example above.
;
; Needs a filepicker to deal with multiple files etc.
; and should write the errors out to a file rather than the screen.


Global iLineNumber = 0, iErrorCount = 0

;insert your .bb filename in the following line...
fileSourceCode = ReadFile("quotelint.bb")


Print "List of mis-matched quotes:"
Print

While Not Eof(fileSourceCode)

	strSourceLine$ = ReadLine(fileSourceCode)
	
	If parse_line(strSourceLine) Then
		
		Print "Line " + iLineNumber + ": " + strSourceLine
		iErrorCount = iErrorCount + 1
	
	EndIf
	iLineNumber = iLineNumber + 1

Wend

Print
If iErrorCount = 0 Then Print "None" Else Print iErrorCount + " line(s) with mismatched quotes"
WaitKey()
End


Function parse_line(strText$)


	Local iCounter = 0, iLoop

	For iLoop = 1 To Len(strText$)
	
		If Mid$(strText$, iLoop, 1) = Chr$(34) Then iCounter = iCounter + 1
	
	Next

	If iCounter And 1 Then Return True Else Return False


End Function


; these are just a couple of errors 
Data "I am an error
Data "I am not"
Data "I am too!

Comments

None.

Code Archives Forum