UNPKG

xdoc-parser

Version:
380 lines 295 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const chai = require("chai"); const XDocASTVisitor_1 = require("../src/XDocASTVisitor"); const XDocASTGenerator_1 = require("../src/XDocASTGenerator"); const XDocASTNode_1 = require("../src/XDocASTNode"); const FS = require("fs"); /* Helpers */ const equal = chai.assert.deepEqual; const generate = (source) => new XDocASTGenerator_1.default(source).generate(); const parse = (source) => new XDocASTVisitor_1.default(generate(source)).visit(); const documentation = (annotations) => XDocASTNode_1.createDocumentationNode(XDocASTNode_1.createBodyNode(annotations)); // console.log(JSON.stringify(parse(`@tag id: (type & type) | type - Description`), null, 2)); describe('XDoc Syntax Parser (Tom)', () => { describe('parse simple annotations', () => { it('should parse @tag', () => equal(parse('@tag'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), null, null, null, null) ]))); it('should parse @tag - description', () => equal(parse('@tag - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), null, null, null, XDocASTNode_1.createDescriptionNode('description', [])) ]))); it('should parse @tag id', () => equal(parse('@tag id'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), null, null, null) ]))); it('should parse @tag id - description', () => equal(parse('@tag id - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), null, null, XDocASTNode_1.createDescriptionNode('description')) ]))); }); describe('parse complex annotations (the ones JSDoc can\'t do)', () => { describe('parse typed annotations', () => { /* * ==================== * Parse primary type * ==================== */ describe('parse primary type', () => { it('should parse @tag id: type', () => equal(parse('@tag id: type'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), null, null) ]))); it('should parse @tag id: type - description', () => equal(parse('@tag id: type - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id?: type', () => equal(parse('@tag id?: type'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id', true)), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), null, null) ]))); it('should parse @tag id?: type - description', () => equal(parse('@tag id?: type - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id', true)), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: type.type.type', () => equal(parse('@tag id: type.type.type'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createPropertyIdentifierNode([ XDocASTNode_1.createIdentifierNode('type'), XDocASTNode_1.createIdentifierNode('type'), XDocASTNode_1.createIdentifierNode('type') ], 'type.type.type'))), null, null) ]))); it('should parse @tag id: type.type.type - description', () => equal(parse('@tag id: type.type.type - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createPropertyIdentifierNode([ XDocASTNode_1.createIdentifierNode('type'), XDocASTNode_1.createIdentifierNode('type'), XDocASTNode_1.createIdentifierNode('type') ], 'type.type.type'))), null, XDocASTNode_1.createDescriptionNode('description')) ]))); }); /* * ==================== * Parse union type * ==================== */ describe('parse union type', () => { it('should parse @tag id: type & type', () => equal(parse('@tag id: type & type'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createUnionTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, null) ]))); it('should parse @tag id: type & type - description', () => equal(parse('@tag id: type & type - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createUnionTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, XDocASTNode_1.createDescriptionNode('description')) ]))); }); /* * ==================== * Parse intersection type * ==================== */ describe('parse intersection type', () => { it('should parse @tag id: type | type', () => equal(parse('@tag id: type | type'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createIntersectTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, null) ]))); it('should parse @tag id: type | type - description', () => equal(parse('@tag id: type | type - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createIntersectTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, XDocASTNode_1.createDescriptionNode('description')) ]))); }); /* * ==================== * Parse lambda type * ==================== */ describe('parse lambda type', () => { it('should parse @tag id: () => type', () => equal(parse('@tag id: () => type'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createLambdaTypeNode(null, XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, null) ]))); it('should parse @tag id: () => type - description', () => equal(parse('@tag id: () => type - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createLambdaTypeNode(null, XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: () => type[]', () => equal(parse('@tag id: () => type[]'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createLambdaTypeNode(null, XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), null)))), null, null) ]))); it('should parse @tag id: () => type[] - description', () => equal(parse('@tag id: () => type[] - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createLambdaTypeNode(null, XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), null)))), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: (id) => type', () => equal(parse('@tag id: (id) => type'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createLambdaTypeNode(XDocASTNode_1.createFormalParemeterSequenceNode([ XDocASTNode_1.createParameterNode(XDocASTNode_1.createIdentifierNode('id'), null) ]), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, null) ]))); it('should parse @tag id: (id) => type - description', () => equal(parse('@tag id: (id) => type - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createLambdaTypeNode(XDocASTNode_1.createFormalParemeterSequenceNode([ XDocASTNode_1.createParameterNode(XDocASTNode_1.createIdentifierNode('id'), null) ]), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: (id, id) => type', () => equal(parse('@tag id: (id, id) => type'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createLambdaTypeNode(XDocASTNode_1.createFormalParemeterSequenceNode([ XDocASTNode_1.createParameterNode(XDocASTNode_1.createIdentifierNode('id'), null), XDocASTNode_1.createParameterNode(XDocASTNode_1.createIdentifierNode('id'), null) ]), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, null) ]))); it('should parse @tag id: (id, id) => type - description', () => equal(parse('@tag id: (id, id) => type - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createLambdaTypeNode(XDocASTNode_1.createFormalParemeterSequenceNode([ XDocASTNode_1.createParameterNode(XDocASTNode_1.createIdentifierNode('id'), null), XDocASTNode_1.createParameterNode(XDocASTNode_1.createIdentifierNode('id'), null) ]), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: (id, id) => type', () => equal(parse('@tag id: (id, id) => type'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createLambdaTypeNode(XDocASTNode_1.createFormalParemeterSequenceNode([ XDocASTNode_1.createParameterNode(XDocASTNode_1.createIdentifierNode('id'), null), XDocASTNode_1.createParameterNode(XDocASTNode_1.createIdentifierNode('id'), null) ]), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, null) ]))); it('should parse @tag id: (id: type, id: type) => type - description', () => equal(parse('@tag id: (id: type, id: type) => type - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createLambdaTypeNode(XDocASTNode_1.createFormalParemeterSequenceNode([ XDocASTNode_1.createParameterNode(XDocASTNode_1.createIdentifierNode('id'), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')))), XDocASTNode_1.createParameterNode(XDocASTNode_1.createIdentifierNode('id'), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')))) ]), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: (id: type, id: type) => type', () => equal(parse('@tag id: (id: type, id: type) => type'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createLambdaTypeNode(XDocASTNode_1.createFormalParemeterSequenceNode([ XDocASTNode_1.createParameterNode(XDocASTNode_1.createIdentifierNode('id'), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')))), XDocASTNode_1.createParameterNode(XDocASTNode_1.createIdentifierNode('id'), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')))) ]), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, null) ]))); it('should parse @tag id: (id, id) => type - description', () => equal(parse('@tag id: (id, id) => type - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createLambdaTypeNode(XDocASTNode_1.createFormalParemeterSequenceNode([ XDocASTNode_1.createParameterNode(XDocASTNode_1.createIdentifierNode('id'), null), XDocASTNode_1.createParameterNode(XDocASTNode_1.createIdentifierNode('id'), null) ]), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, XDocASTNode_1.createDescriptionNode('description')) ]))); }); // End parse lambda type /* * ==================== * Parse tuple type * ==================== */ describe('parse tuple type', () => { it('should parse @tag id: type<type>', () => equal(parse('@tag id: type<type>'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createTupleTypeNode(XDocASTNode_1.createIdentifierNode('type'), [ XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))) ])), null, null) ]))); it('should parse @tag id: type<type> - description', () => equal(parse('@tag id: type<type> - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createTupleTypeNode(XDocASTNode_1.createIdentifierNode('type'), [ XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))) ])), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: type<type, type>', () => equal(parse('@tag id: type<type, type>'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createTupleTypeNode(XDocASTNode_1.createIdentifierNode('type'), [ XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))) ])), null, null) ]))); it('should parse @tag id: type<type, type> - description', () => equal(parse('@tag id: type<type, type> - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createTupleTypeNode(XDocASTNode_1.createIdentifierNode('type'), [ XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))) ])), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: <type, type>', () => equal(parse('@tag id: <type, type>'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createTupleTypeNode(null, [ XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))) ])), null, null) ]))); it('should parse @tag id: <type, type> - description', () => equal(parse('@tag id: <type, type> - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createTupleTypeNode(null, [ XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))) ])), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: <type extends type, type>', () => equal(parse('@tag id: <type extends type, type>'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createTupleTypeNode(null, [ XDocASTNode_1.createTupleExtendedTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')), XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))) ])), null, null) ]))); it('should parse @tag id: <type extends type, type> - description', () => equal(parse('@tag id: <type extends type, type> - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createTupleTypeNode(null, [ XDocASTNode_1.createTupleExtendedTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')), XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))) ])), null, XDocASTNode_1.createDescriptionNode('description')) ]))); }); // End tuple type /* * ==================== * Parse parenthesized type * ==================== */ describe('parse parenthesized type', () => { it('should parse @tag id: (type)', () => equal(parse('@tag id: (type)'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createParenthesizedTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, null) ]))); it('should parse @tag id: (type) - description', () => equal(parse('@tag id: (type) - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createParenthesizedTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))), null, XDocASTNode_1.createDescriptionNode('description')) ]))); }); // End parenthesized type /* * ==================== * Parse unary type * ==================== */ describe('parse unary type', () => { it('should parse @tag id: *type', () => equal(parse('@tag id: *type'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createUnaryTypeNode('*', XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')))), null, null) ]))); it('should parse @tag id: *type - description', () => equal(parse('@tag id: *type - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createUnaryTypeNode('*', XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')))), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: &type', () => equal(parse('@tag id: &type'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createUnaryTypeNode('&', XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')))), null, null) ]))); it('should parse @tag id: &type - description', () => equal(parse('@tag id: &type - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createUnaryTypeNode('&', XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')))), null, XDocASTNode_1.createDescriptionNode('description')) ]))); }); // End unary type /* * ==================== * Parse object type * ==================== */ describe('parse object type', () => { it('should parse @tag id: {}', () => equal(parse('@tag id: {}'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createObjectTypeNode()), null, null) ]))); it('should parse @tag id: {} - description', () => equal(parse('@tag id: {} - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createObjectTypeNode()), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: { type : type }', () => equal(parse('@tag id: { type : type }'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createObjectTypeNode([ XDocASTNode_1.createObjectPairTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')))) ])), null, null) ]))); it('should parse @tag id: { type : type } - description', () => equal(parse('@tag id: { type : type } - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createObjectTypeNode([ XDocASTNode_1.createObjectPairTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')))) ])), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: { type: { type: type } }', () => equal(parse('@tag id: { type: { type: type } }'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createObjectTypeNode([ XDocASTNode_1.createObjectPairTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createObjectTypeNode([ XDocASTNode_1.createObjectPairTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')))) ]))) ])), null, null) ]))); it('should parse @tag id: { type: { type: type } } - description', () => equal(parse('@tag id: { type : { type: type } } - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createObjectTypeNode([ XDocASTNode_1.createObjectPairTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createObjectTypeNode([ XDocASTNode_1.createObjectPairTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')))) ]))) ])), null, XDocASTNode_1.createDescriptionNode('description')) ]))); }); // End object type /* * ==================== * Parse array type * ==================== */ describe('parse array type', () => { it('should parse @tag id: type[]', () => equal(parse('@tag id: type[]'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), null)), null, null) ]))); it('should parse @tag id: type[] - description', () => equal(parse('@tag id: type[] - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), null)), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: (type & type)[]', () => equal(parse('@tag id: (type & type)[]'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createParenthesizedTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createUnionTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))))), null)), null, null) ]))); it('should parse @tag id: (type & type)[] - description', () => equal(parse('@tag id: (type & type)[] - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createParenthesizedTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createUnionTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))))), null)), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: (type | type)[]', () => equal(parse('@tag id: (type | type)[]'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createParenthesizedTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createIntersectTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))))), null)), null, null) ]))); it('should parse @tag id: (type | type)[] - description', () => equal(parse('@tag id: (type | type)[] - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createParenthesizedTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createIntersectTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))))), null)), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: type[][]', () => equal(parse('@tag id: type[][]'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), null)), null, null) ]))); it('should parse @tag id: type[][] - description', () => equal(parse('@tag id: type[][] - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), null)), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: [type]', () => equal(parse('@tag id: [type]'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(null, [ XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))) ], null)), null, null) ]))); it('should parse @tag id: [type] - description', () => equal(parse('@tag id: [type] - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(null, [ XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))) ], null)), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: [type, type]', () => equal(parse('@tag id: [type, type]'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(null, [ XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))) ], null)), null, null) ]))); it('should parse @tag id: [type, type] - description', () => equal(parse('@tag id: [type, type] - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(null, [ XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))) ], null)), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: { type: type }[]', () => equal(parse('@tag id: { type: type }[]'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createObjectTypeNode([ XDocASTNode_1.createObjectPairTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')))) ])), null)), null, null) ]))); it('should parse @tag id: { type: type }[] - description', () => equal(parse('@tag id: { type: type }[] - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createObjectTypeNode([ XDocASTNode_1.createObjectPairTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))), XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type')))) ])), null)), null, XDocASTNode_1.createDescriptionNode('description')) ]))); it('should parse @tag id: (() => type)[]', () => equal(parse('@tag id: (() => type)[]'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createParenthesizedTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createLambdaTypeNode(null, XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))))), null)), null, null) ]))); it('should parse @tag id: (() => type)[] - description', () => equal(parse('@tag id: (() => type)[] - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), XDocASTNode_1.createTypeNode(XDocASTNode_1.createArrayTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createParenthesizedTypeNode(XDocASTNode_1.createTypeNode(XDocASTNode_1.createLambdaTypeNode(null, XDocASTNode_1.createTypeNode(XDocASTNode_1.createPrimaryTypeNode(XDocASTNode_1.createIdentifierNode('type'))))))), null)), null, XDocASTNode_1.createDescriptionNode('description')) ]))); }); // End array type }); // End parse type describe('parse assigned annotations', () => { /* * ========================== * Parse literal expression * ========================== */ describe('parse literal expression', () => { describe('parse number literal', () => { it('should parse @tag id = 0', () => equal(parse('@tag id = 0'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), null, XDocASTNode_1.createExpressionNode(XDocASTNode_1.createLiteralExpressionNode('number', '0')), null) ]))); it('should parse @tag id = 0 - description', () => equal(parse('@tag id = 0 - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), null, XDocASTNode_1.createExpressionNode(XDocASTNode_1.createLiteralExpressionNode('number', '0')), XDocASTNode_1.createDescriptionNode('description', [])) ]))); it('should parse @tag id = 0.1', () => equal(parse('@tag id = 0.1'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), null, XDocASTNode_1.createExpressionNode(XDocASTNode_1.createLiteralExpressionNode('number', '0.1')), null) ]))); it('should parse @tag id = 0.1 - description', () => equal(parse('@tag id = 0.1 - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), null, XDocASTNode_1.createExpressionNode(XDocASTNode_1.createLiteralExpressionNode('number', '0.1')), XDocASTNode_1.createDescriptionNode('description', [])) ]))); it('should parse @tag id = 0xffff', () => equal(parse('@tag id = 0xffff'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), null, XDocASTNode_1.createExpressionNode(XDocASTNode_1.createLiteralExpressionNode('number', '0xffff')), null) ]))); it('should parse @tag id = 0xffff - description', () => equal(parse('@tag id = 0xffff - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), null, XDocASTNode_1.createExpressionNode(XDocASTNode_1.createLiteralExpressionNode('number', '0xffff')), XDocASTNode_1.createDescriptionNode('description', [])) ]))); it('should parse @tag id = 0o3', () => equal(parse('@tag id = 0o3'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), null, XDocASTNode_1.createExpressionNode(XDocASTNode_1.createLiteralExpressionNode('number', '0o3')), null) ]))); it('should parse @tag id = 0o3 - description', () => equal(parse('@tag id = 0o3 - description'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.createIdentifierNode('id')), null, XDocASTNode_1.createExpressionNode(XDocASTNode_1.createLiteralExpressionNode('number', '0o3')), XDocASTNode_1.createDescriptionNode('description', [])) ]))); it('should parse @tag id = 0b10', () => equal(parse('@tag id = 0b10'), documentation([ XDocASTNode_1.createTagNode(XDocASTNode_1.createTagNameNode(XDocASTNode_1.createIdentifierNode('tag')), XDocASTNode_1.createTagIdentifierNode(XDocASTNode_1.cr