Buffistas Building a Better Board
Do you have problems, concerns or recommendations about the technical side of the Phoenix? Air them here. Compliments also welcome.
Not only did the "end()" function help, I've finished a prototype tag-syntax checker at [link] on the strength of it.
I say "tag-syntax" checker because it won't figure out problems with quotes.
It uses Method A (ordered array) and Method B (associative array), but if B is happy it over-rides A.
It explains what it's doing, so just play with it.
For testing, it just checks the integrity of any lowercase bold, italic and font tags, but you know, proof of concept.
I tried it, John, and it doesn't seem to catch any errors at all.
I put in
a <bold> a <bold> a <bold> a </bold>
and it spit out
found tags: bold, bold, bold, /bold, Trying to match openers and closers: Diagnosing: Length of outstanding tags array: 0 Sum for each tag (opener +1, closer -1): bold count = Sum of all tags: 0 Conclusion: code passes both tests and appears unbroken.
Also, it happily accepts extra close tags. It did detect some crossed tags nicely though.
And it does detect an opening tag with not close. The problem is that it takes one closing tag as sufficient for any number of opening tags.
I tried it, John, and it doesn't seem to catch any errors at all.
I think he only tested for t b t i and t font
t b <> t bold
Jeez I need to go home.
Every test I could come up with worked - except add extra close tags. It liked extra close tags just fine - for example:
< b > < b > gar </b></b></i></i>
Also, this is proof of logic for most things. But you still have to handle the hard cases malformed <A HREF tags and TD and TR commands outside of tables.
<bold>
Yes, as Jon said, you have to use actual tags, not ones you've made up yourself!
it takes one closing tag as sufficient for any number of opening tags.
No it doesn't! I mean, no it shouldn't! What were the diagnostics?
It was a bit early when I coded the last bit. I'm happy that it's grabbing the tags and counting them and pushing and popping correctly, but I'm a bit confused about my control structure at the end.
Here's the logic (where A is the push/pop structure, add-a-tag, remove-a-tag in order and B is the Sum Of All Tags, checking that for every open there is a close.):
Result Diagnosis A equals zero, B equals zero Everything is fine. A greater than zero, B equals zero
Bad HTML, but probably not broken.
Tags aren't closed in order, but do all close.
All tags close, but extra closing tags found. A greater than zero, B greater than zero Broken.
Can someone translate that into an if/elseif/else for me? My brain's in a slump.
except add extra close tags
Ah, I get it. Extra close tags in the case where there was never an opener.
And this is why we have testing.
But on the other hand, I was very careful posting that table...