Ir ao conteúdo

Posts recomendados

Postado

a programação tem muitas formas de ser resolvida.
mas falando em tokens: qual é o melhor pseucode para fazer 1 analisador de tokens?

houve 1 amigo que me ofereceu este pseucode:

while not end of string
{
    get character ch
    switch (ch)
    {
    case ch indicates a date:
        add character to date
        keep getting and adding characters from string while valid for a date
        break;

    case ch indicates a number:
        add character to number
        keep getting and adding characters from string while valid for a number
        break;

    case ch indicates a word:
        add character to word
        keep getting and adding characters from string while valid for a word
        break;

    case ch indicates a quoted string:
        add character to a quoted string
        keep getting and adding characters from string while valid for a quoted string
        break;

    case whitespace
        // Do nothing. Let outer loop move on 
        break;

    :

    default:
        error unrecognized token
        break;
    }
}

mas parece incompleto...

a data começa e acaba em '#':

case ch indicates a date:
        add character to date
        keep getting and adding characters from string while valid for a date
        break;

eu estou confuso se uso o 'case', como posso controlar do principio ao fim da data: "#09/07/2018#"?

  • Amei 1
Postado

@Cambalinho      se a data for uma string você verificar o início na posição zero da string , e o fim da data seria também o fim da string , então você verifica se encontrou o caractere nulo   ' \0 '     que indica o fim da string .

Postado

a string pode ter datas, strings, caracter(char).. entre outros.
mas estou a perceber melhor o pseucode ;)

while not end of string
{
    get character ch
    switch (ch)
    {
    case ch indicates a date"#":
        add character to date
        keep getting and adding characters from string using a while loop and testing the end"#"
        break;

    case ch indicates a number:
        add character to number
        keep getting and adding characters from string using while loop for get the numbers, dot... until a space or letter
        break;

    case ch indicates a word:
        add character to word
        keep getting and adding characters from string using while loop from space to space
        break;

    case ch indicates a quoted string:
        add character to a quoted string
        keep getting and adding characters from string while valid for a quoted string
        break;

    case whitespace
        // Do nothing. Let outer loop move on 
        break;

    :

    default:
        error unrecognized token
        break;
    }
}

actualizei, porque estou aprender ;)

muito obrigado

  • Obrigado 1
Postado

preciso de algumas informações:
- os tokens são colectados de que forma? linha a linha? por funções\classes\if\while?

- de que forma os tokens, numa linguagem, são classificados?

  • Amei 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!