step21 top-level property
Implementation
final step21 = Mode(
refs: {},
name: "STEP Part 21",
aliases: ["p21", "step", "stp"],
case_insensitive: true,
keywords: {
"\$pattern": "[A-Z_][A-Z0-9_.]*",
"keyword": ["HEADER", "ENDSEC", "DATA"]
},
contains: [
Mode(className: "meta", begin: "ISO-10303-21;", relevance: 10),
Mode(className: "meta", begin: "END-ISO-10303-21;", relevance: 10),
C_LINE_COMMENT_MODE,
C_BLOCK_COMMENT_MODE,
Mode(scope: "comment", begin: "/\\*\\*!", end: "\\*/", contains: [
Mode(
scope: "doctag",
begin: "[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
end: "(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",
excludeBegin: true,
relevance: 0),
Mode(
begin:
"[ ]+((?: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}")
]),
C_NUMBER_MODE,
Mode(
scope: "string",
begin: "'",
end: "'",
illegal: null,
contains: [BACKSLASH_ESCAPE]),
Mode(
scope: "string",
begin: "\"",
end: "\"",
illegal: null,
contains: [BACKSLASH_ESCAPE]),
Mode(className: "string", begin: "'", end: "'"),
Mode(
className: "symbol",
variants: [Mode(begin: "#", end: "\\d+", illegal: "\\W")])
]);