Character position setter / rewind

Aberta
#122 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
35/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
c, ruby
Domínio
tooling

Direção de pesquisa

Comece rastreando a extensão native de strscan e o setter existente da posição de byte; em seguida, inspecione como as posições de caractere são representadas juntamente com as posições de byte. Adicione cobertura para definir e retroceder a posição de caractere e considere o comportamento solicitado completo quando os chamadores puderem retroceder sem roundtrips Ruby/native por caractere.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

I'm implementing look-behind in a parser library based on strscan; currently the only way to rewind the character position is this:

            pos = @str.charpos - nchars
            @str.reset
            @str.getch while @str.charpos < pos

which is not the most efficient it could be, with per-character roundtrips to the native extension and back to Ruby… Would be a lot nicer to have a setter for the character position and not just the byte one.

Linguagem predominante
C
Estrelas
88
Forks
51
Merge médio
5d 2h
PRs com merge (30d)
2

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de ruby/strscan

Todas as issues de ruby/strscan

Issues semelhantes

Mais issues de C

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.