Changeset 2218 in Sophya for trunk/SophyaPI/PIext/piacmd.cc
- Timestamp:
- Oct 21, 2002, 5:38:02 PM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaPI/PIext/piacmd.cc
r2215 r2218 889 889 q3 = s.find_first_of("]",q2+1); 890 890 string sia = s.substr(q2+1, q3-q2-1); 891 if (sia.length() < 1) { 892 cerr << " Syntax error - in $varname[index] : $" 893 << vn << "[" << sia <<"]" << endl; 894 return(4); 895 } 896 if (isalpha(sia[0])) { 897 string sia2; 898 if (!GetVar(sia, sia2) || (sia2.length() < 1)) { 899 cerr << " Syntax error - in $varname[index] : $" 900 << vn << "[" << sia <<"]" << endl; 901 return(4); 902 } 903 sia = sia2; 904 } 891 905 int rcdia = ctoi(sia.c_str(), &iarr); 892 906 if (rcdia < 0) { … … 936 950 cerr << " PIACmd::SubstituteVar/Error: ArgsStack empty ! " 937 951 << " ($" << vn << ")" << endl; 938 vv = ""; return(false);952 vv = ""; return(false); 939 953 } 940 954 char buff[32]; 941 955 long an = ArgsStack.top().size(); 942 956 sprintf(buff,"%ld", an); 943 vv = buff; 957 vv = buff; return(true); 944 958 } 945 959 else if (ctoi(vn.c_str(), &ka) > 0) { // $0 $1 $2 ... … … 954 968 vv = ""; return(false); 955 969 } 956 vv = ArgsStack.top()[ka]; 957 } 970 vv = ArgsStack.top()[ka]; return(true); 971 } 972 else if (vn[0] == '#') { // Variable de type $#vname --> size(vname) 973 vn = vn.substr(1); 974 if (!omg.HasVar(vn) ) { 975 cerr << " PIACmd::SubstituteVarError: Undefined variable " 976 << vn << " ! " << endl; 977 vv = ""; return(false); 978 } 979 vn = omg.GetVar(vn); 980 vector<string> vs; 981 FillVStringFrString(vn, vs); 982 char buff[32]; 983 sprintf(buff,"%d", (int)vs.size()); 984 vv = buff; return(true); 985 } 958 986 else { // variable ordinaire geree par NamedObjMgr 959 987 if ( (!omg.HasVar(vn)) ) { 960 988 cerr << " PIACmd::SubstituteVarError: Undefined variable " 961 989 << vn << " ! " << endl; 962 vv = ""; return(false);963 } 964 vv = omg.GetVar(vn); 965 } 966 967 return( true);990 vv = ""; return(false); 991 } 992 vv = omg.GetVar(vn); return(true); 993 } 994 995 return(false); 968 996 } 969 997
Note:
See TracChangeset
for help on using the changeset viewer.