Code archives/Algorithms/Code Cleaner/De-formatter
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
This will take a .bb file and spit out a cleaned version, ;removing simple errors where possible. (like text 1,,5,,"test" would be cleaned to 'text 1,5,"test" Basically reduces the code to a strict format. No double spaces, double commas, formatting of any kind etc. It'll be more useful for parser writers I think. But I'll add some things like automatic formatting for other people. | |||||
;Code Cleaner ;-- ;- ;- ;-works directly in ide by file, or you can exe it and simply drag a file ;on the exe. Global changes com$=commandLine() if com<>"" file=com else file$="rename me to test file" endif failSilent=False fileIn=ReadFile(file) If Not fileIn If failSilent End RuntimeError "File "+file+" could not be opened" EndIf fileOut=WriteFile("Clean_"+file) While Not Eof(fileIn) WriteLine fileOut,cleanCode( ReadLine(fileIn)) Wend CloseFile fileIn CloseFile fileOut If failSilent End EndIf Print "Succesful." Print "Made "+changes+" alterations." Print "Press any key to exit." WaitKey End Function cleanCode$(code$) code=stripSeps(code," ") code=stripSeps(code,",") code=Trim(code) cl=Len(code) For j=1 To cl-1 c$=Mid(code,j,1) nc$=Mid(code,j+1,1) Select c Case " " Select nc Case ",","(","+","-","/",")",".","*" kc=True End Select Select lc$ Case ",","(",")"," ","*","+","/","-" kc=True End Select End Select If kc code=Mid(code,1,j-1)+Mid(code,j+1) changes=changes+1 kc=False EndIf lc$=c Next Return code End Function Function stripSeps$(code$,sep$) ;strips multiple (adjancent) seperators sl=Len(code) For j=1 To sl c$=Mid(code,j,1) Select c Case Chr$(34) ;ignore strings ignore=1-ignore Case sep If Not ignore If run=False rS=j:tc=0 run=True tc=tc+1 EndIf Default If run=True If tc>1 code=Mid(code,1,rs)+Mid(code,rs+tc) changes=changes+1 EndIf run=False EndIf End Select Next Return code End Function |
Comments
None.
Code Archives Forum