diff --git a/RIGAL/rigsc.446/src/ley_.c b/RIGAL/rigsc.446/src/ley_.c
index d22d2cee03a4ed032c8ce3c32aebca9e370b1faf..662a8e10396eb03791a297dde187d86124e610ab 100644
--- a/RIGAL/rigsc.446/src/ley_.c
+++ b/RIGAL/rigsc.446/src/ley_.c
@@ -22,12 +22,13 @@
                              c if returned from %include
 */
 
-#define filemax         4   /* ~islo wlovenij dlq include */
-#define bufmaxlen       10   /* dlina malogo bufera , kak minimum - 8 */
-#define two_char_sym_max  50   /* maks. massiwa */
+#define filemax         4	/* ~islo wlovenij dlq include */
+#define bufmaxlen       10	/* dlina malogo bufera , kak minimum - 8 */
+#define two_char_sym_max  50	/* maks. massiwa */
 
 
-typedef union bufrectype {
+typedef union bufrectype
+{
   Char lexbuf[bufmaxlen];
   Char b1;
   Char b2[2];
@@ -42,45 +43,48 @@ typedef union bufrectype {
 } bufrectype;
 
 
-FILE *infile[filemax];   /* fajly ish. teksta */
-bufrectype bufrec;   /* sohranenie dlq leksera !!!! */
+FILE *infile[filemax];		/* fajly ish. teksta */
+bufrectype bufrec;		/* sohranenie dlq leksera !!!! */
 c2 twochar_symbols[two_char_sym_max];
 char twochar_symbols_num;
 
 
-typedef Char a146[146];   /* source string type */
+typedef Char a146[146];		/* source string type */
 
 typedef Char bigstr_type[146];
 
 
 
-typedef struct _REC_fistack {
-  long curline;   /* current line of this file */
-  filespecification f;   /* file name */
+typedef struct _REC_fistack
+{
+  long curline;			/* current line of this file */
+  filespecification f;		/* file name */
 } _REC_fistack;
 
 /* Local variables for ley: */
-struct LOC_ley {
+struct LOC_ley
+{
   error_rec_type *error_rec;
   a satomadr;
-  long i;   /* current byte */
+  long i;			/* current byte */
   boolean errflag;
   a146 s;
 
   _REC_fistack fistack[filemax + 1];
   long fistacklen;
-} ;
+};
 
-Local Void newlist(pp)
-ptr_ *pp;
+Local Void
+newlist (pp)
+     ptr_ *pp;
 {
   /* nowyj ukazatelx spiska */
   /* sozdaet nowyj spisok */
   mpd x;
   a a1;
 
-  gets5(&a1, &x.sa);
-  points(a1, &x.sa);
+  gets5 (&a1, &x.sa);
+  points (a1, &x.sa);
   x.smld->dtype = listmain;
   x.smld->lastfragm = a1;
   pp->ptrtype = ptrlist;
@@ -90,151 +94,152 @@ ptr_ *pp;
   pp->UU.U1.mainadr = a1;
 }
 
-Local Void push(pp, adr)
-ptr_ *pp;
-long adr;
+Local Void
+push (pp, adr)
+     ptr_ *pp;
+     long adr;
 {
   mpd x, x1;
   a a1;
 
-  /* dobawlqet po pojnteru spiska nowyj |lement k spisku*/
+  /* dobawlqet po pojnteru spiska nowyj |lement k spisku */
   /* i sdwigaet pojnter pp */
-  if (pp->ptrtype != ptrlist) {
-    printf("Rigal internal error Push-102\n");
-    return;
-  }  /* if/then */
-  points(pp->UU.U1.mainadr, &x.sa);
+  if (pp->ptrtype != ptrlist)
+    {
+      printf ("Rigal internal error Push-102\n");
+      return;
+    }				/* if/then */
+  points (pp->UU.U1.mainadr, &x.sa);
   if (x.smld->dtype == listmain)
     x.smld->totalelnum++;
   else
-    printf("Rigal internal error Push-101\n");
-  points(pp->UU.U1.curfragment, &x.sa);
-  if (
-       ( 
-         (x.smld->dtype == listmain       )  && 
-         (pp->nel       == mainlistelnum  )     ) ||
-       ( 
-         (x.sfld->dtype == listfragm      )  && 
-         (pp->nel       == fragmlistelnum )     )
-     )
-   {
-    /* w slu~ae dostiveniq konca fragmenta spiska */
-    gets5(&a1, &x1.sa);
-    if (x.smld->dtype == listmain)   /* podceplenie */
-      x.smld->next = a1;
-    else
-      x.sfld->next = a1;
-    /* obrazuem i zapolnqem nowyj  */
-    x1.sfld->dtype = listfragm;
-    x1.sfld->elnum = 1;
-    x1.sfld->elt[0] = adr;
-    points(pp->UU.U1.mainadr, &x.sa);
-    x.smld->lastfragm = a1;
-    /* sdwig pojntera */
-    pp->nel = 1;
-    pp->cel = adr;
-    pp->UU.U1.curfragment = a1;
-    return;
-  }  /* then */
+    printf ("Rigal internal error Push-101\n");
+  points (pp->UU.U1.curfragment, &x.sa);
+  if (((x.smld->dtype == listmain) &&
+       (pp->nel == mainlistelnum)) ||
+      ((x.sfld->dtype == listfragm) && (pp->nel == fragmlistelnum)))
+    {
+      /* w slu~ae dostiveniq konca fragmenta spiska */
+      gets5 (&a1, &x1.sa);
+      if (x.smld->dtype == listmain)	/* podceplenie */
+	x.smld->next = a1;
+      else
+	x.sfld->next = a1;
+      /* obrazuem i zapolnqem nowyj  */
+      x1.sfld->dtype = listfragm;
+      x1.sfld->elnum = 1;
+      x1.sfld->elt[0] = adr;
+      points (pp->UU.U1.mainadr, &x.sa);
+      x.smld->lastfragm = a1;
+      /* sdwig pojntera */
+      pp->nel = 1;
+      pp->cel = adr;
+      pp->UU.U1.curfragment = a1;
+      return;
+    }				/* then */
   /* ob{ij clu~aj dobawleniq |lementa wnutri fragmenta */
-  switch (x.smld->dtype) {
-
-  case listmain:
-    x.smld->elnum++;
-    x.smld->elt[pp->nel] = adr;
-    break;
-
-  case listfragm:
-    x.sfld->elnum++;
-    x.sfld->elt[pp->nel] = adr;
-    break;
-  }/* case */
+  switch (x.smld->dtype)
+    {
+
+    case listmain:
+      x.smld->elnum++;
+      x.smld->elt[pp->nel] = adr;
+      break;
+
+    case listfragm:
+      x.sfld->elnum++;
+      x.sfld->elt[pp->nel] = adr;
+      break;
+    }				/* case */
   pp->nel++;
   pp->cel = adr;
   /* else */
-}  /* push */
+}				/* push */
 
-Local Void mistake(mistake_num, LINK)
-long mistake_num;
-struct LOC_ley *LINK;
+Local Void
+mistake (mistake_num, LINK)
+     long mistake_num;
+     struct LOC_ley *LINK;
 {
   string80 com;
 
-  printf("Error...%12ld M=%s\n", mistake_num, LINK->error_rec->message);
-  switch (mistake_num) {
+  printf ("Error...%12ld M=%s\n", mistake_num, LINK->error_rec->message);
+  switch (mistake_num)
+    {
 
-  case 1:
-    strcpy(com, "MAIN PROGRAM FILE  IS NOT FOUND ");
-    break;
+    case 1:
+      strcpy (com, "MAIN PROGRAM FILE  IS NOT FOUND ");
+      break;
 
-  case 2:
-    strcpy(com, "MORE THAN 2 NESTED %INCLUDE FILES");
-    break;
+    case 2:
+      strcpy (com, "MORE THAN 2 NESTED %INCLUDE FILES");
+      break;
 
-  case 3:
-    strcpy(com, "THIS %INCLUDE FILE  IS NOT FOUND ");
-    break;
+    case 3:
+      strcpy (com, "THIS %INCLUDE FILE  IS NOT FOUND ");
+      break;
 
-  case 4:
-    strcpy(com, "TOO LONG (>80 BYTES) TOKEN");
-    break;
+    case 4:
+      strcpy (com, "TOO LONG (>80 BYTES) TOKEN");
+      break;
 
-  case 5:
-    strcpy(com, "WRONG CHARACTER AFTER NUMBER");
-    break;
+    case 5:
+      strcpy (com, "WRONG CHARACTER AFTER NUMBER");
+      break;
 
-  case 6:
-    strcpy(com, "TOO BIG NUMBER (> 2.**31) ");
-    break;
+    case 6:
+      strcpy (com, "TOO BIG NUMBER (> 2.**31) ");
+      break;
 
-  case 8:
-    strcpy(com, "ENDING APOSTROPHE NOT FOUND IN THIS LINE");
-    break;
+    case 8:
+      strcpy (com, "ENDING APOSTROPHE NOT FOUND IN THIS LINE");
+      break;
 
-  case 11:
-    strcpy(com, "THIS CHARACTER NOT ALLOWED ");
-    break;
+    case 11:
+      strcpy (com, "THIS CHARACTER NOT ALLOWED ");
+      break;
 
-  case 12:
-    strcpy(com, "NUMBER AFTER \"A'\" NOT FOUND ");
-    break;
+    case 12:
+      strcpy (com, "NUMBER AFTER \"A'\" NOT FOUND ");
+      break;
 
-  case 13:
-    strcpy(com, "ZERO LENGTH STRING NOT ALLOWED");
-    break;
+    case 13:
+      strcpy (com, "ZERO LENGTH STRING NOT ALLOWED");
+      break;
 
-  case 14:
-    strcpy(com, "RULE NAME AFTER \"#\" NOT FOUND ");
-    break;
+    case 14:
+      strcpy (com, "RULE NAME AFTER \"#\" NOT FOUND ");
+      break;
 
-  case 17:
-    strcpy(com, "NUMBER AFTER \"A'\" MUST BE N*512");
-    break;
+    case 17:
+      strcpy (com, "NUMBER AFTER \"A'\" MUST BE N*512");
+      break;
 
-  case 18:
-    strcpy(com, "WRONG DIGIT (8 or 9) IN OCTAL NUMBER ");
-    break;
+    case 18:
+      strcpy (com, "WRONG DIGIT (8 or 9) IN OCTAL NUMBER ");
+      break;
 
 
-  default:
-    strcpy(com, "UNKNOWN LEXICAL ERROR");
-    break;
-  }
-  printf("...\n");
+    default:
+      strcpy (com, "UNKNOWN LEXICAL ERROR");
+      break;
+    }
+  printf ("...\n");
   LINK->errflag = true;
-  strcpy(LINK->error_rec->message, com);
+  strcpy (LINK->error_rec->message, com);
   LINK->error_rec->address =
     LINK->fistack[LINK->fistacklen - 1].curline * 80 + LINK->i;
-  strcpy(LINK->error_rec->filename, LINK->fistack[LINK->fistacklen - 1].f);
-  printf(" LEXICAL ERROR : %s\n", com);
-  printf(" LINE=%12ld  SYMBOL=%12ld\n",
-	 LINK->fistack[LINK->fistacklen - 1].curline, LINK->i);
+  strcpy (LINK->error_rec->filename, LINK->fistack[LINK->fistacklen - 1].f);
+  printf (" LEXICAL ERROR : %s\n", com);
+  printf (" LINE=%12ld  SYMBOL=%12ld\n",
+	  LINK->fistack[LINK->fistacklen - 1].curline, LINK->i);
 }
 
-Local Void makeatom(ik, jk, desk, LINK)
-long ik, jk;
-char desk;
-struct LOC_ley *LINK;
+Local Void
+makeatom (ik, jk, desk, LINK)
+     long ik, jk;
+     char desk;
+     struct LOC_ley *LINK;
 {
   /* makes s-atom
      from array s, starting ik, length jk
@@ -243,40 +248,41 @@ struct LOC_ley *LINK;
   a a1m;
   atomdescriptor *WITH;
 
-  putatm(&LINK->s[ik - 1], jk, &a1m);
-  gets1(&LINK->satomadr, &x.sa);
+  putatm (&LINK->s[ik - 1], jk, &a1m);
+  gets1 (&LINK->satomadr, &x.sa);
   WITH = x.sad;
   WITH->cord = LINK->fistack[LINK->fistacklen - 1].curline * 80 + LINK->i;
-      /*!!*/
+  /*!! */
   WITH->dtype = desk;
   WITH->name = a1m;
 }
 
 
 
-Void ley(first_file, lesrez, not_include, error_rec_)
-Char *first_file;
-long *lesrez;
-boolean not_include;
-error_rec_type *error_rec_;
+Void
+ley (first_file, lesrez, not_include, error_rec_)
+     Char *first_file;
+     long *lesrez;
+     boolean not_include;
+     error_rec_type *error_rec_;
 {
   /* added lastfragm 12-jul-91 */
   struct LOC_ley V;
-  /*string80 first_file;*/
+  /*string80 first_file; */
   char dt;
   longint ilong;
   a adr;
   char jcase;
   long j, nn, jj, ii;
   mpd x;
-  long len;   /* current line length */
+  long len;			/* current line length */
   ptr_ p;
   mpd y;
   boolean is_ident;
   /*  srb,srl,slb,sll: string; */
 /*  Char table[256]; */
   boolean maybe_octal;
-  bigstr_type a_long;   /*varying[145] of char;*/
+  bigstr_type a_long;		/*varying[145] of char; */
   a146 s1;
   filespecification ff1;
   string80 ssint;
@@ -294,33 +300,35 @@ error_rec_type *error_rec_;
 
 /*  strcpy(first_file, first_file_); */
   V.error_rec = error_rec_;
-  strcpy(twochar_string,
-    ":= :: >= <> (. .) <= -> (* *) (+ +) ## ;; !! ++ !. <. .> <* *> << >> IF FI IN DO OD OR $$ <] S' V'");
+  strcpy (twochar_string,
+	  ":= :: >= <> (. .) <= -> (* *) (+ +) ## ;; !! ++ !. <. .> <* *> << >> IF FI IN DO OD OR $$ <] S' V'");
   /* file stack initialization */
   V.fistacklen = 1;
   V.fistack[0].curline = 0;
-  strcpy(V.fistack[0].f, first_file);
+  strcpy (V.fistack[0].f, first_file);
 
   V.errflag = false;
-  for (V.i = 1; V.i <= 33; V.i++) {
-    twochar_symbols[V.i - 1][0] = twochar_string[V.i * 3 - 3];
-    twochar_symbols[V.i - 1][1] = twochar_string[V.i * 3 - 2];
-  }
+  for (V.i = 1; V.i <= 33; V.i++)
+    {
+      twochar_symbols[V.i - 1][0] = twochar_string[V.i * 3 - 3];
+      twochar_symbols[V.i - 1][1] = twochar_string[V.i * 3 - 2];
+    }
   twochar_symbols_num = 33;
-  if (!existfile(first_file)) {
-    strcpy(V.error_rec->message, first_file);
-    mistake(1L, &V);
-    goto _L199;
-  }
-  infile[0] = fopen(first_file, "r");
+  if (!existfile (first_file))
+    {
+      strcpy (V.error_rec->message, first_file);
+      mistake (1L, &V);
+      goto _L199;
+    }
+  infile[0] = fopen (first_file, "r");
   if (infile[0] == NULL)
-    _EscIO(FileNotFound);
-  newlist( &p );   /* create list descriptor */
+    _EscIO (FileNotFound);
+  newlist (&p);			/* create list descriptor */
   *lesrez = p.UU.U1.mainadr;
- /* for (ii = 0; ii <= 255; ii++)
-    table[(Char)ii] = (Char)ii;*/
+  /* for (ii = 0; ii <= 255; ii++)
+     table[(Char)ii] = (Char)ii; */
 
-  ii = 0;   /* token number */
+  ii = 0;			/* token number */
 
   /* file stack initialization */
 
@@ -332,477 +340,521 @@ _L1:
 
   /* len - current line length
      i - byte number in this line where first letter of
-         token stays */
-
-  if (V.i == len + 1) {
-    /* go to next line of source text */
-    if (feof(infile[V.fistacklen - 1])) {
-      if (V.fistacklen == 1)
-	goto _L99;   /* exit from lexer */
-      else {
-	if (infile[V.fistacklen - 1] != NULL)
-	  fclose(infile[V.fistacklen - 1]);
-	infile[V.fistacklen - 1] = NULL;
-	V.fistacklen--;
-	/* adding letter 'C'=continuation flag */
-    if (strlen(ff1) < 80)  ff1[(int)strlen(ff1)]='C';
-    else exit(0);
-	//sprintf(ff1, "%sC", V.fistack[V.fistacklen - 1].f);
-	FORLIM = strlen(ff1);
-	for (j = 0; j < FORLIM; j++)
-	  V.s[j] = ff1[j];
-	makeatom(1L, (long)strlen(ff1), tatom, &V);
-	goto _L33;
-      }
-    }
+     token stays */
+
+  if (V.i == len + 1)
+    {
+      /* go to next line of source text */
+      if (feof (infile[V.fistacklen - 1]))
+	{
+	  if (V.fistacklen == 1) goto _L99;		/* exit from lexer */
+	  else
+	    {
+	      if (infile[V.fistacklen - 1] != NULL) fclose (infile[V.fistacklen - 1]);
+	      infile[V.fistacklen - 1] = NULL;
+	      V.fistacklen--;
+	      /* adding letter 'C'=continuation flag */
+	      if (strlen (ff1) < 80) ff1[(int) strlen (ff1)] = 'C';
+	      else exit (0);
+	      //sprintf(ff1, "%sC", V.fistack[V.fistacklen - 1].f);
+	      FORLIM = strlen (ff1);
+	      for (j = 0; j < FORLIM; j++) V.s[j] = ff1[j];
+	      makeatom (1L, (long) strlen (ff1), tatom, &V);
+	      goto _L33;
+	    }
+	}
 
-    /* next line take */
+      /* next line take */
 
-    /*readln(infile[fistacklen],a_long);*/
+      /*readln(infile[fistacklen],a_long); */
 
 
 
 #ifdef xxx
-    *a_long = '\0';
-    while (true) {
-      if (feoln(infile[V.fistacklen - 1])) {
-	c = getc(infile[V.fistacklen - 1]);
-	if (c == '\n')
-	  c = ' ';
-	rline = 4;
-	goto _L95;
-      }
-      c = getc(infile[V.fistacklen - 1]);
-      if (c == '\n')
-	c = ' ';
-      sprintf(a_long + strlen(a_long), "%c", c);
-      if (feof(infile[V.fistacklen - 1])) {
-	rline = 1;
-	goto _L95;
-      }
-      if (!feoln(infile[V.fistacklen - 1]))
-	continue;
-      c = getc(infile[V.fistacklen - 1]);
-      if (c == '\n')
-	c = ' ';
-      if (feof(infile[V.fistacklen - 1]))
-	rline = 2;
-      else
-	rline = 3;
-      goto _L95;
-    }
-_L95:
+      *a_long = '\0';
+      while (true)
+	{
+	  if (feoln (infile[V.fistacklen - 1]))
+	    {
+	      c = getc (infile[V.fistacklen - 1]);
+	      if (c == '\n')
+		c = ' ';
+	      rline = 4;
+	      goto _L95;
+	    }
+	  c = getc (infile[V.fistacklen - 1]);
+	  if (c == '\n')
+	    c = ' ';
+	  sprintf (a_long + strlen (a_long), "%c", c);
+	  if (feof (infile[V.fistacklen - 1]))
+	    {
+	      rline = 1;
+	      goto _L95;
+	    }
+	  if (!feoln (infile[V.fistacklen - 1]))
+	    continue;
+	  c = getc (infile[V.fistacklen - 1]);
+	  if (c == '\n')
+	    c = ' ';
+	  if (feof (infile[V.fistacklen - 1]))
+	    rline = 2;
+	  else
+	    rline = 3;
+	  goto _L95;
+	}
+    _L95:
 #endif
+      memset(a_long,0,145);
+      fgets (a_long, 145, infile[V.fistacklen - 1]);
+      if (a_long[strlen (a_long) - 1] == '\n')
+	  {
+	    a_long[strlen (a_long) - 1] = 0;
+	    fff = fgetc (infile[V.fistacklen - 1]);
+	    if (fff != 10)
+	    {
+	      ungetc (fff, infile[V.fistacklen - 1]);
+	    }
+	    else V.fistack[V.fistacklen - 1].curline++;
+	  }
 
-    fgets(a_long,145,infile[V.fistacklen-1]);
-    if (a_long[strlen(a_long)-1]=='\n')
-             { a_long[strlen(a_long)-1]=0;
-               fff=fgetc(infile[V.fistacklen-1]);
-               if (fff!=10)
-                    { ungetc(fff,infile[V.fistacklen-1]);}
-               else
-                      V.fistack[V.fistacklen - 1].curline++;
-             }
-
-    V.fistack[V.fistacklen - 1].curline++;
-    /* line counter */
-    len = strlen(a_long);
-    for (V.i = 1; V.i <= len; V.i++)
-      V.s[V.i - 1] = a_long[V.i - 1];
-    V.s[len] = ' ';
-    V.i = 1;
-  }
-
-  for (j = 1; j <= 10; j++)
-    bufrec.b10[j - 1] = V.s[V.i + j - 2];
-  if (!strncmp(bufrec.b2, "--", 2)) {   /* koa_longmentarii */
-    V.i = len + 1;
-    goto _L1;
-  }
-  switch (bufrec.b1) {
-
-  case ' ':
-  case '\t':   /*tabulator*/
-    while ((V.s[V.i - 1] == ' ' || V.s[V.i - 1] == '\t') && V.i <= len)
-      V.i++;
-    /* when exits  i=len+1 or s[i]<>' ' */
-    goto _L1;
-    break;
-
-  case '\'':
-    memcpy(s1, V.s, sizeof(a146));
-    /* saving line to s1, analise, write to s
-              and give s to  makeatom */
-    j = 1;
-    jj = 1;
-    while (
-            (
-              ( V.i + j         <= len  )         &&
-	          ( 
-                ( s1[V.i + j - 1] != '\'' )     ||
-	            ( ( s1[V.i + j - 1] == '\'' ) && 
-                  ( s1[V.i + j    ] == '\'' )  )   ) 
-            )
-          )
-         {
-      if (s1[V.i + j - 1] == '\'' && s1[V.i + j] == '\'')
-	j++;
-      /* if two apostrophes then we move to second
-         and write only one */
-      V.s[V.i + jj - 1] = s1[V.i + j - 1];
-      /* s filled not from [1] for right diagnostics*/
-      jj++;
-      j++;
+      V.fistack[V.fistacklen - 1].curline++;
+      /* line counter */
+      len = strlen (a_long);
+      memset(V.s,0,len+1);
+      memmove( V.s, a_long, len+1);
+      //for (V.i = 1; V.i <= len; V.i++) V.s[V.i - 1] = a_long[V.i - 1];
+      V.s[len] = ' ';
+      V.i = 1;
     }
-
-    is_ident = is_rig_letter (V.s[V.i]);
-    for (nn = 1; nn <= jj - 2; nn++) {
-      if (!  is_rig_symbol (V.s[V.i + nn]))
-	is_ident = false;
+  memset(bufrec.b10,0,10);
+  for (j = 1; j <= 10; j++) bufrec.b10[j - 1] = V.s[V.i + j - 2];
+  if (!strncmp (bufrec.b2, "--", 2))
+    {				/* koa_longmentarii */
+      V.i = len + 1;
+      goto _L1;
     }
-    if (is_ident)
-      dt = idatom;
-    else
-      dt = atom;
+  switch (bufrec.b1)
+    {
+
+    case ' ':
+    case '\t':
+    case '\b':
+    case '\v':
+    case '\n':
+      while ( 
+              (
+                V.s[V.i - 1] == ' '  || 
+                V.s[V.i - 1] == '\t' ||
+                V.s[V.i - 1] == '\b' ||
+                V.s[V.i - 1] == '\v' ||
+                V.s[V.i - 1] == '\n' 
+              ) && V.i <= len
+            ) V.i++;
+      /* when exits  i=len+1 or s[i]<>' ' */
+      goto _L1;
+      break;
 
-    if (jj == 1) {
-      mistake(13L, &V);
-      goto _L199;
-    }
-    if (s1[V.i + j - 1] != '\'') {
-      mistake(8L, &V);
-      goto _L199;
-    }
-    makeatom(V.i + 1, jj - 1, dt, &V);
-    V.i += j + 1;
-    memcpy(V.s, s1, sizeof(a146));   /* return saved line */
-    goto _L33;
-    break;
-
-  case '%':
-    if (!strncmp(bufrec.b6, "%INCLU", 6)) {
-      for (j = -1; j <= 6; j++)
-	V.s[V.i + j] = ' ';
-      *ff1 = '\0';
-      for (j = 7; j <= len - 2; j++) {
-	/* file name we take till the end of line */
-	if (V.s[V.i + j] != ' ')
-	  sprintf(ff1 + strlen(ff1), "%c", V.s[V.i + j]);
-      }
-      V.i = len + 1;
-      if (!not_include) {
-	if (V.fistacklen == filemax) {
-	  mistake(2L, &V);
-	  goto _L199;
+    case '\'':
+      memset  (s1,0,sizeof(a146));
+      memmove (s1, V.s, sizeof (a146));
+      /* saving line to s1, analise, write to s
+         and give s to  makeatom */
+      j = 1;
+      jj = 1;
+      while (((V.i + j <= len) &&
+	      ((s1[V.i + j - 1] != '\'') ||
+	       ((s1[V.i + j - 1] == '\'') && (s1[V.i + j] == '\'')))))
+	{
+	  if (s1[V.i + j - 1] == '\'' && s1[V.i + j] == '\'')
+	    j++;
+	  /* if two apostrophes then we move to second
+	     and write only one */
+	  V.s[V.i + jj - 1] = s1[V.i + j - 1];
+	  /* s filled not from [1] for right diagnostics */
+	  jj++;
+	  j++;
 	}
 
-	V.fistacklen++;
+      is_ident = is_rig_letter (V.s[V.i]);
+      for (nn = 1; nn <= jj - 2; nn++)
+	{
+	  if (!is_rig_symbol (V.s[V.i + nn]))
+	    is_ident = false;
+	}
+      if (is_ident)
+	dt = idatom;
+      else
+	dt = atom;
 
-	if (!existfile(ff1)) {
-	  V.fistacklen--;
-	  strcpy(V.error_rec->message, ff1);
-	  mistake(3L, &V);
+      if (jj == 1)
+	{
+	  mistake (13L, &V);
 	  goto _L199;
 	}
-
-
-
-	infile[V.fistacklen - 1] = fopen(ff1, "r");
-
-	if (infile[V.fistacklen - 1] == NULL)
-	  _EscIO(FileNotFound);
-	printf("reading %s\n", ff1);
-
-
-	V.fistack[V.fistacklen - 1].curline = 0;
-	strcpy(V.fistack[V.fistacklen - 1].f, ff1);
-	/* establish %include flag='I' */
-	strcat(ff1, "I");
-	FORLIM = strlen(ff1);
-	for (j = 0; j < FORLIM; j++)
-	  V.s[j] = ff1[j];
-	makeatom(1L, (long)strlen(ff1), tatom, &V);
-	V.i = 1;
-	len = 0;
-	goto _L33;
-      }
-      V.i = 1;
-      len = 0;
-      goto _L1;
-    } else {
-      mistake(11L, &V);
-      goto _L199;
-    }
-    break;
-
-  case '#':
-    j = 1;
-    if (!strncmp(bufrec.b2, "##", 2)) {
-      makeatom(V.i, 2L, keyword, &V);
-      V.i += 2;
-      goto _L33;
-    }
-
-    while ( is_rig_symbol (V.s[V.i + j - 1]))
-      j++;
-    if (j == 1) {
-      mistake(14L, &V);
-      goto _L199;
-    }
-    j--;
-    putatm(&V.s[V.i], j, &adr);
-    gets2(&V.satomadr, &y.sa);
-    WITH1 = y.srd;
-    WITH1->dtype = rulename;
-    WITH1->cord = V.fistack[V.fistacklen - 1].curline * 80 + V.i;
-    WITH1->fragmadr = 0;
-    WITH1->nomintab = 0;
-    WITH1->name = adr;
-    V.i += j + 1;
-    goto _L33;
-    break;
-
-  case '$':
-    j = 1;
-    if (V.s[V.i] == '$') {
-      j = 2;
-      putatm(&V.s[V.i - 1], j, &adr);
-      makeatom(V.i, 2L, keyword, &V);
-      V.i += 2;
+      if (s1[V.i + j - 1] != '\'')
+	{
+	  mistake (8L, &V);
+	  goto _L199;
+	}
+      makeatom (V.i + 1, jj - 1, dt, &V);
+      V.i += j + 1;
+      memcpy (V.s, s1, sizeof (a146));	/* return saved line */
       goto _L33;
-    }
-    while (is_rig_symbol(V.s[V.i + j - 1]))
-      j++;
-    j--;
-    if (j > 0)
-      putatm(&V.s[V.i], j, &adr);
-    j++;
-    if (j == 1) {
-      V.s[V.i - 1] = '_';
-      j = 1;
-      putatm(&V.s[V.i - 1], j, &adr);
-    }
-    gets1(&V.satomadr, &x.sa);
-    WITH2 = x.svd;   /* with */
-    switch (V.s[V.i]) {
-
-    case 'N':
-      WITH2->dtype = nvariable;
       break;
 
-    case 'I':
-      WITH2->dtype = idvariable;
+    case '%':
+      if (!strncmp (bufrec.b6, "%INCLU", 6))
+	{
+	  for (j = -1; j <= 6; j++)
+	    V.s[V.i + j] = ' ';
+	  *ff1 = '\0';
+	  for (j = 7; j <= len - 2; j++)
+	    {
+	      /* file name we take till the end of line */
+	      if (V.s[V.i + j] != ' ')
+		sprintf (ff1 + strlen (ff1), "%c", V.s[V.i + j]);
+	    }
+	  V.i = len + 1;
+	  if (!not_include)
+	    {
+	      if (V.fistacklen == filemax)
+		{
+		  mistake (2L, &V);
+		  goto _L199;
+		}
+
+	      V.fistacklen++;
+
+	      if (!existfile (ff1))
+		{
+		  V.fistacklen--;
+		  strcpy (V.error_rec->message, ff1);
+		  mistake (3L, &V);
+		  goto _L199;
+		}
+
+
+
+	      infile[V.fistacklen - 1] = fopen (ff1, "r");
+
+	      if (infile[V.fistacklen - 1] == NULL) _EscIO (FileNotFound);
+	      printf ("reading %s\n", ff1);
+
+
+	      V.fistack[V.fistacklen - 1].curline = 0;
+	      strcpy (V.fistack[V.fistacklen - 1].f, ff1);
+	      /* establish %include flag='I' */
+	      strcat (ff1, "I");
+	      FORLIM = strlen (ff1);
+	      for (j = 0; j < FORLIM; j++) V.s[j] = ff1[j];
+	      makeatom (1L, (long) strlen (ff1), tatom, &V);
+	      V.i = 1;
+	      len = 0;
+	      goto _L33;
+	    }
+	  V.i = 1;
+	  len = 0;
+	  goto _L1;
+	}
+      else
+	{
+	  mistake (11L, &V);
+	  goto _L199;
+	}
       break;
 
-
-    default:
-      WITH2->dtype = variable;
-      break;
-    }
-    WITH2->location = 0;
-    WITH2->name = adr;
-    WITH2->guard = false;
-    V.i += j;
-    goto _L33;
-    break;
-
-  case '(':
-  case ':':
-  case '*':
-  case '<':
-  case '>':
-  case '.':
-  case '-':
-  case '+':
-  case ';':
-  case '!':
-    if (bufrec.b2[1] == ']' || bufrec.b2[1] == '<' || bufrec.b2[1] == '!' ||
-	bufrec.b2[1] == ';' || bufrec.b2[1] == '+' || bufrec.b2[1] == ':' ||
-	bufrec.b2[1] == '*' || bufrec.b2[1] == ')' || bufrec.b2[1] == '>' ||
-	bufrec.b2[1] == '.' || bufrec.b2[1] == '=') {
-      FORLIM = twochar_symbols_num;
-      for (nn = 0; nn < FORLIM; nn++) {
-	if (bufrec.b2[0] == twochar_symbols[nn][0] &&
-	    bufrec.b2[1] == twochar_symbols[nn][1]) {
-	  makeatom(V.i, 2L, keyword, &V);
+    case '#':
+      j = 1;
+      if (!strncmp (bufrec.b2, "##", 2))
+	{
+	  makeatom (V.i, 2L, keyword, &V);
 	  V.i += 2;
 	  goto _L33;
 	}
-      }
-    }
-    makeatom(V.i, 1L, keyword, &V);
-    V.i++;
-    goto _L33;
-    break;
-
-  case ')':
-  case '=':
-  case ',':
-  case '/':
-  case '^':
-  case '@':
-  case ']':
-  case '[':
-    makeatom(V.i, 1L, keyword, &V);
-    V.i++;
-    goto _L33;
-    break;
-
-  default:
-    if (isdigit(bufrec.b1)) {
-      *ssint = '\0';
-      jj = 0;
-      j = 0;
-      ilong = 0;
-      maybe_octal = true;
-      while (isdigit (V.s[V.i + j - 1]) ) {
-	if (V.s[V.i + j - 1] == '8' || V.s[V.i + j - 1] == '9')
-	  maybe_octal = false;
-	ilong = ilong * 8 + V.s[V.i + j - 1] - '0';
-	sprintf(ssint + strlen(ssint), "%c", V.s[V.i + j - 1]);
+
+      while (is_rig_symbol (V.s[V.i + j - 1]))
 	j++;
-      }
-      if (V.s[V.i + j - 1] == 'B' || V.s[V.i + j - 1] == 'b') {
-	if (!maybe_octal) {
-	  mistake(18L, &V);
+      if (j == 1)
+	{
+	  mistake (14L, &V);
 	  goto _L199;
 	}
-	j++;
-      } else if (is_rig_symbol (V.s[V.i + j - 1])) {
-	mistake(5L, &V);
-	goto _L199;
-      } else
-	val(ssint, &ilong, &jj);
-      if (jj == 0 && ilong < 2147483647 ) {
-	gets1(&V.satomadr, &x.sa);
-	WITH = x.snd;   /* with */
-	WITH->dtype = number;
-	WITH->cord = V.fistack[V.fistacklen - 1].curline * 80 + V.i;   /*!!*/
-	WITH->val = ilong;
-	V.i += j;
-	goto _L33;
-      } else {
-	mistake(6L, &V);
-	goto _L199;
-      }
-
-    } else {
-
-
-
-
-
-      if ( is_rig_letter (bufrec.b1)) {
-	j = 1;
-	while ( is_rig_symbol (V.s[V.i + j - 1]))
-	  j++;
-	dt = idatom;
-	jcase = j;
-	switch (jcase) {
-
-	case 1:
-	  if (!strncmp(bufrec.b2, "S'", 2) || !strncmp(bufrec.b2, "V'", 2)) {
-	    j = 2;
-	    dt = keyword;
-	  }
-	  break;
-
-	case 2:
-	  if (!strncmp(bufrec.b2, "OD", 2) || !strncmp(bufrec.b2, "IF", 2) ||
-	      !strncmp(bufrec.b2, "FI", 2) || !strncmp(bufrec.b2, "IN", 2) ||
-	      !strncmp(bufrec.b2, "DO", 2) || !strncmp(bufrec.b2, "OR", 2))
-	    dt = keyword;
-	  break;
-
-	case 3:
-	  if (!strncmp(bufrec.b3, "AND", 3) ||
-	      !strncmp(bufrec.b3, "MOD", 3) ||
-	      !strncmp(bufrec.b3, "DIV", 3) ||
-	      !strncmp(bufrec.b3, "END", 3) || !strncmp(bufrec.b3, "NOT", 3))
-	    dt = keyword;
-	  break;
+      j--;
+      putatm (&V.s[V.i], j, &adr);
+      gets2 (&V.satomadr, &y.sa);
+      WITH1 = y.srd;
+      WITH1->dtype = rulename;
+      WITH1->cord = V.fistack[V.fistacklen - 1].curline * 80 + V.i;
+      WITH1->fragmadr = 0;
+      WITH1->nomintab = 0;
+      WITH1->name = adr;
+      V.i += j + 1;
+      goto _L33;
+      break;
 
-	case 4:
-	  if (!strncmp(bufrec.b4, "NULL", 4)) {
-	    V.i += 4;
-	    gets1(&V.satomadr, &x.sa);
-	    WITH3 = x.sspec;
-	    WITH3->dtype = spec;
-	    WITH3->val = 0;
-	    goto _L33;
-	  }
+    case '$':
+      j = 1;
+      if (V.s[V.i] == '$')
+	{
+	  j = 2;
+	  putatm (&V.s[V.i - 1], j, &adr);
+	  makeatom (V.i, 2L, keyword, &V);
+	  V.i += 2;
+	  goto _L33;
+	}
+      while (is_rig_symbol (V.s[V.i + j - 1])) j++;
+      j--;
+      if (j > 0) putatm (&V.s[V.i], j, &adr);
+      j++;
+      if (j == 1)
+	{
+	  V.s[V.i - 1] = '_';
+	  j = 1;
+	  putatm (&V.s[V.i - 1], j, &adr);
+	}
+      gets1 (&V.satomadr, &x.sa);
+      WITH2 = x.svd;		/* with */
+      switch (V.s[V.i])
+	{
 
-	  if (!strncmp(bufrec.b4, "LAST", 4) ||
-	      !strncmp(bufrec.b4, "LOOP", 4) ||
-	      !strncmp(bufrec.b4, "OPEN", 4) ||
-	      !strncmp(bufrec.b4, "SAVE", 4) ||
-	      !strncmp(bufrec.b4, "FAIL", 4) ||
-	      !strncmp(bufrec.b4, "COPY", 4) ||
-	      !strncmp(bufrec.b4, "LOAD", 4))
-	    dt = keyword;
+	case 'N':
+	  WITH2->dtype = nvariable;
 	  break;
 
-	case 5:
-	  if (!strncmp(bufrec.b5, "ELSIF", 5) ||
-	      !strncmp(bufrec.b5, "CLOSE", 5) ||
-	      !strncmp(bufrec.b5, "BREAK", 5) ||
-	      !strncmp(bufrec.b5, "PRINT", 5))
-	    dt = keyword;
+	case 'I':
+	  WITH2->dtype = idvariable;
 	  break;
 
-	case 6:
-	  if (!strncmp(bufrec.b6, "ONFAIL", 6) ||
-	      !strncmp(bufrec.b6, "RETURN", 6) ||
-	      !strncmp(bufrec.b6, "FORALL", 6))
-	    dt = keyword;
-	  break;
 
-	case 8:
-	  if (!strncmp(bufrec.b8, "BRANCHES", 8))
-	    dt = keyword;
+	default:
+	  WITH2->dtype = variable;
 	  break;
+	}
+      WITH2->location = 0;
+      WITH2->name = adr;
+      WITH2->guard = false;
+      V.i += j;
+      goto _L33;
+      break;
 
-	case 9:
-	  if (!strncmp(bufrec.b9, "SELECTORS", 9))
-	    dt = keyword;
-	  break;
+    case '(':
+    case ':':
+    case '*':
+    case '<':
+    case '>':
+    case '.':
+    case '-':
+    case '+':
+    case ';':
+    case '!':
+      if (bufrec.b2[1] == ']' || bufrec.b2[1] == '<' || bufrec.b2[1] == '!' ||
+	  bufrec.b2[1] == ';' || bufrec.b2[1] == '+' || bufrec.b2[1] == ':' ||
+	  bufrec.b2[1] == '*' || bufrec.b2[1] == ')' || bufrec.b2[1] == '>' ||
+	  bufrec.b2[1] == '.' || bufrec.b2[1] == '=')
+	{
+	  FORLIM = twochar_symbols_num;
+	  for (nn = 0; nn < FORLIM; nn++)
+	    {
+	      if (bufrec.b2[0] == twochar_symbols[nn][0] &&
+		  bufrec.b2[1] == twochar_symbols[nn][1])
+		{
+		  makeatom (V.i, 2L, keyword, &V);
+		  V.i += 2;
+		  goto _L33;
+		}
+	    }
+	}
+      makeatom (V.i, 1L, keyword, &V);
+      V.i++;
+      goto _L33;
+      break;
 
+    case ')':
+    case '=':
+    case ',':
+    case '/':
+    case '^':
+    case '@':
+    case ']':
+    case '[':
+      makeatom (V.i, 1L, keyword, &V);
+      V.i++;
+      goto _L33;
+      break;
 
-	}/*case*/
+    default:
+      if (isdigit (bufrec.b1))
+	{
+	  *ssint = '\0';
+	  jj = 0;
+	  j = 0;
+	  ilong = 0;
+	  maybe_octal = true;
+	  while (isdigit (V.s[V.i + j - 1]))
+	    {
+	      if (V.s[V.i + j - 1] == '8' || V.s[V.i + j - 1] == '9')
+		maybe_octal = false;
+	      ilong = ilong * 8 + V.s[V.i + j - 1] - '0';
+	      sprintf (ssint + strlen (ssint), "%c", V.s[V.i + j - 1]);
+	      j++;
+	    }
+	  if (V.s[V.i + j - 1] == 'B' || V.s[V.i + j - 1] == 'b')
+	    {
+	      if (!maybe_octal)
+		{
+		  mistake (18L, &V);
+		  goto _L199;
+		}
+	      j++;
+	    }
+	  else if (is_rig_symbol (V.s[V.i + j - 1]))
+	    {
+	      mistake (5L, &V);
+	      goto _L199;
+	    }
+	  else
+	    val (ssint, &ilong, &jj);
+	  if (jj == 0 && ilong < 2147483647)
+	    {
+	      gets1 (&V.satomadr, &x.sa);
+	      WITH = x.snd;	/* with */
+	      WITH->dtype = number;
+	      WITH->cord = V.fistack[V.fistacklen - 1].curline * 80 + V.i;	/*!! */
+	      WITH->val = ilong;
+	      V.i += j;
+	      goto _L33;
+	    }
+	  else
+	    {
+	      mistake (6L, &V);
+	      goto _L199;
+	    }
 
-	makeatom(V.i, j, dt, &V);
-	V.i += j;
-	goto _L33;
-      } else {
-	mistake(11L, &V);
-	goto _L199;
-      }
-    }
-    break;
-  }/* case */
+	}
+      else
+	{
+	  if (is_rig_letter (bufrec.b1))
+	    {
+	      j = 1;
+	      while (is_rig_symbol (V.s[V.i + j - 1]))
+		j++;
+	      dt = idatom;
+	      jcase = j;
+	      switch (jcase)
+		{
+
+		case 1:
+		  if (!strncmp (bufrec.b2, "S'", 2)
+		      || !strncmp (bufrec.b2, "V'", 2))
+		    {
+		      j = 2;
+		      dt = keyword;
+		    }
+		  break;
+
+		case 2:
+		  if (!strncmp (bufrec.b2, "OD", 2)
+		      || !strncmp (bufrec.b2, "IF", 2)
+		      || !strncmp (bufrec.b2, "FI", 2)
+		      || !strncmp (bufrec.b2, "IN", 2)
+		      || !strncmp (bufrec.b2, "DO", 2)
+		      || !strncmp (bufrec.b2, "OR", 2))
+		    dt = keyword;
+		  break;
+
+		case 3:
+		  if (!strncmp (bufrec.b3, "AND", 3) ||
+		      !strncmp (bufrec.b3, "MOD", 3) ||
+		      !strncmp (bufrec.b3, "DIV", 3) ||
+		      !strncmp (bufrec.b3, "END", 3)
+		      || !strncmp (bufrec.b3, "NOT", 3))
+		    dt = keyword;
+		  break;
+
+		case 4:
+		  if (!strncmp (bufrec.b4, "NULL", 4))
+		    {
+		      V.i += 4;
+		      gets1 (&V.satomadr, &x.sa);
+		      WITH3 = x.sspec;
+		      WITH3->dtype = spec;
+		      WITH3->val = 0;
+		      goto _L33;
+		    }
+
+		  if (!strncmp (bufrec.b4, "LAST", 4) ||
+		      !strncmp (bufrec.b4, "LOOP", 4) ||
+		      !strncmp (bufrec.b4, "OPEN", 4) ||
+		      !strncmp (bufrec.b4, "SAVE", 4) ||
+		      !strncmp (bufrec.b4, "FAIL", 4) ||
+		      !strncmp (bufrec.b4, "COPY", 4) ||
+		      !strncmp (bufrec.b4, "LOAD", 4))
+		    dt = keyword;
+		  break;
+
+		case 5:
+		  if (!strncmp (bufrec.b5, "ELSIF", 5) ||
+		      !strncmp (bufrec.b5, "CLOSE", 5) ||
+		      !strncmp (bufrec.b5, "BREAK", 5) ||
+		      !strncmp (bufrec.b5, "PRINT", 5))
+		    dt = keyword;
+		  break;
+
+		case 6:
+		  if (!strncmp (bufrec.b6, "ONFAIL", 6) ||
+		      !strncmp (bufrec.b6, "RETURN", 6) ||
+		      !strncmp (bufrec.b6, "FORALL", 6))
+		    dt = keyword;
+		  break;
+
+		case 8:
+		  if (!strncmp (bufrec.b8, "BRANCHES", 8))
+		    dt = keyword;
+		  break;
+
+		case 9:
+		  if (!strncmp (bufrec.b9, "SELECTORS", 9))
+		    dt = keyword;
+		  break;
+
+
+		}		/*case */
+
+	      makeatom (V.i, j, dt, &V);
+	      V.i += j;
+	      goto _L33;
+	    }
+	  else
+	    {
+	      mistake (11L, &V);
+	      goto _L199;
+	    }
+	}
+      break;
+    }				/* case */
 
 
 
 _L33:
   ii++;
-  push(&p, V.satomadr );   /* adding to list */
-  goto _L1;   /*with*/
+  push (&p, V.satomadr);	/* adding to list */
+  goto _L1;			/*with */
 _L99:
   if (V.errflag)
-    printf("... RIGAL  lexic errors found\n");
-  /*    writeln('Tokens count=',ii,'                       ');*/
+    printf ("... RIGAL  lexic errors found\n");
+  /*    writeln('Tokens count=',ii,'                       '); */
   if (infile[0] != NULL)
-    fclose(infile[0]);
+    fclose (infile[0]);
   infile[0] = NULL;
 /* printf(" TOTAL RESULT=\n");
  pscr(*lesrez);
  printf("\n"); */
 
-_L199: ;
+_L199:;
 
 
   /* prints current line counter */
-  /*write(fistack[fistacklen].curline,' ');*/
+  /*write(fistack[fistacklen].curline,' '); */
   /* go to more common file */
 
   /* no mistake */