- ((short *)(((char *)&result->___length___)+sizeof(int)))[i++]='\0';//(short)VAR(___this___)->___sourcename___[pos++]; // TODO
- }while(true);//(VAR(___this___)->___sourcename___[pos]!=' ')&&(VAR(___this___)->___sourcename___[pos]!='\n'));
+ unsigned char b=filearray[pos];
+ int val;
+ if (b>='0'&&b<='9')
+ val=b-'0';
+ else if (b>='a'&&b<='z')
+ val=10+b-'a';
+ else if (b>='A'&&b<='Z')
+ val=10+b-'A';
+ else {
+ cont=false;
+ }
+ if (cont) {
+ if (val>=radix)
+ printf("Error in Scanner.nextInt(): val >= radix");
+ value=value*radix+val;
+ pos++;
+ }
+ }while(cont);
+ if (isNeg)
+ value=-value;
+
+ VAR(___this___)->___currentpos___ = pos;
+ return value;
+}
+#endif
+
+#ifdef D___Scanner______nextDouble____
+double CALL01(___Scanner______nextDouble____, struct ___Scanner___ * ___this___) {
+ int pos = VAR(___this___)->___currentpos___;
+ int i = 0;
+ unsigned char * filearray = (unsigned char *)(VAR(___this___)->___filearray___);
+ while((filearray[pos]==' ')||(filearray[pos]=='\n')){
+ pos++;
+ }
+ double value = 0.0;
+ bool isNeg=false;
+ int radix = 10;
+
+ if (filearray[pos]=='-') {
+ isNeg=true;
+ pos++;
+ } else if(filearray[pos]=='+') {
+ pos++;
+ }
+ bool cont=true;
+ // TODO
+ /*do {
+ unsigned char b=filearray[pos];
+ int val;
+ if (b>='0'&&b<='9')
+ val=b-'0';
+ else if (b>='a'&&b<='z')
+ val=10+b-'a';
+ else if (b>='A'&&b<='Z')
+ val=10+b-'A';
+ else {
+ cont=false;
+ }
+ if (cont) {
+ if (val>=radix)
+ System.error();
+ value=value*radix+val;
+ pos++;
+ }
+ }while(cont)*/
+ if (isNeg)
+ value=-value;
+