File: sflscrit.i

package info (click to toggle)
generator-scripting-language 4.1.5-6
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 10,424 kB
  • sloc: ansic: 106,060; cpp: 2,232; pascal: 762; sh: 535; xml: 424; makefile: 194
file content (59 lines) | stat: -rw-r--r-- 2,160 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*---------------------------------------------------------------------------*
 *  sflscrit.i - LIBERO dialog interpreter for sflscrit.c.                   *
 *  Generated by LIBERO 2.4 on 11 Oct, 2010, 17:15.                          *
 *---------------------------------------------------------------------------*/

    _LR_state = 0;                      /*  First state is always 0          */
    initialise_the_program ();
    while (the_next_event != terminate_event) {
        _LR_event = the_next_event;
        if (_LR_event >= 10 || _LR_event < 0) {
            printf ("State %d - event %d is out of range\n",
                     _LR_state, _LR_event);
            break;
        }
        _LR_savest = _LR_state;
        _LR_index  = _LR_action [_LR_state][_LR_event];
        if (_LR_index == 0) {
            printf ("State %d - event %d is not accepted\n",
                     _LR_state, _LR_event);
            break;
        }
        the_next_event          = _LR_NULL_EVENT;
        the_exception_event     = _LR_NULL_EVENT;
        exception_raised        = FALSE;

        _LR_number = 0;
        while ((_LR_vector [_LR_index] [_LR_number] != _LR_STOP)
           && (! exception_raised)) {
            (*_LR_module [_LR_vector [_LR_index] [_LR_number++]]) ();

            _LR_index  = _LR_action [_LR_state][_LR_event];
        }
        if (exception_raised) {
            if (the_exception_event != _LR_NULL_EVENT)
                _LR_event = the_exception_event;
            the_next_event = _LR_event;
        }
        else
            _LR_state = _LR_nextst [_LR_state][_LR_event];

        if (the_next_event == _LR_NULL_EVENT) {
            get_external_event ();
            if (the_next_event == _LR_NULL_EVENT) {
                printf ("No event set after event %d in state %d\n",
                         _LR_event, _LR_state);
                break;
            }
        }
    }
    return (feedback);
}

/*- Standard dialog routines ------------------------------------------------*/

static void raise_exception (event_t event)
{
    exception_raised = TRUE;
    if (event >= 0)
        the_exception_event = event;