FUZZEKS [to Index]
The grammar of FDF-inputdata-files


The grammar describes in detail what FUZZEKS can accept as input data file.

How to read the grammar

If this appears  this can appear in the input file
---------------- ---------------------------------
x ::= y          x is of the form y
x y              something of the form x and then following
                 something of the form y
"x"              x or X literally
(   )            indicate priorities
[ x ]            something of the form x is optional here
{ x }            any number (including 0) of parts of the form x
                 can appear
x | y            alternative between the form x and y
fuzzy_data_file  axiom (the form of the complete file)
idf              any free chosen identifier (see also
                 "Some additional limitations" below)
number           a real number (e.g. "1.2e-3" or "0.0012")
newline          the next line starts here

The grammar itself

fuzzy_data_file ::= region cuts params { table } end

region      ::= [ decisepdef ] "region" leftbottom rightbottom lefttop [area]
leftbottom  ::= [ newline ] number number
rightbottom ::= [ newline ] number number
lefttop     ::= [ newline ] number number newline
area        ::= { number number [newline] } newline

cuts        ::= [ decisepdef ] "cuts" [ newline ] { number [ newline ] }

params      ::= [ decisepdef ] "parameters" [ newline ] { param }
param       ::= idf [ ":" "variable" ] { "(" param_type ")" } newline
param_type  ::= "+" [ number ] "/" "-" number  |  "log10"

table       ::= [ tabledefs ] "table" { newline } attrib_line { fvalue_line }
attrib_line ::= attrib { delimiter attrib } newline { newline }
attrib      ::= "x"  |  "y"  |  idf
fvalue_line ::= fvalue { delimiter fvalue } newline { newline }
fvalue      ::= (  ( hcut | number ) [ {"/" hcut} | {"/" cut} ]  )  |  undef
hcut        ::= number ":" number "-" number
cut         ::= number "-" number

tabledefs   ::= [ undefdef ] [ delimiterdef ] [ decisepdef ]
undefdef    ::= "undefstring"      "is" undef     newline
delimiterdef::= "delimiterstring"  "is" delimiter newline
decisepdef  ::= "decisepcharacter" "is" decisep   newline
end         ::= "end"
number      ::= ["+"|"-"] digitstr

Some additional limitations


Remarks


The scanner

(This is the part of the program which supplies the tokens (the atomar parts) of the grammar above.)