You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
811 B
29 lines
811 B
var consumeNumber = require('../../tokenizer/utils').consumeNumber; |
|
var TYPE = require('../../tokenizer').TYPE; |
|
|
|
var DIMENSION = TYPE.Dimension; |
|
|
|
module.exports = { |
|
name: 'Dimension', |
|
structure: { |
|
value: String, |
|
unit: String |
|
}, |
|
parse: function() { |
|
var start = this.scanner.tokenStart; |
|
var numberEnd = consumeNumber(this.scanner.source, start); |
|
|
|
this.eat(DIMENSION); |
|
|
|
return { |
|
type: 'Dimension', |
|
loc: this.getLocation(start, this.scanner.tokenStart), |
|
value: this.scanner.source.substring(start, numberEnd), |
|
unit: this.scanner.source.substring(numberEnd, this.scanner.tokenStart) |
|
}; |
|
}, |
|
generate: function(node) { |
|
this.chunk(node.value); |
|
this.chunk(node.unit); |
|
} |
|
};
|
|
|