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

Subversion Repositories 1664

[/] [1664/] [trunk/] [c/] [cpu_1664/] [cpu_1664_asm_lista_parametre__cadena.c] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 mrdmkg
#include "cpu_1664.h"
2
 
3
struct lista * cpu_1664_asm_lista_parametre__cadena(n1 *cadena)
4
{
5
 const n1 sinia[] = {cpu_1664_asm_table_sinia};
6
 const n1 table_clui[] = {cpu_1664_asm_table_clui};
7
 
8
 struct lista *lista=lista_nova(128);
9
 struct lista *lista_;
10
 n1 *cadena_;
11
 nN cuantia;
12
 
13
 while(1)
14
 {
15
 
16
  switch(*cadena)
17
  {
18
   case 0x00: // *** sin "nN cuantia"
19
   case 0x0a:
20
   case cpu_1664_asm_sinia_comenta:
21
   case '>':
22
   case '}':
23
   case ')':
24
   case ']':
25
    return lista;
26
 
27
   case 0x09:
28
   case ' ':
29
    cadena++;
30
    break;
31
 
32
   case '\'':
33
   case '"':
34
   case '<':
35
   case '{':
36
   case '(':
37
   case '[':
38
    cuantia=nN_cuantia_brasetida__cadena(cadena, *cadena, table_clui[*cadena]);
39
    lista_=lista_nova(0);
40
    lista_ajunta__datos(lista_, cadena, cuantia);
41
    lista_ajunta__P(lista, (P)lista_);
42
    cadena+=cuantia;
43
    break;
44
 
45
   default:
46
    lista_=lista_nova(0);
47
    for(cadena_=cadena;sinia[*cadena]==1;cadena++){}
48
 
49
    switch(*cadena)
50
    {
51
     case '{':
52
     case '(':
53
     case '[':
54
      cadena+=nN_cuantia_brasetida__cadena(cadena, *cadena, table_clui[*cadena]);
55
      break;
56
    }
57
 
58
    lista_ajunta__datos(lista_, cadena_, cadena-cadena_);
59
    lista_ajunta__P(lista, (P)lista_);
60
    break;
61
  }
62
 }
63
}

powered by: WebSVN 2.1.0

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