Overview
Comment:Now detects symbolic args ($1 etc) and ignores them.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | origin/master | trunk
Files: files | file ages | folders
SHA3-256: a9384aee7d4cc299aa7fc085b37dffe56a8570131109050a004633ddb05877a4
User & Date: gawthrop@users.sourceforge.net on 1996-12-07 18:06:50
Other Links: branch diff | manifest | tags
Context
1996-12-07
18:20:11
Replaces null argument by a default and tells user. check-in: 67395c4bd4 user: gawthrop@users.sourceforge.net tags: origin/master, trunk
18:06:50
Now detects symbolic args ($1 etc) and ignores them. check-in: a9384aee7d user: gawthrop@users.sourceforge.net tags: origin/master, trunk
17:37:07
Now handles numbered SS ports appearing at top level. check-in: 74e4c1ec17 user: gawthrop@users.sourceforge.net tags: origin/master, trunk
Changes

Modified mttroot/mtt/bin/trans/awk/lbl2sympar.awk from [45ed1bc1ef] to [b36f691378].

8
9
10
11
12
13
14



15
16
17
18
19
20
21
# Copyright (c) P.J.Gawthrop, 1996.

###############################################################
## Version control history
###############################################################
## $Id$
## $Log$



## Revision 1.3  1996/08/30 10:30:54  peter
## Switched order of args in matches.
##
## Revision 1.2  1996/08/30 09:35:10  peter
## Fixed problem with global variable in function.
##
## Revision 1.1  1996/08/24 13:34:48  peter







>
>
>







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Copyright (c) P.J.Gawthrop, 1996.

###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
# Revision 1.4  1996/08/30  18:45:32  peter
# Removed header stuff.
#
## Revision 1.3  1996/08/30 10:30:54  peter
## Switched order of args in matches.
##
## Revision 1.2  1996/08/30 09:35:10  peter
## Fixed problem with global variable in function.
##
## Revision 1.1  1996/08/24 13:34:48  peter
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



    }
  }
  return matched;
    }


BEGIN {

comment = "%";
arg_delimiter = ",";
not_an_arg = "effort flow state internal external zero";
numeric = "[0-9]";
symbol_count = 0;
symbols = "";

}
{
  if ( (match($1,comment)==0) && (NF>=3) ) {






    args = $3;

    n_args = split(args,arg,arg_delimiter);
    for (i = 1; i <= n_args; i++) {
      first_char = substr(arg[i],1,1);
      if ( (matches(not_an_arg,arg[i])==0) \
	   && (match(first_char,numeric)==0) \

	   && (length(arg[i])>0) \
	   && (matches(symbols,arg[i]) ==0) ) {
	symbol_count++;
	symbols = sprintf("%s %s", symbols, arg[i]);
	  }
    }
  }
}
END {
# print the _sympar file

  printf("MTTNVar := %1.0f;\n", symbol_count);

  if (symbol_count>0) {
    printf("MATRIX MTTVar(MTTNVar,1);\n");
    split(symbols,symbol);
    for (i = 1; i <= symbol_count; i++) {
      printf("MTTVar(%1.0f,1) \t := %s;\n", i, symbol[i]);
    }
  }
  printf("END;\n\n");  
}










>


|



>



>
>
>
>
>
>
|
>





>




















|

>
>
>
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
    }
  }
  return matched;
    }


BEGIN {
sys_name = ARGV[1];
comment = "%";
arg_delimiter = ",";
not_an_arg = "effort flow state internal external zero 0 1";
numeric = "[0-9]";
symbol_count = 0;
symbols = "";
symbolic_arg_char = "$";
}
{
  if ( (match($1,comment)==0) && (NF>=3) ) {
# The following line is a bad attempt to use parameters in SS fields
# It assumes that at least one SS field is not_an_arg.
    if (matches(not_an_arg,$3)) {
      args = $2
	}
    else {
      args = $3;
    }
    n_args = split(args,arg,arg_delimiter);
    for (i = 1; i <= n_args; i++) {
      first_char = substr(arg[i],1,1);
      if ( (matches(not_an_arg,arg[i])==0) \
	   && (match(first_char,numeric)==0) \
	   && (match(first_char,symbolic_arg_char)==0) \
	   && (length(arg[i])>0) \
	   && (matches(symbols,arg[i]) ==0) ) {
	symbol_count++;
	symbols = sprintf("%s %s", symbols, arg[i]);
	  }
    }
  }
}
END {
# print the _sympar file

  printf("MTTNVar := %1.0f;\n", symbol_count);

  if (symbol_count>0) {
    printf("MATRIX MTTVar(MTTNVar,1);\n");
    split(symbols,symbol);
    for (i = 1; i <= symbol_count; i++) {
      printf("MTTVar(%1.0f,1) \t := %s;\n", i, symbol[i]);
    }
  }

}




MTT: Model Transformation Tools
GitHub | SourceHut | Sourceforge | Fossil RSS ]