glsl-deparser

through stream that translates glsl-parser AST nodes into working glsl code

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
glsl-deparser
1.0.010 years ago12 years agoMinified + gzip package size for glsl-deparser in KB

Readme

glsl-deparser
var Path = require('path')

var tokenizer = require('glsl-tokenizer')()
  , parser = require('glsl-parser')
  , deparser = require('glsl-deparser')

process.stdin
  .pipe(tokenizer)
  .pipe(parser())
  .pipe(deparser())             // <-- deparser!
  .pipe(process.stdout)

process.stdin.resume()

transform a stream of glsl-parser AST nodes into strings.
only operates on top-level statements emitted by glsl-parser, so the code it emits is executable by webgl.
api

deparser(whitespaceenabled=true, tabtext=' ')

Creates a readable/writable stream.
If no args are provided, whitespace is assumed to be enabled, and the tab text will be ' '.
If you pass false for the first arg, only syntactically significant whitespace will be emitted (it'll behave like a poor man's minifier).
If you pass true and tab text, that tab text will be used to indent code.
note
the big caveat is that preprocessor if statements (#if*, #endif) won't work unless each branch produces a parseable tree.
license
MIT