File: ecl

package info (click to toggle)
ruby-rouge 4.6.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,836 kB
  • sloc: ruby: 38,168; sed: 2,071; perl: 152; makefile: 8
file content (146 lines) | stat: -rw-r--r-- 4,062 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
// hpccsystems.com

/******************
 Multi-line comment
******************/

import std.math.job;
IMPORT Str;

/****************** TYPES ******************/

R1 := RECORD
    integer1  F1;
    UNSIGNED4 F2;
    STRING100 F3;
    REAL4     R1;
    REAL8     R2;
    REAL9     R2; // This should not match a type
    boolean   B1;
    decimal23 D1;
    udecimal3 D2;
END;

D1 := dataset('RTTEMP::SomeFile',R1,THOR);
D1 := DATASET('RTTEMP::SomeFile',R1,THOR);

/****************** TEMPLATES ******************/

#append
#APPEND
#inmodule

/****************** NUMBERS AND STRINGS ******************/

ArcCosine := acos(0.55);

DATA2 MyHexString := x'0D0A'; // a 2-byte hexadecimal string
MyDataString := D'abcd'; // same as: (DATA)'abcd'
MyUnicodeString := U'abcd'; // same as: (UNICODE)'abcd'
MyUnicodeString := U'abcd\353'; // becomes 'abcd�'
MyVarString := V'abcd'; // same as: (VARSTRING)'abcd'
MyQString := Q'ABCD'; // same as: (QSTRING)'ABCD'

MyInt1 := 10; // value of MyInt1 is the INTEGER value 10
MyInt2 := 0x0A; // value of MyInt2 is the INTEGER value 10
MyInt3 := 0Ax; // value of MyInt3 is the INTEGER value 10
MyInt4 := 0b1010; // value of MyInt4 is the INTEGER value 10
MyInt5 := 1010b; // value of MyInt5 is the INTEGER value 10
MyReal := 10.0; // value of MyReal is the REAL value 10.0
MyRea2 := 1.0e1; // value of MyReal2 is the REAL value 10.0
MyRea3 := 1.0E1; // value of MyReal3 is the REAL value 10.0

MyFunc(STRING1 val, SET OF STRING1 S=ALL) := val IN S;

eMails := REGEXFINDSET('\\w+@[a-zA-Z_]+?\\.[a-zA-Z]{2,3}' , sampleStr);
eMails2 := REGEXFINDSET(U'\\w+@[a-zA-Z_]+?\\.[a-zA-Z]{2,3}', sampleStr2);

//check for presence in passed set, if passed

SET OF INTEGER4 MySet := IF(SomeCondition=TRUE,[88888,99999,66666,33333,55555],ALL);
MyRecs := MyFile(Zip IN MySet);

str := '---\'---';

/****************** BLOCKS (not working currently) ******************/

INTEGER addone(INTEGER p) := EMBED(Python)
# Python code that returns one more than the value passed to it
if p < 10:
    return p+1
else:
    return 0
ENDEMBED;

REAL8 colors_should_be_different_here := 10.5;

BEGINC++
    #option action
    struct tm localt; // localtime in "tm" structure
    time_t timeinsecs; // variable to store time in secs
    time(&timeinsecs);
    localtime_r(&timeinsecs,&localt);
    char temp[15];
    strftime(temp , 15, "%Y%m%d%H%M%S", &localt); // Formats the localtime to YYYYMMDDhhmmss
    strncpy(__result, temp, 14);
ENDC++;

REAL8 colors_should_be_different_here := 10.5;

AddOne(num) := FUNCTIONMACRO
    LOCAL numPlus := num + 1; //LOCAL required here
    RETURN numPlus;
ENDMACRO;

/****************** NESTED ******************/
MyMod := MODULE
    SHARED x := 88;
    y := 42;
    EXPORT InMod := MODULE //nested MODULE
        EXPORT Val1 := x + 10;
        EXPORT Val2 := y + 10;
    END;
END;

/****************** PATTERNS ******************/

PATTERN ws := PATTERN('[ \t\r\n]');
PATTERN arb := PATTERN('[-!.,\t a-zA-Z0-9]')+;
PATTERN number := PATTERN('[0-9]')+;
PATTERN age := '(' number OPT('/I') ')';
PATTERN role := '[' arb ']';
PATTERN m_rank := '<' number '>';
PATTERN actor := arb OPT(ws '(I)' ws);

MyFunc(STRING1 val, SET OF STRING1 S=ALL) := val IN S;

/****************** JOINS *******************/
Bld1 := BUILD(AlphaKey ,OVERWRITE);
Bld2 := BUILD(SeqKey,OVERWRITE);
peopleRecord := RECORD
    INTEGER8 id;
    STRING20 addr;
END;

peopleDataset := DATASET([{3000,'LONDON'},{3500,'SMITH'},
{30,'TAYLOR'}], peopleRecord);

joinedRecord := RECORD
    PtblRec;
    peopleRecord;
END;

joinedRecord doJoin(peopleRecord l, Ptbl r) := TRANSFORM
    SELF := l;
    SELF := r;
END;

FilledRecs1 := JOIN(peopleDataset, Ptbl,LEFT.id=RIGHT.seq,
                    doJoin(LEFT,RIGHT), KEYED(SeqKey));
FilledRecs2 := JOIN(peopleDataset, Ptbl,LEFT.addr=RIGHT.Lname,
                    doJoin(LEFT,RIGHT), KEYED(AlphaKey));
                    
SEQUENTIAL(PtblOut,Bld1,Bld2,OUTPUT(FilledRecs1),OUTPUT(FilledRecs2))

/****************** JOINS *******************/
OUTPUT(d, {Label := Subject, Value := Result}, NAMED('BarChart'));