Skip to main content

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.

Jump to: navigation, search

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

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>

This fragment of code will add the <img> tag to the children of the

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.

Back to the top