CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
lisp.js140 linesDownload Raw Back to languages
1/*2Language: Lisp3Description: Generic lisp syntax4Author: Vasily Polovnyov <vast@whiteants.net>5Category: lisp6*/7 8function lisp(hljs) {9  const LISP_IDENT_RE = '[a-zA-Z_\\-+\\*\\/<=>&#][a-zA-Z0-9_\\-+*\\/<=>&#!]*';10  const MEC_RE = '\\|[^]*?\\|';11  const LISP_SIMPLE_NUMBER_RE = '(-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|-)?\\d+)?';12  const LITERAL = {13    className: 'literal',14    begin: '\\b(t{1}|nil)\\b'15  };16  const NUMBER = {17    className: 'number',18    variants: [19      {20        begin: LISP_SIMPLE_NUMBER_RE,21        relevance: 022      },23      { begin: '#(b|B)[0-1]+(/[0-1]+)?' },24      { begin: '#(o|O)[0-7]+(/[0-7]+)?' },25      { begin: '#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?' },26      {27        begin: '#(c|C)\\(' + LISP_SIMPLE_NUMBER_RE + ' +' + LISP_SIMPLE_NUMBER_RE,28        end: '\\)'29      }30    ]31  };32  const STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, { illegal: null });33  const COMMENT = hljs.COMMENT(34    ';', '$',35    { relevance: 0 }36  );37  const VARIABLE = {38    begin: '\\*',39    end: '\\*'40  };41  const KEYWORD = {42    className: 'symbol',43    begin: '[:&]' + LISP_IDENT_RE44  };45  const IDENT = {46    begin: LISP_IDENT_RE,47    relevance: 048  };49  const MEC = { begin: MEC_RE };50  const QUOTED_LIST = {51    begin: '\\(',52    end: '\\)',53    contains: [54      'self',55      LITERAL,56      STRING,57      NUMBER,58      IDENT59    ]60  };61  const QUOTED = {62    contains: [63      NUMBER,64      STRING,65      VARIABLE,66      KEYWORD,67      QUOTED_LIST,68      IDENT69    ],70    variants: [71      {72        begin: '[\'`]\\(',73        end: '\\)'74      },75      {76        begin: '\\(quote ',77        end: '\\)',78        keywords: { name: 'quote' }79      },80      { begin: '\'' + MEC_RE }81    ]82  };83  const QUOTED_ATOM = { variants: [84    { begin: '\'' + LISP_IDENT_RE },85    { begin: '#\'' + LISP_IDENT_RE + '(::' + LISP_IDENT_RE + ')*' }86  ] };87  const LIST = {88    begin: '\\(\\s*',89    end: '\\)'90  };91  const BODY = {92    endsWithParent: true,93    relevance: 094  };95  LIST.contains = [96    {97      className: 'name',98      variants: [99        {100          begin: LISP_IDENT_RE,101          relevance: 0,102        },103        { begin: MEC_RE }104      ]105    },106    BODY107  ];108  BODY.contains = [109    QUOTED,110    QUOTED_ATOM,111    LIST,112    LITERAL,113    NUMBER,114    STRING,115    COMMENT,116    VARIABLE,117    KEYWORD,118    MEC,119    IDENT120  ];121 122  return {123    name: 'Lisp',124    illegal: /\S/,125    contains: [126      NUMBER,127      hljs.SHEBANG(),128      LITERAL,129      STRING,130      COMMENT,131      QUOTED,132      QUOTED_ATOM,133      LIST,134      IDENT135    ]136  };137}138 139export { lisp as default };140 
basant307/AI_Governance_Project · CoolFace