~vcs-imports/gawk/master

« back to all changes in this revision

Viewing changes to awklib/eg/prog/indirectcall.awk

  • Committer: Andrew J. Schorr
  • Date: 2014-08-03 18:44:47 UTC
  • mfrom: (408.7.1)
  • mto: (408.2.352)
  • mto: This revision was merged to the branch mainline in revision 507.
  • Revision ID: git-v1:ff21da5c7f072a69e9582f1a7ae2039f27f564cf
Merge branch 'gawk-4.1-stable' to get --profile to work with -M.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# indirectcall.awk --- Demonstrate indirect function calls
2
 
#
3
 
# Arnold Robbins, arnold@skeeve.com, Public Domain
4
 
# January 2009
5
 
# average --- return the average of the values in fields $first - $last
6
 
 
7
 
function average(first, last,   sum, i)
8
 
{
9
 
    sum = 0;
10
 
    for (i = first; i <= last; i++)
11
 
        sum += $i
12
 
 
13
 
    return sum / (last - first + 1)
14
 
}
15
 
 
16
 
# sum --- return the sum of the values in fields $first - $last
17
 
 
18
 
function sum(first, last,   ret, i)
19
 
{
20
 
    ret = 0;
21
 
    for (i = first; i <= last; i++)
22
 
        ret += $i
23
 
 
24
 
    return ret
25
 
}
26
 
# For each record, print the class name and the requested statistics
27
 
{
28
 
    class_name = $1
29
 
    gsub(/_/, " ", class_name)  # Replace _ with spaces
30
 
 
31
 
    # find start
32
 
    for (i = 1; i <= NF; i++) {
33
 
        if ($i == "data:") {
34
 
            start = i + 1
35
 
            break
36
 
        }
37
 
    }
38
 
 
39
 
    printf("%s:\n", class_name)
40
 
    for (i = 2; $i != "data:"; i++) {
41
 
        the_function = $i
42
 
        printf("\t%s: <%s>\n", $i, @the_function(start, NF) "")
43
 
    }
44
 
    print ""
45
 
}
46
1
# num_lt --- do a numeric less than comparison
47
2
 
48
3
function num_lt(left, right)
72
27
    retval = data[1]
73
28
    for (i = 2; i in data; i++)
74
29
        retval = retval " " data[i]
75
 
 
 
30
    
76
31
    return retval
77
32
}
78
33
# sort --- sort the data in ascending order and return it as a string