SHARE
TWEET

step 3 main

vikt144 Nov 23rd, 2019 72 in 130 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // forth ass https://pastebin.com/0rAMsDv1  
  2. import java.util.*;
  3. import forth.*;
  4.  
  5. public class usesStack {
  6.  
  7.  
  8.     public static void main(String[] args) {
  9.  
  10.         Scanner in = new Scanner(System.in);
  11.  
  12.         System.out.println(" введите строку или end для выхода");
  13.  
  14.  //////////////////////////////////////////////STACK//////
  15.   STACK ST,STa;   // стеки данных и адресный      
  16.   ST=new STACK();
  17.   int[] stackarray = new int [20];
  18.   ST.stack=stackarray;
  19.  
  20.   ////////////////////////////////////////
  21.  
  22.  fas as = new fas();
  23.  
  24.       as.ST=ST;  //   добавить стек
  25.       as.here=  2;
  26.       as.  latest=3;
  27.       as.state   =4;      
  28.       as.  memory[as.here]=6; //взято от балды
  29.       as.  memory[as.latest]=0; // записи в словари еще не создавались
  30.       as.  memory[as.state] =0; // 0 на данный момент исполнение        
  31.     Vector V=null;
  32.      V = as.initVirtualMem(0);
  33.     as.StringVector=V;
  34.  
  35.  
  36.  as.TIB="";  
  37.  
  38.  while (as.TIB.compareTo("end")!=0) {
  39.            as.TIB  =null;
  40.            as.TIB  =in.nextLine();
  41.                  
  42.         as._IN=0;                      // !  changed
  43.        boolean log = true;    
  44.            while ( log ) {
  45.        String st;//  = as.word_(TIB);
  46.         int old_in = as._IN;
  47.         as.ST.push(666);  
  48.         as.WORD();    // на стеке 0
  49.      
  50.            st = as.StrBuffer;  //  ;   // !  changed
  51.        if (st=="") { log = false;  }
  52.               else { as.FIND();
  53.                  int n = as.ST.pop();     // снять со стека признак немедленного исполнения
  54.                      int ind = as.ST.pop();  // снять со стека cfa
  55.                  if (n==0) {
  56.                       as._IN=old_in;
  57.                   as.cre1();
  58.                   System.out.println(st+" добавляется в словарь" );
  59.                   }
  60.                   else {
  61.                   System.out.println("слово " +  st + " найдено" );
  62.                   }
  63.  
  64.                 }
  65.        }//while log
  66.  }//while      
  67.  
  68.   printm(as.memory,0  , 8 , 25 );      
  69.  
  70.   for (int k=0;k<V.size();k++) System.out.println(V.elementAt(k).toString() ) ;
  71.  
  72. //  System.out.println(as.getTypeData( V ,0 )  );
  73. }//main
  74.  
  75. static void printm(short[] mem,  int start , int str, int col) { //dump
  76.   int pos=start;
  77.   for (int l=0;l<str;l++) {
  78.    for (int k=0;k<col;k++) {
  79.      if (pos < mem.length )
  80.        {System.out.print(mem [pos]+" "); pos++;
  81.        }//endif
  82.      }//for  
  83.     System.out.println("# \n");
  84.  }//for
  85.  } //void
  86.  
  87. }//all
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top