OpenCores
URL https://opencores.org/ocsvn/1664/1664/trunk

Subversion Repositories 1664

[/] [1664/] [trunk/] [c/] [cpu_1664/] [cpu_1664_asm_lista_parametre__cadena.c] - Rev 2

Compare with Previous | Blame | View Log

#include "cpu_1664.h"
 
struct lista * cpu_1664_asm_lista_parametre__cadena(n1 *cadena)
{
 const n1 sinia[] = {cpu_1664_asm_table_sinia};
 const n1 table_clui[] = {cpu_1664_asm_table_clui};
 
 struct lista *lista=lista_nova(128);
 struct lista *lista_;
 n1 *cadena_;
 nN cuantia;
 
 while(1)
 {
 
  switch(*cadena)
  {
   case 0x00: // *** sin "nN cuantia"
   case 0x0a:
   case cpu_1664_asm_sinia_comenta:
   case '>':
   case '}':
   case ')':
   case ']':
    return lista;
 
   case 0x09:
   case ' ':
    cadena++;
    break;
 
   case '\'':
   case '"':
   case '<':
   case '{':
   case '(':
   case '[':
    cuantia=nN_cuantia_brasetida__cadena(cadena, *cadena, table_clui[*cadena]);
    lista_=lista_nova(0);
    lista_ajunta__datos(lista_, cadena, cuantia);
    lista_ajunta__P(lista, (P)lista_);
    cadena+=cuantia;
    break;
 
   default:
    lista_=lista_nova(0);
    for(cadena_=cadena;sinia[*cadena]==1;cadena++){}
 
    switch(*cadena)
    {
     case '{':
     case '(':
     case '[':
      cadena+=nN_cuantia_brasetida__cadena(cadena, *cadena, table_clui[*cadena]);
      break;
    }
 
    lista_ajunta__datos(lista_, cadena_, cadena-cadena_);
    lista_ajunta__P(lista, (P)lista_);
    break;
  } 
 }
}

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.