johannawirell_tokenizer

1.1.0 • Public • Published

johannawirell_tokenizer

Tokenizerarens uppgift är att tolka en textsträng med hjälp av regulära uttryck och returnera vilka lexikala delar (tokens) som textsträngen består av.

Installering

$ npm i johannawirell_tokenizer

// ES6
import { Tokenizer } from 'johannawirell_tokenizer'

Användning

För att skapa ett objekt av klassen tokenizer krävs två argument

  1. Grammatik
const wordAndDotGrammar = {
  WORD: /^[\w|åäöÅÄÖ]+/, 
  DOT: /^\./
}

Tips: använd grammtik från Grammar mappen

const wordAndDotGrammar = new WordAndDotGrammar().getRegexTypes()
  1. String
    Detta är strängen som tokentyperna kommer hämtas från
const textTokenizer = new Tokenizer(wordAndDotGrammar, "test string.")

getTokenTypes()

Denna metod hämtar alla tokentyper.

const textTokenizer = new Tokenizer(wordAndDotGrammar, "test string.")
textTokenizer.getTokens()

// Resultat 
[
  { TokenType: 'WORD', TokenValue: 'test' },
  { TokenType: 'WORD', TokenValue: 'string' },
  { TokenType: 'DOT', TokenValue: '.' },
  { TokenType: 'END', TokenValue: '' }
]

getActiveToken()

Denna metod hämtar tokentypen för det aktiva tokenet

const textTokenizer = new Tokenizer(wordAndDotGrammar, "test string.")
textTokenizer.getActiveToken()

// Resultat 
{ tokenType: 'WORD', tokenValue: 'test' }

setNextActiveToken()

Denna metod sätter tokentypen för det nästa aktiva tokenet

const textTokenizer = new Tokenizer(wordAndDotGrammar, "test string.")
textTokenizer.setNextActiveToken()

textTokenizer.getActiveToken()

// Resultat 
{ tokenType: 'WORD', tokenValue: 'string' }

Ifall indexet är större än vad som finns i token-arrayen kastas undantag.

const textTokenizer = new Tokenizer(wordAndDotGrammar, "test string.")
textTokenizer.setNextActiveToken() // "string"
textTokenizer.setNextActiveToken() // "."
textTokenizer.setNextActiveToken() // END
textTokenizer.setNextActiveToken() // Unvalid index

textTokenizer.getActiveToken()

// Resultat 
`Invalid index "4"`

setPreviousActiveToken()

Denna metod sätter tokentypen för det tidigare aktiva tokenet

const textTokenizer = new Tokenizer(wordAndDotGrammar, "test string.")
textTokenizer.setNextActiveToken() // Steg fram ("string")
textTokenizer.setPreviousActiveToken() // Steg tillbaka ("test")

// Resultat 
{ tokenType: 'WORD', tokenValue: 'test' }

Ifall indexet är negativt kastas undantag.

const textTokenizer = new Tokenizer(wordAndDotGrammar, "test string.")
textTokenizer.setPreviousActiveToken() // Unvalid index
textTokenizer.getActiveToken()

// Resultat 
`Invalid index "-1"`

Invalid tokens

Ifall ett ogiltigt token skickas till tokenizern kommer tokens fram till detta token skapas.

const textTokenizer = new Tokenizer(wordAndDotGrammar, "Test!Detta skapas inte")
textTokenizer.getTokens()

// Resultat 
[
  { TokenType: 'WORD', TokenValue: 'Test' },
  { TokenType: 'Exception', TokenValue: '!' }
]

Readme

Keywords

Package Sidebar

Install

npm i johannawirell_tokenizer

Weekly Downloads

0

Version

1.1.0

License

ISC

Unpacked Size

63.1 kB

Total Files

8

Last publish

Collaborators

  • johannawirell