Lugaru's Epsilon
Programmer's
Editor

Context:
Epsilon User's Manual and Reference
   . . .
   Introduction to EEL
      Epsilon Extension Language Features
      EEL Tutorial
   Epsilon Extension Language
      . . .
      Global Definitions
      Differences Between EEL And C
      Syntax Summary
   Primitives and EEL Subroutines
      Buffer Primitives
      Display Primitives
      File Primitives
      . . .
      Defining Language Modes
   . . .

Previous   Up    Next
Differences Between EEL And C  Epsilon Extension Language   Primitives and EEL Subroutines


Epsilon User's Manual and Reference > Epsilon Extension Language >

Syntax Summary

program:
        global-definition
        global-definition program

global-definition:
        function-definition
        global-variable-definition
        keytable-definition
        typedef-definition
        color-class-definition

typedef-definition:
        typedef type-specifier declarator-list ;

color-class-definition:
        color_class  color-class-list  ;
        color_scheme  color-scheme-list  ;

color-class-list:
        color-class-item
        color-class-item  ,  color-class-list

color-class-item:
        identifier
        identifier color_scheme string-constant color-pair
        identifier { color-scheme-spec-list }
        identifier color-pair

color-scheme-spec-list:
        color-scheme-spec
        color-scheme-spec  color-scheme-spec-list

color-scheme-spec:
        color_scheme string-constant color-pair ;

color-scheme-list:
        color-scheme-item
        color-scheme-item  ,  color-scheme-list

color-scheme-item:
        string-constant
        string-constant color_class identifier color-pair
        string-constant { color-class-spec-list }

color-class-spec-list:
        color-class-spec
        color-class-spec  color-class-spec-list

color-class-spec:
        color_class identifier color-pair ;

color-pair:
        constant-expression
        constant-expression on constant-expression

keytable-definition:
        keytable keytable-list ;

keytable-list:
        identifier
        identifier , keytable-list

global-variable-definition:
        type-specifier global-declarator-list ;
        global-modifier-list global-declarator-list ;
        global-modifier-list type-specifier global-declarator-list ;

global-modifier-list:
        global-modifier
        global-modifier global-modifier-list

global-modifier:
        buffer
        window
        zeroed
        user
        volatile

declarator-list:
        declarator
        declarator , declarator-list

declarator:
        identifier
        ( declarator )
        * declarator
        declarator [ constant-expression ]
        declarator [ ]
        declarator ()

global-declarator-list:
        global-declarator
        global-declarator , global-declarator-list

global-declarator:
        declarator
        declarator = string-constant
        declarator = initializer

initializer:
        constant-expression
        string-constant
        { initializer-list }
        { initializer-list , }

initializer-list:
        initializer
        initializer , initializer-list

type-specifier:
        char
        short
        int
        struct struct-or-union-specifier
        union struct-or-union-specifier
        spot
        typedef-name

typedef-name:
        identifier

struct-or-union-specifier:
        struct-or-union-tag
        struct-or-union-tag { member-list }
        { member-list }

struct-or-union-tag:
        identifier

member-list:
        type-specifier declarator-list ;
        type-specifier declarator-list ; member-list

type-name:
        type-specifier abstract-declarator

abstract-declarator:
        empty
        ( abstract-declarator )
        * abstract-declarator
        abstract-declarator [ constant-expression ]
        abstract-declarator [ ]
        abstract-declarator ( )
        abstract-declarator ( ansi-argument-list )

function-definition:
        function-head block
        function-head argument-decl-list block
        ansi-function-head block
        callable-function-head block

callable-function-head:
        typed-function-head
        command typed-function-head
        typed-function-head on binding-list
        command typed-function-head on binding-list

binding-list:
        keytable-name [ constant-expression ]
        keytable-name [ constant-expression ] , binding-list

keytable-name:
        identifier

typed-function-head:
        identifier ()
        type-specifier identifier ()

function-head:
        identifier ( argument-list )
        type-specifier identifier ( argument-list )

ansi-function-head:
        identifier ( ansi-argument-list )
        type-specifier identifier ( ansi-argument-list )

ansi-argument-list:
        type-specifier declarator
        type-specifier declarator , ansi-argument-list

argument-list:
        identifier
        identifier , argument-list

argument-decl-list:
        type-specifier declarator-list ;
        type-specifier declarator-list ; argument-decl-list

block:
        { statement-list  }
        {  }

local-variable-definition:
        type-specifier local-declarator-list ;

local-declarator-list:
        local-declarator
        local-declarator , local-declarator-list

local-declarator:
        declarator
        declarator = expression

statement-list:
        statement
        statement statement-list

statement:
        expression ;
        if ( expression ) statement
        if ( expression ) statement else statement
        while ( expression ) statement
        do statement while ( expression );
        for ( opt-expression ; opt-expression ; opt-expression ) statement
        switch ( expression ) statement
        case constant-expression : statement
        default: statement
        break;
        continue;
        return;
        return expression ;
        save_var save-list ;
        save_spot save-list ;
        on_exit statement
        goto label ;
        label : statement
        ;
        local-variable-definition
        typedef-definition
        block

save-list:
        save-item
        save-item , save-list

save-item:
        identifier
        identifier = expression
        identifier modify-operator expression
        identifier ++
        identifier --

label:
        identifier

opt-expression:
        empty
        expression

expression:
        numeric-constant
        string-constant
        identifier
        identifier.default
        color_class identifier
        ( expression )
        ! expression
        * expression
        & expression
        - expression
        ~ expression
        sizeof expression
        sizeof( type-name )
        ( type-name ) expression
        ++ expression
        -- expression
        expression ++
        expression --
        expression + expression
        expression - expression
        expression * expression
        expression / expression
        expression % expression
        expression == expression
        expression != expression
        expression < expression
        expression > expression
        expression <= expression
        expression >= expression
        expression && expression
        expression || expression
        expression & expression
        expression | expression
        expression ^ expression
        expression << expression
        expression >> expression
        expression = expression
        expression modify-operator expression
        expression ? expression : expression
        expression , expression
        expression ()
        expression ( expression-list )
        expression [ expression ]
        expression . identifier
        expression -> identifier

modify-operator:
        +=
        -=
        *=
        /=
        %=
        &=
        |=
        ^=
        <<=
        >>=

expression-list:
        expression
        expression , expression-list

constant-expression:
        numeric-constant
        ( constant-expression )
        ! constant-expression
        - constant-expression
        ~ constant-expression
        sizeof constant-expression
        sizeof( type-name )
        constant-expression + constant-expression
        constant-expression - constant-expression
        constant-expression * constant-expression
        constant-expression / constant-expression
        constant-expression % constant-expression
        constant-expression == constant-expression
        constant-expression != constant-expression
        constant-expression < constant-expression
        constant-expression > constant-expression
        constant-expression <= constant-expression
        constant-expression >= constant-expression
        constant-expression && constant-expression
        constant-expression || constant-expression
        constant-expression & constant-expression
        constant-expression | constant-expression
        constant-expression ^ constant-expression
        constant-expression << constant-expression
        constant-expression >> constant-expression
        constant-expression ? constant-expression : constant-expression
        constant-expression , constant-expression




Previous   Up    Next
Differences Between EEL And C  Epsilon Extension Language   Primitives and EEL Subroutines


Lugaru Copyright (C) 1984, 2012 Lugaru Software Ltd. All Rights Reserved.