Eli   Documents

General Information

 o Eli: Translator Construction Made Easy
 o Global Index
 o Frequently Asked Questions
 o Typical Eli Usage Errors

Tutorials

 o Quick Reference Card
 o Guide For new Eli Users
 o Release Notes of Eli
 o Tutorial on Name Analysis
 o Tutorial on Scope Graphs
 o Tutorial on Type Analysis
 o Typical Eli Usage Errors

Reference Manuals

 o User Interface
 o Eli products and parameters
 o LIDO Reference Manual
 o Typical Eli Usage Errors

Libraries

 o Eli library routines
 o Specification Module Library

Translation Tasks

 o Lexical analysis specification
 o Syntactic Analysis Manual
 o Computation in Trees

Tools

 o LIGA Control Language
 o Debugging Information for LIDO
 o Graphical ORder TOol

 o FunnelWeb User's Manual

 o Pattern-based Text Generator
 o Property Definition Language
 o Operator Identification Language
 o Tree Grammar Specification Language
 o Command Line Processing
 o COLA Options Reference Manual

 o Generating Unparsing Code

 o Monitoring a Processor's Execution

Administration

 o System Administration Guide

Mail Home

FunnelWeb

Previous Chapter Next Chapter Table of Contents


Grammar

input_file ::= {ordinary_text / special_sequence} .

control_sequence ::= `@^' char_spec .

char_spec ::= binary / octal / decimal / hexadecimal .

binary ::= (`b' / `B') `(' {binary_digit}8 `)' .

octal ::= (`o' / `O' / `q' / `Q') `(' {octal_digit}3 `)' .

decimal ::= (`d' / `D') `(' {decimal_digit}3 `)' .

hexadecimal ::= (`h' / `H' / `x' / `X') `(' {hex_digit}2 `)' .

binary_digit ::= `0' / `1' .

octal_digit ::= binary_digit / `2' / `3' / `4' / `5' / `6' / `7' .

decimal_digit ::= octal_digit / `8' / `9' .

hex_digit ::= decimal_digit / `A' / `B' / `C' / `D' / `E' / `F' /
                       `a' / `b' / `c' / `d' / `e' / `f' .

quick_name ::= `@#' non_space_printable .

pragma ::= pragma_indent / pragma_mill / pragma_moll / 
                            pragma_typesetter .

s ::= {` '}+ .

ps ::= (`@p' / `@P') ` ' .

number ::= { decimal_digit }+ .

numorinf ::= number / `infinity' .

pragma_indent ::= ps `indentation' s `=' s (`blank' / `none') .

pragma_mill ::= ps `maximum_input_line_length' s `=' s numorinf .

pragma_moll ::= ps `maximum_output_line_length' s `=' s numorinf .

pragma_typesetter ::= ps `typesetter' s `=' s (`none' / `tex' / `texinfo').

ftd ::= ftd_newpage / ftd_toc / ftd_vskip / ftd_title .

ts ::= `@t ' .

ftd_newpage ::= ts `new_page' .

ftd_toc ::= ts `table_of_contents' .

ftd_vskip ::= ts `vskip' s number s `mm' .

ftd_title ::= ts `title' s font s alignment text .

font ::= `normalfont' / `titlefont' / `smalltitlefont' .

alignment ::= `left' / `centre' / `right' .

text ::= `"' {printable_char} `"' .

input_file ::= {text / macro / directive} .

free_text ::= ordinary_text .

ordinary_text ::= {ordinary_char / eol / text_special}+ .

text_special ::= `@+' / `@@' / `@^' char_spec .

ordinary_char ::= ` '..`~'-special .

directive ::= ftd / itd .

itd ::= section / literal / emphasis .

section ::= `@' levelchar [name] .

levelchar ::= `A' / `B' / `C' / `D' / `E' /
                            `a' / `b' / `c' / `d' / `e' .

literal ::= `@{' ordinary_text `@}' .

emphasise ::= `@/' ordinary_text `@/' .

macro ::= (`@O' / `@$') name [formal_parameter_list] .
                            [`@Z'] [`@M'] [`==' / `+='] `@{' expression `@}' .

name ::= `@<' name_text `@>' .

name_text ::= {ordinary_char / text_special} .

formal_parameter_list ::= `@(' formal_parameter `@)' .

formal_parameter ::= `@1' / `@2' / `@3' / `@4' / `@5' /
                            `@6' / `@7' / `@8' / `@9' .

expression ::= {ordinary_text / macro_call / formal_parameter} .

macro_call ::= name [actual_parameter_list] .

actual_parameter_list ::= `@(' actpar { `@,' actpar } `@)' .

actpar ::= expression /
                            ( whitespace `@"' expression `@"' whitespace ) .

whitespace ::= {` ' / eol} .


Previous Chapter Next Chapter Table of Contents