how to create a case sensitive language?

32 views
Skip to first unread message

Jefferson Ricardo

unread,
Dec 5, 2017, 12:00:26 AM12/5/17
to SableCC
hello friens!
I do not know how to put my language with case sensitive.
how could I do that?

my language is:

Helpers
//Digito e Letras
letra = [['a'..'z']+['A'..'Z']]; // A-Z

digitos = [['0'..'9']+[['a'..'f']+['A'..'F']]]; // Digitos hexadecimais e decimal e outros simbolos

// A linguagem é Case sensitive
//palavras em minusculos
a = 'a';
b = 'b';
c = 'c' ;
to be continue a..z

here I am to create uppercase alphabet. how?

mbm...@pacbell.net

unread,
Dec 5, 2017, 11:42:41 AM12/5/17
to sab...@googlegroups.com

It’s not clear what you are asking.  Most languages are case sensitive.  For example, in Java, the switch statement is identified by the token ‘switch’ and the corresponding token is usually defined like:

 

T_SWITCH = ‘switch’;

 

This is case sensitive.  If you were to attempt to write a Java program that contained this statement:

 

Switch (variable) {

   Case 1:  /* do something */;

   Case 2: /* do something else */;

}

 

It would not compile.  Why?  Because the correct token is switch, not Switch.

 

To create a language that is NOT case sensitive, you would define the tokens differently.  Something like this:

 

T_S = ‘s’ | ‘S’;

T_W = ‘w’ | ‘W’;

T_I = ‘i’ | ‘I’;

T_T = ‘t’ | ‘T’;

T_C = ‘c’ | ‘C’;

T_H = ‘h’ | ‘H’;

 

T_SWITCH = T_S T_W T_I T_T T_C T_H;

 

Then the above Java statement would compile, and so would this:

 

SwItCh (variable) {

   Case 1:  /* do something */;

   Case 2: /* do something else */;

}

 

 

Hope this provides some clarity…

 

Mike

--
-- You received this message because you are subscribed to the SableCC group. To post to this group, send email to sab...@googlegroups.com. To unsubscribe from this group, send email to sablecc+u...@googlegroups.com. For more options, visit this group at https://groups.google.com/d/forum/sablecc?hl=en
---
You received this message because you are subscribed to the Google Groups "SableCC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sablecc+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jefferson Ricardo

unread,
Dec 11, 2017, 12:14:01 PM12/11/17
to SableCC
H!is this! thank you very mych!

Em terça-feira, 5 de dezembro de 2017 14:42:41 UTC-2, Michael Mast escreveu:

Não está claro o que você está perguntando. A maioria das línguas diferencia maiúsculas de minúsculas Por exemplo, em Java, a declaração do interruptor é identificada pelo token 'switch' e o token correspondente geralmente é definido como:

 

T_SWITCH = 'switch';

 

Isso diferencia maiúsculas de minúsculas. Se você tentasse escrever um programa Java que continha essa declaração:

 

Alternar (variável) {

   Caso 1: / * fazer algo * /;

   Caso 2: / * fazer outra coisa * /;

}

 

Não compilaria. Por quê? Como o token correto é switch , não Switch .

 

Para criar um idioma que NÃO seja sensível a maiúsculas e minúsculas, você definiria os tokens de forma diferente. Algo assim:

 

T_S = 's' | 'S';

T_W = 'w' | 'W';

T_I = 'i' | 'EU';

T_T = 't' | 'T';

T_C = 'c' | 'C';

T_H = 'h' | 'H';

 

T_SWITCH = T_S T_W T_I T_T T_C T_H;

 

Em seguida, a declaração Java acima seria compilar, e assim seria isso:

 

SwItCh (variável) {

   Caso 1: / * fazer algo * /;

   Caso 2: / * fazer outra coisa * /;

}

 

 

Espero que isso forneça alguma clareza ...

 

Mike

 

 

De: sab...@googlegroups.com [mailto: sablecc @ googlegroups. com ] Em nome de Jefferson Ricardo
Enviado: segunda - feira, 4 de dezembro de 2017 9:30 AM
Para: SableCC < sab...@googlegroups.com >
Assunto: como criar um idioma sensível a maiúsculas e minúsculas?

 

ola friens!

Não sei como colocar meu idioma com diferenciação de maiúsculas e minúsculas.

como eu poderia fazer isso?

 

meu idioma é:

 

Ajudantes

//Digito e Letras

letra = [['a'..'z']+['A'..'Z']]; // A-Z

 

digitos = [['0'..'9']+[['a'..'f']+['A'..'F']]]; // Digitos hexadecimais e decimal e outros simbolos

 

// A linguagem é Case sensitive

//palavras em minusculos

a = 'a';

b = 'b';

c = 'c';

to be continue a..z

 

Aqui vou criar um alfabeto em letras maiúsculas. como?

-
- Você recebeu esta mensagem porque está inscrito no grupo SableCC. Para enviar a este grupo, envie um email para o sab...@googlegroups.com . Para cancelar a inscrição deste grupo, envie um email para o sablecc + cancelar a subscrição @ googlegroups.com . Para obter mais opções, visite este grupo em https://groups.google.com/d/ forum / sablecc? Hl = pt
---
Você recebeu esta mensagem porque está inscrito no grupo "SableCC" dos Grupos do Google.
Para cancelar a assinatura deste grupo e parar de receber e-mails dele, envie um email para o sablecc + cancelar a subscrição @ googlegroups.com .
Para mais opções, visite https://groups.google.com/d/ optout .

Reply all
Reply to author
Forward
0 new messages