Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "MoDisco/Components/JSP/Architecture/0.9"
(→Updating the Grammar) |
|||
Line 5: | Line 5: | ||
==Updating the Grammar== | ==Updating the Grammar== | ||
+ | |||
+ | ===Non XML Conformity=== | ||
The ANTLR Grammar take in consideration the non XML conformity of a JSP file. | The ANTLR Grammar take in consideration the non XML conformity of a JSP file. | ||
Line 16: | Line 18: | ||
Example : | Example : | ||
<code> | <code> | ||
+ | <nowiki> | ||
<p> | <p> | ||
<img src="./img/myImage.png"> | <img src="./img/myImage.png"> | ||
− | </p> | + | </p></nowiki> |
</code> | </code> | ||
This fragment of code will add the <img> tag to the children of the <p> on when </p> is detected, and so on. | This fragment of code will add the <img> tag to the children of the <p> on when </p> is detected, and so on. | ||
+ | |||
+ | === User Code in the generated one === | ||
+ | Because we do not know if a tag will be closed later in the code, we had to manually implement some text concatenation. | ||
+ | |||
+ | Let's say we meet a new opening tag: | ||
+ | |||
+ | <code> | ||
+ | <nowiki> | ||
+ | <p> | ||
+ | This is some HTML content | ||
+ | </p></nowiki> | ||
+ | </code> | ||
+ | |||
+ | We cannot declared a rule <nowiki> "'<p>' 'any letter' '</p>'" because </p> </nowiki> might never appears, or a JSP expression could be there. That is why we concatenate manually the potentially present content after an opening tag, and wait till we found a known token. |
Revision as of 11:03, 20 April 2010
Contents
JSP Parser
Modisco JSP Parser has been developed using an ANTLR grammar It can support JSP file, as well as HTML files, TAG files, and JSP/TAG fragment files
Updating the Grammar
Non XML Conformity
The ANTLR Grammar take in consideration the non XML conformity of a JSP file. Knowing that it can contain html or javascript tags, an opened tag is not necessarily closed by one
Example :
<img src="./img/myImage.png">
In order to build the inheritance tree, we had to store all the founded tags, and each time closing one is detected, re build the inheritance tree.
Example :
<p>
<img src="./img/myImage.png">
</p>
on when
is detected, and so on.User Code in the generated one
Because we do not know if a tag will be closed later in the code, we had to manually implement some text concatenation.
Let's say we meet a new opening tag:
<p>
This is some HTML content
</p>
We cannot declared a rule "'<p>' 'any letter' '</p>'" because </p> might never appears, or a JSP expression could be there. That is why we concatenate manually the potentially present content after an opening tag, and wait till we found a known token.