This is some ordinary text. <ATAG> Here's some additional text. <BOLD> This will be boldface. </BOLD> Still more </ATAG>Ada dua tag markup pada dokumen di atas. Arti dari tag
ATAG
dan BOLD tidaklah penting bagi kita. Tag markup
di atas secara mudah dapat kita temukan karena mereka muncul diantara tanda '<'
dan '>'. Nama tag tidak boleh lebih dari 10 karakter berhuruf besar. Tag akan
ditutup dengan tanda yang sama hanya ditambah dengan karakter '/'.
Seperti yang diilustrasikan, sebuah tag dan penutupnya tidak harus berada dalam
satu baris, dan seperti pada HTML, sebuah tag harus ditutup dengan benar, persis
seperti pasangan BEGIN...END di Pascal, atau '{'
dan'}' di C/C++.
OK". Jika ada error, maka outputkan
error yang ditemui dengan nomor barisnya. Jenis errornya adalah:
line #: bad character in tag name <tagname>, jika nama tag tidak valid line #: too many/few characters in tag name <tagname>, jika nama tag terlalu sedikit atau lebih dari 10 karakter line #: expected </tagname>, jika tidak ada tag penutup line #: no matching begin tag <tagname>, jika tidak ada tag pembuka
Tanda '#' menyebutkan nomor baris dimana kode
tersebut salah. Nomor baris per CASE harus dimulai lagi dari baris pertama dan
seterusnya.
Jika ada error, maka program harus terus meneruskan hingga seluruh kasus dapat
dideteksi errornya masing-masing..
CASE 1
This is
some ordinary text.
<BEGIN> This is included in the BEGIN tag </BEGIN>
<START> Here's some stuff
and so is this
more stuff. </START>
END CASE
CASE 2
This has a null tag <>
And an extra line after the error
END CASE
CASE 3
This has some good stuff <OKAY> and some bad stuff later on.
<GOOD> All is still okay, but later on we'll have an error.
</GOOD> We're still in the pink! <THISISTOOLONG>
This line will be skipped.
As will this one.
END CASE
CASE 4
This is an interesting error: <ERROR
END CASE
CASE 5
This one is okay
<IN> </IN>
END CASE
CASE 6
Mismatch <START> </STOP>
END CASE
CASE 7
Missing start symbol: <OK></OK></NOTOK> more garbage...
END CASE
Contoh Output:
TEST CASE 1 OK TEST CASE 2 Line #1 : too many/few characters in tag name <>. TEST CASE 3 Line #3 : too many/few characters in tag name<THISISTOOLONG>. Line #1 : expected tag </OKAY>. TEST CASE 4 Line #1 : bad character in tag name. TEST CASE 5 OK TEST CASE 6 Line #1 : expected tag </START>. Line #1 : no matching begin tag </STOP>. TEST CASE 7 Line #1 : no matching begin tag </NOTOK>
TEST CASE 1<BEGIN> dan </BEGIN> TEST CASE 2 TEST CASE 3
<START> dan </START><GOOD> dan </GOOD> TEST CASE 4 TEST CASE 5<IN> dan </IN> TEST CASE 6 TEST CASE 7<OK> dan </OK>
CASE 100 sdsfads dsfdsfs < a > sdfsfas < / abc> <B></B>sdfsda <c> </c></d>dsfsd END CASE CASE 101 dsfksjdl skjfklsf <fff>sdfsa </fff> <abcdefghijklmn>sdfsd </abcdefghijklm> END CASE
TEST CASE 100 Line #1 : expected tag </a>. Line #3 : no matching begin tag </d>. TEST CASE 101 Line #2 : too many/few characters in tag name <abcdefghijklmn>. Line #2 : no matching begin tag </abcdefghijklm>.
TEST CASE 100 <B> dan </B> <c> dan </c> TEST CASE 101 <fff> dan </fff>
Antonius Rachmat C, S.Kom, M. Kom.