#!/usr/bin/env python3 from pygments.lexers.ml import OcamlLexer from pygments.token import Name, Keyword from pathlib import Path class SystemTLexer(OcamlLexer): name = 'System T' aliases = ['syst'] filenames = ['*.syst'] EXTRA_KEYWORDS = [ 'arb', 'fold', 'foldmatch', 'inj', 'map', 'max', 'primrec', 'prj', 'roll', 'roll2', ] def get_tokens_unprocessed(self, text): for index, token, value in OcamlLexer.get_tokens_unprocessed(self, text): if token is Name and value in self.EXTRA_KEYWORDS: yield index, Keyword, value else: yield index, token, value