Вход Регистрация
Файл: engine/skins/mirror/mode/http/http.js
Строк: 94
<?php
// CodeMirror, copyright (c) by Marijn Haverbeke and others
// Distributed under an MIT license: http://codemirror.net/LICENSE

(function(mod) {
  if (
typeof exports == "object" && typeof module == "object"// CommonJS
    
mod(require("../../lib/codemirror"));
  else if (
typeof define == "function" && define.amd// AMD
    
define(["../../lib/codemirror"], mod);
  else 
// Plain browser env
    
mod(CodeMirror);
})(function(
CodeMirror) {
"use strict";

CodeMirror.defineMode("http", function() {
  function 
failFirstLine(streamstate) {
    
stream.skipToEnd();
    
state.cur header;
    return 
"error";
  }

  function 
start(streamstate) {
    if (
stream.match(/^HTTP/d.d/)) {
      
state.cur responseStatusCode;
      return 
"keyword";
    } else if (
stream.match(/^[A-Z]+/) && /[ t]/.test(stream.peek())) {
      
state.cur requestPath;
      return 
"keyword";
    } else {
      return 
failFirstLine(streamstate);
    }
  }

  function 
responseStatusCode(streamstate) {
    var 
code stream.match(/^d+/);
    if (!
code) return failFirstLine(streamstate);

    
state.cur responseStatusText;
    var 
status Number(code[0]);
    if (
status >= 100 && status 200) {
      return 
"positive informational";
    } else if (
status >= 200 && status 300) {
      return 
"positive success";
    } else if (
status >= 300 && status 400) {
      return 
"positive redirect";
    } else if (
status >= 400 && status 500) {
      return 
"negative client-error";
    } else if (
status >= 500 && status 600) {
      return 
"negative server-error";
    } else {
      return 
"error";
    }
  }

  function 
responseStatusText(streamstate) {
    
stream.skipToEnd();
    
state.cur header;
    return 
null;
  }

  function 
requestPath(streamstate) {
    
stream.eatWhile(/S/);
    
state.cur requestProtocol;
    return 
"string-2";
  }

  function 
requestProtocol(streamstate) {
    if (
stream.match(/^HTTP/d.d$/)) {
      
state.cur header;
      return 
"keyword";
    } else {
      return 
failFirstLine(streamstate);
    }
  }

  function 
header(stream) {
    if (
stream.sol() && !stream.eat(/[ t]/)) {
      if (
stream.match(/^.*?:/)) {
        return 
"atom";
      } else {
        
stream.skipToEnd();
        return 
"error";
      }
    } else {
      
stream.skipToEnd();
      return 
"string";
    }
  }

  function 
body(stream) {
    
stream.skipToEnd();
    return 
null;
  }

  return {
    
token: function(streamstate) {
      var 
cur state.cur;
      if (
cur != header && cur != body && stream.eatSpace()) return null;
      return 
cur(streamstate);
    },

    
blankLine: function(state) {
      
state.cur body;
    },

    
startState: function() {
      return {
curstart};
    }
  };
});

CodeMirror.defineMIME("message/http""http");

});
?>
Онлайн: 0
Реклама