blitzdoc.bb 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
  1. name$=Input("Filename: ")
  2. Print name
  3. If Right(name,3)=".bb" Then name=Left(name,Len(name)-3)
  4. While FileType(name+".bb")<>1
  5. Cls
  6. Locate 0,0
  7. r=r+1
  8. If r>6
  9. Print "That's it. I've had enough! I'll get the gun."
  10. Delay 1500
  11. Cls
  12. Locate 0,0
  13. For c=1 To 5
  14. ClsColor 255,255,0
  15. Cls
  16. Delay 50
  17. VWait
  18. red=red+51
  19. ClsColor red,0,0
  20. Cls
  21. Delay 500
  22. VWait 15
  23. Next
  24. red=255
  25. While red>0
  26. ClsColor red,0,0
  27. red=red-1
  28. Cls
  29. VWait
  30. Wend
  31. Delay 1500
  32. Cls
  33. Locate 0,0
  34. Print "Oh, you monster!"
  35. Delay 2000
  36. Cls
  37. End
  38. EndIf
  39. Select r
  40. Case 1
  41. evil$="No, really. Filename: "
  42. Case 2
  43. evil$="Try again. Filename: "
  44. Case 3
  45. evil$="Not too good at this, are you? Filename: "
  46. Case 4
  47. evil$="You think this is funny, don't you? Filename: "
  48. Case 5
  49. evil$="Aren't you bored yet? Filename: "
  50. Case 6
  51. Print "Enter a valid filename or I'll terminate myself."
  52. Delay 1500
  53. Cls
  54. Locate 0,0
  55. Print "I'm serious, you know."
  56. Delay 1500
  57. Cls
  58. Locate 0,0
  59. evil$="Filename: "
  60. End Select
  61. name$=Input(evil$)
  62. If Right(name,3)=".bb" Then name=Left(name,Len(name)-3)
  63. Wend
  64. If Len(name)>3
  65. If Lower(Right(name,3))=".bb"
  66. name=Left(name,Len(name)-3)
  67. EndIf
  68. EndIf
  69. file=ReadFile(name+".bb")
  70. outfile=WriteFile(name+".html")
  71. ;;********************************************************************************************
  72. ;;Start
  73. WriteLine outfile,"<html><head><title>BlitzDoc Documentation for "+name+".bb</title></head><body>"
  74. WriteLine outfile,"<h1 align=center>BlitzDoc Documentation for "+name+".bb</h1>"
  75. ;;********************************************************************************************
  76. While Not Eof(file)
  77. in$=Trim(ReadLine(file))
  78. ;;*************************************************************************************
  79. ;;Find Globals and Constants
  80. If Lower(Left(in,7))="global " Or Lower(Left(in,6))="const "
  81. If Lower(Left(in,6))="global"
  82. vtype$="Global"
  83. bgcol$="ccccff"
  84. c=8
  85. Else
  86. vtype="Constant"
  87. bgcol$="ccffcc"
  88. c=7
  89. EndIf
  90. Print "shloop"
  91. name$=""
  92. While c<=Len(in)
  93. If Mid(in,c,1)="," Or Mid(in,c,1)="=" Or Mid(in,c,1)="[" Or c=Len(in)
  94. name=Trim(name)
  95. arraylength$=""
  96. If Mid(in,c,1)="["
  97. While Mid(in,c,1)<>"]" And c<=Len(in)
  98. c=c+1
  99. arraylength=arraylength+Mid(in,c,1)
  100. Wend
  101. EndIf
  102. If arraylength<>""
  103. arraylength="["+arraylength+"]"
  104. EndIf
  105. If c=Len(in) Then name=name+Right(in,1)
  106. Print "spong"
  107. Select Right(name,1)
  108. Case "$"
  109. dtype$="String"
  110. name=Left(name,Len(name)-1)
  111. Case "#"
  112. dtype$="Float"
  113. name=Left(name,Len(name)-1)
  114. Case "%"
  115. dtype$="Integer"
  116. name=Left(name,Len(name)-1)
  117. Default
  118. Print "ook"
  119. ca=Len(name)
  120. If Len(name)>2
  121. While ca>1 And Mid(name,ca,1)<>"."
  122. ca=ca-1
  123. Wend
  124. If Mid(name,ca,1)="."
  125. Print "pook"
  126. dtype$=Right(name,Len(name)-ca)
  127. dtype="<font color=ff0000><i>"+Upper(Left(dtype,1))+Lower(Right(dtype,Len(dtype)-1))+"</i></font>"
  128. name=Left(name,ca-1)
  129. Else
  130. dtype$="Integer"
  131. EndIf
  132. Else
  133. dtype$="Integer"
  134. EndIf
  135. End Select
  136. WriteLine outfile,"<table width=100%>"
  137. WriteLine outfile,"<tr bgcolor="+bgcol+"><td><p><b>"+dtype+"</b> - <i>"+name+"</i>"+arraylength+"</p></td><td align=Right width=80><p><i>"+vtype+" </i></p></td></tr>"
  138. WriteLine outfile,"</table>"
  139. name=""
  140. If Mid(in,c,1)="="
  141. While Mid(in,c,1)<>"," And c<=Len(in)
  142. c=c+1
  143. Wend
  144. EndIf
  145. Else
  146. name=name+Mid(in,c,1)
  147. EndIf
  148. c=c+1
  149. Wend
  150. EndIf
  151. ;;*************************************************************************************
  152. ;;*************************************************************************************
  153. ;;Find Types
  154. If Lower(Left(in,5))="type "
  155. name$=Right(in,Len(in)-5)
  156. name=Upper(Left(in,1))+Lower(Right(in,Len(in)-1))
  157. WriteLine outfile,"<table width=100%>"
  158. WriteLine outfile,"<tr bgcolor=cccccc><td><p><b>"+name+"</b></p></td><td width=80 align=right><p><i>Type</i></p></td></tr>"
  159. WriteLine outfile,"<tr><td><p><i>Fields:</i></p><ul>"
  160. While Lower(in)<>"end type"
  161. in=Trim(ReadLine(file))
  162. If Lower(Left(in,5))="field"
  163. c=7
  164. pname$=""
  165. While c<=Len(in)
  166. If Mid(in,c,1)="," Or Mid(in,c,1)="[" Or c=Len(in)
  167. pname=Trim(pname)
  168. arraylength$=""
  169. If Mid(in,c,1)="["
  170. While Mid(in,c,1)<>"]" And c<=Len(in)
  171. c=c+1
  172. arraylength=arraylength+Mid(in,c,1)
  173. Wend
  174. EndIf
  175. If arraylength<>""
  176. arraylength="["+arraylength+"]"
  177. EndIf
  178. If c=Len(in) Then pname=pname+Right(in,1)
  179. Print "spong"
  180. Select Right(pname,1)
  181. Case "$"
  182. dtype$="String"
  183. pname=Left(pname,Len(pname)-1)
  184. Case "#"
  185. dtype$="Float"
  186. pname=Left(pname,Len(pname)-1)
  187. Case "%"
  188. dtype$="Integer"
  189. pname=Left(pname,Len(pname)-1)
  190. Default
  191. Print "ook"
  192. ca=Len(pname)
  193. If Len(pname)>2
  194. While ca>1 And Mid(pname,ca,1)<>"."
  195. ca=ca-1
  196. Wend
  197. If Mid(pname,ca,1)="."
  198. Print "pook"
  199. dtype$=Right(pname,Len(pname)-ca)
  200. dtype="<font color=ff0000><i>"+Upper(Left(dtype,1))+Lower(Right(dtype,Len(dtype)-1))+"</i></font>"
  201. pname=Left(pname,ca-1)
  202. Else
  203. dtype$="Integer"
  204. EndIf
  205. Else
  206. dtype$="Integer"
  207. EndIf
  208. End Select
  209. WriteLine outfile,"<li><b>"+dtype$+"</b> - <i>"+pname+"</i>"+arraylength
  210. pname=""
  211. Else
  212. pname=pname+Mid(in,c,1)
  213. EndIf
  214. c=c+1
  215. Wend
  216. EndIf
  217. Wend
  218. WriteLine outfile,"</ul></td></tr></table>"
  219. EndIf
  220. ;;*************************************************************************************
  221. ;;*************************************************************************************
  222. ;;Document functions
  223. If Lower(Left(in,9))="function "
  224. c=10
  225. name$=""
  226. While Mid(in,c,1)<>"("
  227. name$=name+Mid(in,c,1)
  228. c=c+1
  229. Wend
  230. name=Trim(name)
  231. WriteLine outfile,"<table width=100%>"
  232. WriteLine outfile,"<tr bgcolor=ffaaaa><td><p><b>"+name+"</b></p></td><td width=80 align=right><p><i>Function</i></p></td></tr>"
  233. WriteLine outfile,"<tr><td><p><i>Parameters:</i></p><ul>"
  234. pname$=""
  235. While Mid(in,c,1)<>")"
  236. c=c+1
  237. If Mid(in,c,1)="," Or Mid(in,c,1)="[" Or Mid(in,c,1)=")"
  238. pname=Trim(pname)
  239. arraylength$=""
  240. If Mid(in,c,1)="["
  241. While Mid(in,c,1)<>"]" And c<=Len(in)
  242. c=c+1
  243. arraylength=arraylength+Mid(in,c,1)
  244. Wend
  245. EndIf
  246. If arraylength<>""
  247. arraylength="["+arraylength
  248. EndIf
  249. Select Right(pname,1)
  250. Case "$"
  251. dtype$="String"
  252. pname=Left(pname,Len(pname)-1)
  253. Case "#"
  254. dtype$="Float"
  255. pname=Left(pname,Len(pname)-1)
  256. Case "%"
  257. dtype$="Integer"
  258. pname=Left(pname,Len(pname)-1)
  259. Default
  260. Print "ook"
  261. ca=Len(pname)
  262. If Len(pname)>2
  263. While ca>1 And Mid(pname,ca,1)<>"."
  264. ca=ca-1
  265. Wend
  266. If Mid(pname,ca,1)="."
  267. Print "pook"
  268. dtype$=Right(pname,Len(pname)-ca)
  269. dtype="<font color=ff0000><i>"+Upper(Left(dtype,1))+Lower(Right(dtype,Len(dtype)-1))+"</i></font>"
  270. pname=Left(pname,ca-1)
  271. Else
  272. dtype$="Integer"
  273. EndIf
  274. Else
  275. dtype$="Integer"
  276. EndIf
  277. End Select
  278. WriteLine outfile,"<li><b>"+dtype$+"</b> - <i>"+pname+"</i>"+arraylength
  279. pname=""
  280. Else
  281. pname=pname+Mid(in,c,1)
  282. EndIf
  283. Wend
  284. WriteLine outfile,"</ul></td></tr>"
  285. comments$=""
  286. While Lower(Left(in,12))<>"end function"
  287. in=Trim(ReadLine(file))
  288. If Lower(Left(in,5))=";doc " And Len(in)>5
  289. comments$=comments+Right(in,Len(in)-5)+"<br>"
  290. EndIf
  291. Wend
  292. If comments<>""
  293. WriteLine outfile,"<tr><td bgcolor=eeeeee colspan=2><p><b>Comments</b></p>"
  294. WriteLine outfile,"<p>"+comments+"</p>"
  295. WriteLine outfile,"</td></tr>"
  296. EndIf
  297. WriteLine outfile,"</table>"
  298. EndIf
  299. ;;*************************************************************************************
  300. Wend
  301. ;;*************************************************************************************
  302. ;;Ending Text
  303. WriteLine outfile,"</table>"
  304. WriteLine outfile,"<p><font size=-1>This documentation was generated by BlitzDoc. BlitzDoc is copyright Christian Perfect 2001</font></p>"
  305. WriteLine outfile,"</body></html>"
  306. ;;*************************************************************************************
  307. ;;****************
  308. ;;End
  309. CloseFile file
  310. CloseFile outfile
  311. Print " "
  312. Color 255,255,0
  313. Cls
  314. Locate 0,0
  315. Print "DONE!"
  316. Print "Press a key to quit"
  317. VWait
  318. Flip
  319. Flip
  320. WaitKey
  321. End
  322. ;;****************