t1nman

translator.c

Jul 19th, 2012
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.27 KB | None | 0 0
  1. /*
  2.  *  file:       translator.c
  3.  *  date:       July, 2012
  4.  *  purpose:    bites chain of symbols to chain of (symbol, symbol's class)
  5.  *  author:     Nick K.
  6.  */
  7.  
  8. #include "modules.h"
  9.  
  10. void translator(char chain[], struct transl_type translChain[])
  11. {
  12.     char symbol;
  13.     int i = -1;
  14.    
  15.     while ( (symbol = chain[++i]) != '\0' ){
  16.         translChain[i].symbol = symbol;
  17.         if ( (symbol >= 'a' && symbol <= 'z') || (symbol >= 'A' && symbol <= 'Z') ){
  18.             translChain[i].symbol_class = "letter";
  19.             continue;
  20.         }
  21.        
  22.         if (symbol >= '0' && symbol <= '9'){
  23.             translChain[i].symbol_class = "digit";
  24.             continue;
  25.         }
  26.        
  27.         switch (symbol) {
  28.             case ':':   translChain[i].symbol_class = "colon";
  29.                     break;
  30.            
  31.             case '=':   translChain[i].symbol_class = "equals";
  32.                     break;
  33.                        
  34.             case ';':   translChain[i].symbol_class = "semicolon";
  35.                     break;
  36.                        
  37.             case '+':case '-':
  38.                     translChain[i].symbol_class = "sign";
  39.                     break;
  40.             case '[':   translChain[i].symbol_class = "bracket_o";
  41.                     break;
  42.             case ']':   translChain[i].symbol_class = "bracket_c";
  43.                     break;
  44.             case ' ':   translChain[i].symbol_class = "space";
  45.                     break; 
  46.            
  47.             default:    translChain[i].symbol_class = "error";
  48.                     break;
  49.         }
  50.     }
  51.    
  52.     translChain[i].symbol = '\0';
  53.     translChain[i].symbol_class = '\0';
  54.    
  55.     return;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment