![]() | Name | Last modified | Size | Description |
---|---|---|---|---|
![]() | Parent Directory | - | ||
![]() | lib/ | 2 years ago | - | |
![]() | node_modules/ | 2 years ago | - | |
![]() | LICENSE.md | 2 years ago | 1.1K | 0fb859dc fixed mobile overflwo options [كارل مبارك] |
![]() | README.md | 2 years ago | 1.9K | 0fb859dc fixed mobile overflwo options [كارل مبارك] |
![]() | index.js | 2 years ago | 7.2K | 0fb859dc fixed mobile overflwo options [كارل مبارك] |
![]() | package.json | 2 years ago | 1.9K | 0fb859dc fixed mobile overflwo options [كارل مبارك] |
![]() | stream.js | 2 years ago | 519 | 0fb859dc fixed mobile overflwo options [كارل مبارك] |
![]() | string.js | 2 years ago | 270 | 0fb859dc fixed mobile overflwo options [كارل مبارك] |
Maps GLSL string data into GLSL tokens, either synchronously or using a streaming API.
var tokenString = require('glsl-tokenizer/string')
var tokenStream = require('glsl-tokenizer/stream')
var fs = require('fs')
// Synchronously:
var tokens = tokenString(fs.readFileSync('some.glsl'))
// Streaming API:
fs.createReadStream('some.glsl')
.pipe(tokenStream())
.on('data', function(token) {
console.log(token.data, token.position, token.type)
})
Returns an array of tokens
given the GLSL source string src
You can specify opt.version
string to use different keywords/builtins, such as '300 es'
for WebGL2. Otherwise, will assume GLSL 100 (WebGL1).
var tokens = tokenizer(src, {
version: '300 es'
})
Emits 'data' events whenever a token is parsed with a token object as output.
As above, you can specify opt.version
.
{ 'type': TOKEN_TYPE
, 'data': "string of constituent data"
, 'position': integer position within the GLSL source
, 'line': line number within the GLSL source
, 'column': column number within the GLSL source }
The available token types are:
block-comment
: /* ... */
line-comment
: // ... \n
preprocessor
: # ... \n
operator
: Any operator. If it looks like punctuation, it's an operator.float
: Optionally suffixed with f
ident
: User defined identifier.builtin
: Builtin function.eof
: Emitted on end
; data will === '(eof)'
.integer
whitespace
keyword
MIT, see LICENSE.md for further information.