/* ***** BEGIN LICENSE BLOCK ***** * Distributed under the BSD license: * * Copyright (c) 2012, Ajax.org B.V. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Ajax.org B.V. nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * ***** END LICENSE BLOCK ***** */ /* This file was autogenerated from ./jssm.tmLanguage (uuid: ) */ /**************************************************************************************** * IT MIGHT NOT BE PERFECT ...But it's a good start from an existing *.tmlanguage file. * * fileTypes * ****************************************************************************************/ define(function(require, exports, module) { "use strict"; var oop = require("../lib/oop"); var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; var JSSMHighlightRules = function() { // regexp must not have capturing parentheses. Use (?:) instead. // regexps are ordered -> the first match is used this.$rules = { start: [{ token: "punctuation.definition.comment.mn", regex: /\/\*/, push: [{ token: "punctuation.definition.comment.mn", regex: /\*\//, next: "pop" }, { defaultToken: "comment.block.jssm" }], comment: "block comment" }, { token: "comment.line.jssm", regex: /\/\//, push: [{ token: "comment.line.jssm", regex: /$/, next: "pop" }, { defaultToken: "comment.line.jssm" }], comment: "block comment" }, { token: "entity.name.function", regex: /\${/, push: [{ token: "entity.name.function", regex: /}/, next: "pop" }, { defaultToken: "keyword.other" }], comment: "js outcalls" }, { token: "constant.numeric", regex: /[0-9]*\.[0-9]*\.[0-9]*/, comment: "semver" }, { token: "constant.language.jssmLanguage", regex: /graph_layout\s*:/, comment: "jssm language tokens" }, { token: "constant.language.jssmLanguage", regex: /machine_name\s*:/, comment: "jssm language tokens" }, { token: "constant.language.jssmLanguage", regex: /machine_version\s*:/, comment: "jssm language tokens" }, { token: "constant.language.jssmLanguage", regex: /jssm_version\s*:/, comment: "jssm language tokens" }, { token: "keyword.control.transition.jssmArrow.legal_legal", regex: /<->/, comment: "transitions" }, { token: "keyword.control.transition.jssmArrow.legal_none", regex: /<-/, comment: "transitions" }, { token: "keyword.control.transition.jssmArrow.none_legal", regex: /->/, comment: "transitions" }, { token: "keyword.control.transition.jssmArrow.main_main", regex: /<=>/, comment: "transitions" }, { token: "keyword.control.transition.jssmArrow.none_main", regex: /=>/, comment: "transitions" }, { token: "keyword.control.transition.jssmArrow.main_none", regex: /<=/, comment: "transitions" }, { token: "keyword.control.transition.jssmArrow.forced_forced", regex: /<~>/, comment: "transitions" }, { token: "keyword.control.transition.jssmArrow.none_forced", regex: /~>/, comment: "transitions" }, { token: "keyword.control.transition.jssmArrow.forced_none", regex: /<~/, comment: "transitions" }, { token: "keyword.control.transition.jssmArrow.legal_main", regex: /<-=>/, comment: "transitions" }, { token: "keyword.control.transition.jssmArrow.main_legal", regex: /<=->/, comment: "transitions" }, { token: "keyword.control.transition.jssmArrow.legal_forced", regex: /<-~>/, comment: "transitions" }, { token: "keyword.control.transition.jssmArrow.forced_legal", regex: /<~->/, comment: "transitions" }, { token: "keyword.control.transition.jssmArrow.main_forced", regex: /<=~>/, comment: "transitions" }, { token: "keyword.control.transition.jssmArrow.forced_main", regex: /<~=>/, comment: "transitions" }, { token: "constant.numeric.jssmProbability", regex: /[0-9]+%/, comment: "edge probability annotation" }, { token: "constant.character.jssmAction", regex: /\'[^']*\'/, comment: "action annotation" }, { token: "entity.name.tag.jssmLabel.doublequoted", regex: /\"[^"]*\"/, comment: "jssm label annotation" }, { token: "entity.name.tag.jssmLabel.atom", regex: /[a-zA-Z0-9_.+&()#@!?,]/, comment: "jssm label annotation" }] }; this.normalizeRules(); }; JSSMHighlightRules.metaData = { fileTypes: ["jssm", "jssm_state"], name: "JSSM", scopeName: "source.jssm" }; oop.inherits(JSSMHighlightRules, TextHighlightRules); exports.JSSMHighlightRules = JSSMHighlightRules; });