# ============================================================
# This role class is generated from the file
#   DSL::Shared::Roles::Portuguese::CommonSpeechParts-template
# using the function AddFuzzyMatch CLI from
#   Grammar::TokenProcessing
# ============================================================

use v6.d;

use DSL::Shared::Utilities::DeterminedWordsMatching;

role DSL::Shared::Roles::Portuguese::CommonSpeechParts {
    # Single words
    token ID-noun { 'id' }
    token IDENTIFIER-adjective { 'identificador' | 'identificadora' | 'id' }
    token IDENTIFIER-noun { 'identificador'  }
    token MODULE-noun { 'módulo' }
    token TARGET-noun { 'meta' | 'propósito' | 'alvo' }
    token USER-noun { 'usuário' | 'usuária' }
    token a-determiner { 'um' | 'uma' }
    token add-verb { 'adicionar' }
    token adhere-verb { 'aderir' | 'de' \h+ 'acordo' \h+ 'com' }
    token adjacency-noun { 'adjacência' }
    token adjacent-adjective { 'adjacent' }
    token algorithm-noun { 'algoritmo' }
    token algorithms-noun { 'algoritmos' }
    token all-determiner { 'cada' | 'todos' | 'todas' }
    token and-conjunction { 'e' }
    token annex-verb { 'juntar' | 'junte-se' }
    token append-verb { 'acrescentar' }
    token apply-verb { 'anexar' }
    token are-verb { 'são' }
    token array-noun { 'matriz' }
    token arrays-noun { 'matrizes' }
    token as-preposition { 'como' }
    token assign-verb { 'atribuir' }
    token at-preposition { 'em' | 'no' | 'na' }
    token automatic { 'automático' | 'automática' | 'automaticamente' }
    token away-adverb { 'fora' }
    token axes-noun { 'eixos' }
    token axis-noun { 'eixo' }
    token be-verb { 'ser' | 'estar' }
    token both-determiner { 'e'? \h* 'ambos' | 'simultaneamente' | 'juntos' | 'juntas' }
    token bottom-noun { 'fundo' | 'inferior' }
    token broaden-verb { 'expandir' }
    token by-preposition { 'com' | 'via' }
    token calculation { 'cálculo' }
    token case-noun { 'caso' }
    token cases-noun { 'casos' }
    token channel-adjective { <channel-noun> }
    token channel-noun { 'canal' }
    token chart-noun { 'gráfico' }
    token chart-verb { 'em'? \h* 'gráfico' }
    token classify-verb { 'classificar' }
    token clear-verb { 'limpar' | 'apagar' }
    token cluster { <cluster-noun> }
    token cluster-noun { 'cluster' | 'aglomerado' | 'grupo' }
    token clusters-noun { 'clusters' | 'aglomerados' | 'grupos' }
    token code-noun { 'código' }
    token codes-noun { 'códigos' }
    token column-noun { 'coluna' }
    token columns { <columns-noun> }
    token columns-noun { 'colunas' }
    token complete-adjective { 'completo' | 'completos' | 'completa' | 'completas' }
    token compute-directive { 'calcular' | 'encontrar' | 'achar' }
    token config-noun { 'configurar' }
    token configuration-adjective { 'configuração' }
    token configuration-noun { 'configuração' }
    token connect-verb { 'conectar' }
    token consider-verb { 'considerar' }
    token context-noun { 'contexto' }
    token contingency-noun { 'contingência' | 'referência' \h+ 'cruzada' }
    token convert-verb { 'converter' }
    token conveyor-adjective { 'transportador' }
    token conveyor-noun { 'transportador' }
    token count-verb { 'contar' }
    token counts-noun { 'tamanho' | 'número' \h+ 'de' | 'quantidade' \h+ 'de' }
    token create { 'criar' }
    token create-directive { <create-verb> | 'fazer' }
    token create-verb { 'criar' }
    token creation-noun { 'criação' }
    token current-adjective { 'atual' }
    token data-adjective { <data-noun> }
    token data-noun { 'dado' | 'dados' }
    token dataset { <dataset-noun> }
    token dataset-noun { 'conjunto' \h+ 'de' \h+ 'dados' | <array-noun> \h+ 'a' \h+ 'partir' \h+ 'de' \h+ <data-noun> | <data-adjective> \h+ <array-noun>}
    token datasets-noun { 'conjuntos' \h+ 'de' \h+ 'dados' | <arrays-noun> \h+ 'a' \h+ 'partir' \h+ 'de' \h+ <data-noun> | <data-adjective> \h+ <arrays-noun> }
    token date-adjective { 'data' | 'datas' }
    token date-noun { 'data' }
    token dates-noun { 'datas' }
    token datum-noun { <data-noun> }
    token default { <default-noun> }
    token default-noun { 'padrão' }
    token delete-directive { 'deletar' | 'eliminar' | 'descartar' | 'remover' }
    token detect-verb { 'encontrar' | 'detectar' | 'encontrar' | 'achar' }
    token diagram { <diagram-synonyms> }
    token diagram-noun { 'diagrama' }
    token diagram-synonyms { <diagram-noun> | <plot-noun> | <plots-noun> | <graph-noun> | <chart-noun> }
    token dictionary-noun { 'dicionário' }
    token difference { 'diferença' }
    token dimension-noun { 'tamanho' | 'dimensão' }
    token dimensions-noun { 'tamanhos' | 'dimensões' }
    token directly-adverb { 'diretamente' }
    token display-directive { <display-verb> }
    token display-verb { 'mostrar' | 'exibir' }
    token distance-noun { 'distância' }
    token do-verb { 'fazer' }
    token document-noun { 'documento' }
    token documents-noun { 'documentos' }
    token domain-noun { 'domínio' | 'área' }
    token drop-verb { 'derrubar' | 'descartar' | 'esquecer' }
    token during-preposition { 'enquanto' }
    token each-determiner { 'cada' }
    token echo-verb { 'ecoar' | 'repetir' }
    token element { <element-noun> }
    token element-noun { 'elemento' }
    token elements { <elements-noun> }
    token elements-noun { 'elementos'}
    token empty-noun { 'branco' | 'vazio' }
    token empty-verb { 'esvaziar' | 'limpar' | 'apagar' }
    token every-determiner { 'cada' }
    token extend-verb { 'expandir' }
    token extract-directive { 'extraia' }
    token filter { <filter-verb> }
    token filter-noun { 'filtro' }
    token filter-verb { 'filtrar' }
    token find-verb { 'pesquisar' | 'achar' | 'encontrar' }
    token first-adjective { 'primeiro' | 'primeiros' | 'primeira' | 'primeiras' }
    token for-preposition { 'para' | 'com' | 'em' }
    token frame-noun { 'moldura' }
    token frames-noun { 'molduras' }
    token from-preposition { 'de' | 'à' \h+ 'partir' \h+ 'de' }
    token function { <function-noun> }
    token function-noun { 'função' }
    token functions { <functions-noun> }
    token functions-noun { 'funções' }
    token generate-directive { <generate-verb> | <create-verb> }
    token generate-verb { 'generar' }
    token get-verb { 'pegar' | 'obter' | 'levar' }
    token graph-noun { 'gráfico' }
    token head-adjective { <head-noun> }
    token head-noun { 'cabeça' }
    token had-verb { 'tive' }
    token have-verb { 'tenho' | 'temos' | 'tem' }
    token high-adjective { 'alto' | 'alta' }
    token higher-adjective { 'mais' \h+ <high-adjective> }
    token highest-adjective { 'maior' \h+ <high-adjective>  }
    token histogram { 'histograma' }
    token histograms { 'histogramas' }
    token how-adverb { 'como' }
    token id-noun { 'id' }
    token identifier-adjective { <IDENTIFIER-adjective> }
    token identifier-noun { <IDENTIFIER-noun> }
    token in-preposition { <at-preposition> | 'dentro' }
    token include-verb { 'incluir' }
    token ingest-verb { 'leia' \h+ 'mais' }
    token interpreter-noun { 'intérprete' }
    token interpreting-adjective { 'interpretador' | 'interpretadora' }
    token into-preposition { 'em' }
    token is-verb { 'é' }
    token it-pronoun { 'isto' | 'que' }
    token iterations { 'iterações' }
    token join-verb { 'ligar' | 'combinar' }
    token join-noun { 'ligação' | 'combinação' }
    token language-noun { 'língua' }
    token largest-adjective { 'maior' }
    token last-adjective { 'último' | 'últimos' | 'mais' \h+ 'recente' | 'passado' | 'passada' }
    token left-adjective { 'esquerda' }
    token left-noun { 'esquerdo' | 'esquerda' }
    token link-noun { 'ligação' }
    token list-noun { 'lista' }
    token load-verb { 'carregar' | 'carga' }
    token locate-verb { 'encontrar' | 'localizar' | 'achar' }
    token low-adjective { 'baixo' | 'baixa' }
    token lower-adjective { 'mais' \h+ <low-adjective> }
    token lowest-adjective { 'maior' \h+ <low-adjective> }
    token make-noun { 'fazer' }
    token making-noun { 'fazendo' }
    # token manner { <manner-noun> }
    token manner-noun { 'caminho' | 'maneira' }
    token many-determiner { 'muitas' }
    token matrices-noun { 'matrizes' }
    token matrix-noun { 'matriz' }
    token matrixes-noun { 'matrizes' }
    token maximum { 'max' | 'máximo' | 'máximos' | 'máxima' | 'máximas' }
    token message-noun { 'mensagem' }
    token method-adjective { 'método' | 'metodicamente' | 'metódico' }
    token method-noun { 'método' }
    token methods-noun { 'métodos' }
    token minimum { 'min' | 'mínimo' | 'mínimos' | 'mínima' | 'mínimas' }
    token missing-adjective { 'faltando' }
    # token model { <model-noun> }
    token model-noun { 'modelo' }
    token module-noun { 'módulo' }
    token much-pronoun { 'grande' \h+ 'parte' }
    token my-determiner { 'meu' }
    token name-noun { 'nome' }
    token names-noun { 'nomes' }
    token nearest-adjective { 'mais' \h+ 'próximo' | 'mais' \h+ 'próxima' }
    token neighbors-noun { 'vizinhos' | 'vizinhas' }
    token no-determiner { 'sem' }
    token non-prefix { 'não' }
    token number-noun { 'número' }
    token object-noun { 'objeto' }
    token obtain-verb { 'obter' | 'pegar' | 'conseguir' }
    token of-preposition { 'em' | 'de' | 'do' | 'dos' | 'da' | 'das' }
    token off-adverb { 'sem' }
    token on-preposition { <at-preposition> | 'por' }
    token one-pronoun { 'alguém' | 'uma' \h+ 'pessoa' }
    token ones-pronoun { 'algumas' \h+ 'pessoas' }
    token or-conjunction { 'ou' }
    token our-determiner { 'nosso' }
    token out-adverb { 'fora'  }
    token outlier-adjective { <outlier-noun> }
    token outlier-noun { 'extraordinário' }
    token outliers-noun { 'extraordinários' }
    token over-preposition { 'além' \h+ 'de' | 'acima' \h+ 'de' | 'mais' \h+ 'que' }
    token parameter-noun { 'parâmetro' }
    token parameters-noun { 'parâmetros' }
    token part-noun { 'parte' }
    token pattern-noun { 'padrão' }
    token per-preposition { 'para' }
    token pipeline-adjective { <tape-adjective> | <conveyor-adjective> | <channel-adjective> }
    token pipeline-noun { <tape-noun> | <conveyor-noun> | <channel-noun> | 'streaming' }
    token plot-noun { 'gráfico' }
    token plots-noun { 'gráficos' }
    token position-noun { 'posição' }
    token pull-noun { 'puxado' | 'puxados' | 'puxada' | 'puxadas' }
    token pull-verb { 'puxar' }
    token random-adjective { 'aleatório' | 'aleatórios' | 'aleatória' | 'aleatórias' | 'ao' \h+ 'acaso' }
    token records { 'registos' | 'gravações' }
    token reduce-verb { 'reduzir' }
    token remove-verb { 'remover' | 'eliminar' | 'apagar' }
    token replace-verb { 'substituir' | 'trocar' }
    token represent-directive { 'represente' }
    token represent-verb { 'representar' }
    token rest-noun { 'resto' | 'remanescente' }
    token result-noun { 'resultado' }
    token results { <results-noun> }
    token results-noun { 'resultados' }
    token reverse-adjective { 'reverso' | 'reversos' | 'reversa' | 'reversas' }
    token right-adjective { 'direita' }
    token right-noun { 'direito' | 'direita' }
    token row-noun { 'linha' }
    token rows { <rows-noun> }
    token rows-noun { 'linhas' }
    token run-verb { 'executar' | 'rodar' }
    token running-verb { 'em' \h+ 'execução' | 'rodando' }
    token second-adjective { 'segundo' | 'segunda' | 'segundas' }
    token separate-verb { 'separar' }
    token series-noun { 'série' }
    token set-directive { 'defina' | 'attribua' }
    token set-noun { 'conjunto' }
    token setup-adjective { 'configurado' | 'configurados' | 'configurada' | 'configuradas' | 'instalado' | 'instalados' | 'instalada' | 'instaladas' }
    token setup-noun { 'configurar' | 'instalar' }
    token shape-noun { 'forma' }
    token show-verb { 'mostrar' }
    token simple { 'simples' | 'direto' }
    token simply-adverb { 'apenas' | 'somente' }
    token simulate { 'simular' }
    token simulate-directive { <simulate> }
    token simulation { 'simulação' }
    token single-adjective { 'único' | 'única' | 'um' | 'uma' }
    token site-noun { 'localização' | 'posição' }
    token smallest { <smallest-adjective> }
    token smallest-adjective { 'menor' }
    token some-determiner { 'algum' | 'alguns' | 'alguma' | 'algumas' }
    token sparse-adjective { 'disperso' | 'dispersos' | 'dispersa' | 'dispersas' | 'espaçado' | 'espaçados' | 'espaçada' | 'espaçadas' | 'espalhado' | 'espalhados' | 'espalhada' | 'espalhadas' }
    token specific-adjective { 'específico' | 'específicos' | 'específica' | 'específicas' }
    token split-verb { 'tabs' }
    token spot-verb { 'encontrar' }
    token spread-verb { 'espalhar' }
    token statistical { <statistical-adjective> }
    token statistical-adjective { 'estatisticamente' }
    token statistics-noun { <stats-noun> }
    token stats-noun { 'estatísticas' }
    token step-noun { 'etapa' | 'passo' }
    token steps-noun { 'etapas' | 'passos' }
    token string-noun { 'texto' }
    token sub-prefix { 'sub' }
    token summaries { <summaries-noun> }
    token summaries-noun { 'resumos' | 'sumários' }
    token summarize-directive { 'resumir' }
    token summary { <summary-noun> }
    token summary-noun { 'resumo' | 'sumário' }
    token system-noun { 'sistema' }
    token table-noun { 'tabela' }
    token tables-noun { 'tabelas' }
    token tabular-adjective { 'tabular' }
    token take-verb { 'obter' | 'tomar' | 'pegue' | 'levar' }
    token tape-adjective { 'cassetes' | 'cassete' | 'fitas' }
    token tape-noun { 'cassete' }
    token target-noun { 'alvo' | 'finalidade' }
    token text-adjective { <text-noun> | <textual-adjective> }
    token text-noun { 'texto' }
    token texts-noun { 'textos' }
    token textual-adjective { 'textual' }
    token that-pronoun { 'esse' | 'esses' | 'essa' | 'essas' | 'que' }
    token the-determiner { 'o' | 'os' | 'a' | 'as' }
    token them-pronoun { 'eles' }
    token this-pronoun { 'esse' | 'esses' | 'essa' | 'essas' | 'este' | 'estes' | 'esta' | 'estas' | 'isso' | 'isto' }
    token threshold-adjective { 'limite' | 'limites' | 'limiar' | 'limiares' }
    token threshold-noun { 'limite' | 'limiar' }
    token time-adjective { 'hora' }
    token time-noun { 'horário' | 'hora' | 'tempo' }
    token timeline-noun { 'linha' \h+ 'do' \h+ 'tempo' | 'timeline' }
    token times-noun { 'vezes' }
    token to-preposition { 'para' | 'em' | 'o' | 'os' | 'a' | 'as' }
    token top-adjective { 'topo' }
    token top-noun { 'topo' }
    token transform-verb { 'transformar' }
    token translation-noun { 'tradução' }
    token type-noun { 'tipo' }
    token types-noun { 'tipos' }
    token until-preposition { 'a' | 'até' }
    token up-adverb { 'acima' }
    token use-verb { 'usar' | 'utilizar' }
    token used-verb { 'usado' | 'usados' | 'usada' 'usadas' }
    token using-preposition { 'usando' | 'с' | 'com' }
    token value-noun { 'valor' }
    token values-noun { 'valores' }
    token variable-noun { 'variável' }
    token variables-noun { 'variáveis' }
    token versus-preposition { 'vs.' | 'versus' | 'ср.' | 'comparado' \h+ '[com | a | ao]' }
    token way-noun { 'caminho' }
    token weight { <weight-noun> }
    token weight-adjective { 'pesado' | 'pesados' | 'pesada' | 'pesadas' }
    token weight-noun { 'peso' }
    token weights { <weights-noun> }
    token weights-noun { 'pesos' }
    token what-pronoun { 'o' \h+ 'que' | 'que' }
    token when-pronoun { 'quando' }
    token which-determiner { 'quem' | 'qual' | 'quais' }
    token with-preposition { 'с' | 'com' | 'no' }
    token within-preposition { 'entre' | 'dentro' }
    token without-preposition { 'sem' }
    token word-noun { 'palavra' }
    token words-noun { 'palavras' }

    # Directives and phrases
    rule data-frame { <data-noun>? <table-noun> }
    rule data-frames { <data-noun>? <tables-noun> }
    rule time-series-data { <time-adjective> <series-noun> <data-noun>? }
    rule number-of { [ <number-noun> | <count-verb> | <counts-noun> ] <of-preposition>? }

}