glsl-token-scope

WebJar for glsl-token-scope

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

glsl-token-scope
Last Version

Last Version

1.1.2
Release Date

Release Date

Type

Type

jar
Description

Description

glsl-token-scope
WebJar for glsl-token-scope
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/glslify/glsl-token-scope

Download glsl-token-scope

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/glsl-token-scope/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>glsl-token-scope</artifactId>
    <version>1.1.2</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/glsl-token-scope/
implementation 'org.webjars.npm:glsl-token-scope:1.1.2'
// https://jarcasting.com/artifacts/org.webjars.npm/glsl-token-scope/
implementation ("org.webjars.npm:glsl-token-scope:1.1.2")
'org.webjars.npm:glsl-token-scope:jar:1.1.2'
<dependency org="org.webjars.npm" name="glsl-token-scope" rev="1.1.2">
  <artifact name="glsl-token-scope" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='glsl-token-scope', version='1.1.2')
)
libraryDependencies += "org.webjars.npm" % "glsl-token-scope" % "1.1.2"
[org.webjars.npm/glsl-token-scope "1.1.2"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

glsl-token-scope

experimental

Infer the scope of each token in an array of GLSL tokens.

Usage

NPM

scope(tokens)

Where tokens is an array of tokens returned from glsl-tokenizer. Each token will be modified in-place, and given scope and stack properties.

token.scope is a unique number for the token's current scope.

token.stack is an array containing the scopes available to the current token.

Note that you must first determine the scope depth of each token using glsl-token-depth

var tokenize = require('glsl-tokenizer/string')
var depth    = require('glsl-token-depth')
var scope    = require('glsl-token-scope')
var fs       = require('fs')

var src = fs.readFileSync('shader.frag', 'utf8')
var tokens = tokenize(src)

depth(tokens)
scope(tokens)

tokens[0].scope // 0
tokens[1].scope // 0
tokens[2].scope // 1
tokens[3].scope // 1
tokens[4].scope // 0
tokens[5].scope // 2
// ...

tokens[0].stack // [0]
tokens[1].stack // [0]
tokens[2].stack // [0, 1]
tokens[3].stack // [0, 1]
tokens[4].stack // [0]
tokens[5].stack // [0, 2]
// ...

See Also

License

MIT. See LICENSE.md for details.

org.webjars.npm

Versions

Version
1.1.2