18.04.2013 Views

Dissertaç ˜ao de Mestrado Mestrado em Engenharia Informática Jo ...

Dissertaç ˜ao de Mestrado Mestrado em Engenharia Informática Jo ...

Dissertaç ˜ao de Mestrado Mestrado em Engenharia Informática Jo ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3. AN APPLICATION RECONFIGURATION FRAMEWORK 3.3. Original to Generic syntax Converter<br />

Presentation Layer<br />

User<br />

Interface<br />

Logical Layer<br />

Configuration<br />

File Parser<br />

Storage Layer<br />

Parser<br />

Repository<br />

Grammar<br />

Compiler<br />

Tentative<br />

Grammar<br />

Repository<br />

Presentation Layer<br />

Co<strong>de</strong><br />

Generator<br />

Figure 3.2: Components overview<br />

Logical Layer<br />

Storage Layer<br />

Component Description<br />

Configuration File Parser The Configuration File Parser recognizes the diversity of<br />

configuration files and parses th<strong>em</strong> in or<strong>de</strong>r to change their<br />

structure to an application-in<strong>de</strong>pen<strong>de</strong>nt one;<br />

Co<strong>de</strong> Generator The Co<strong>de</strong> Generator reads the parsed output from the Configuration<br />

File Parser and generates the generic syntax of<br />

the file;<br />

Grammar Compiler The Grammar Compiler is the component which generates<br />

new parsers from grammars.<br />

Table 3.2: Logic Layer Components<br />

Component Description<br />

Parser Repository The Parser Repository is a parser database which holds all<br />

the functional parsers generated to the date;<br />

Tentative Grammar<br />

Repository<br />

The Tentative Grammar Repository stores the grammars<br />

built by the user on the process of creating a new parser<br />

for a configuration file language.<br />

Table 3.3: Data Layer Components<br />

26

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!