Code coverage report for sc/lang/compiler/parser/literal.js

Statements: 100% (15 / 15)      Branches: 100% (10 / 10)      Functions: 100% (3 / 3)      Lines: 100% (15 / 15)      Ignored: none     

All files » sc/lang/compiler/parser/ » literal.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 381     1   1 1 1   1 471   471   471 1     470       1 471                 470   1      
(function(sc) {
  "use strict";
 
  require("./parser");
 
  var Token = sc.lang.compiler.Token;
  var Node = sc.lang.compiler.Node;
  var Parser = sc.lang.compiler.Parser;
 
  Parser.addParseMethod("Literal", function() {
    var marker = this.createMarker();
 
    var node = this.lex();
 
    if (!isLiteral(node.type)) {
      this.throwUnexpected(node);
    }
 
    return marker.update().apply(
      Node.createLiteral(node)
    );
  });
  function isLiteral(type) {
    switch (type) {
    case Token.IntegerLiteral:
    case Token.FloatLiteral:
    case Token.NilLiteral:
    case Token.TrueLiteral:
    case Token.FalseLiteral:
    case Token.SymbolLiteral:
    case Token.StringLiteral:
    case Token.CharLiteral:
      return true;
    }
    return false;
  }
})(sc);