prolog function
Highlight.js language definition for prolog.
Implementation
Mode prolog(Highlight hljs) {
final Mode mode0 = Mode();
final Mode mode1 = Mode();
final Mode mode2 = Mode();
final Mode mode3 = Mode();
final Mode mode4 = Mode();
final Mode mode5 = Mode();
final Mode mode6 = Mode();
final Mode mode7 = Mode();
final Mode mode8 = Mode();
final Mode mode9 = Mode();
final Mode mode10 = Mode();
final Mode mode11 = Mode();
final Mode mode12 = Mode();
final Mode mode13 = Mode();
final Mode mode14 = Mode();
final Mode mode15 = Mode();
final Mode mode16 = Mode();
final Mode mode17 = Mode();
final Mode mode18 = Mode();
mode0.begin = r'[a-z][A-Za-z0-9_]*';
mode0.relevance = 0;
mode1.scope = r'symbol';
mode1.variants = [mode2, mode3];
mode1.relevance = 0;
mode2.begin = r'[A-Z][a-zA-Z0-9_]*';
mode3.begin = r'_[A-Za-z0-9_]*';
mode4.begin = r'\(';
mode4.end = r'\)';
mode4.relevance = 0;
mode4.contains = [
mode0,
mode1,
r'self',
mode5,
mode6,
mode7,
mode9,
mode12,
mode14,
mode15,
mode16,
mode17,
mode18,
];
mode5.begin = r':-';
mode6.begin = r'\[';
mode6.end = r'\]';
mode6.contains = [
mode0,
mode1,
mode4,
mode5,
r'self',
mode7,
mode9,
mode12,
mode14,
mode15,
mode16,
mode17,
mode18,
];
mode7.scope = r'comment';
mode7.begin = r'%';
mode7.end = r'$';
mode7.contains = [mode8];
mode8.begin =
r"\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b";
mode9.scope = r'comment';
mode9.begin = r'/\*';
mode9.end = r'\*/';
mode9.contains = [mode10, mode11];
mode10.scope = r'doctag';
mode10.begin = r'[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)';
mode10.end = r'(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):';
mode10.excludeBegin = true;
mode10.relevance = 0;
mode11.begin =
r"[ ]+((?:I|a|is|so|us|to|at|if|in|it|on|[A-Za-z]+['](d|ve|re|ll|t|s|n)|[A-Za-z]+[-][a-z]+|[A-Za-z][a-z]{2,})[.]?[:]?([.][ ]|[ ])){3}";
mode12.scope = r'string';
mode12.begin = r'"';
mode12.end = r'"';
mode12.illegal = r'\n';
mode12.contains = [mode13];
mode13.begin = r'\\[\s\S]';
mode13.relevance = 0;
mode14.scope = r'string';
mode14.begin = r"'";
mode14.end = r"'";
mode14.illegal = r'\n';
mode14.contains = [mode13];
mode15.scope = r'string';
mode15.begin = r'`';
mode15.end = r'`';
mode15.contains = [mode13];
mode16.scope = r'string';
mode16.begin = r"0'(\\'|.)";
mode17.scope = r'string';
mode17.begin = r"0'\\s";
mode18.scope = r'number';
mode18.begin =
r'(-?)(\b0[xX][a-fA-F0-9]+|(\b\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?)';
mode18.relevance = 0;
return Mode(
name: r'Prolog',
contains: [
mode0,
mode1,
mode4,
mode5,
mode6,
mode7,
mode9,
mode12,
mode14,
mode15,
mode16,
mode17,
mode18,
Mode(begin: r'\.$'),
],
);
}