xdoc-parser
Version:
An XDoc comment parser.
380 lines • 295 kB
JavaScript
"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