npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

tree-sitter-lotus

v1.0.0

Published

Tree-sitter grammar for LotusScript

Downloads

15

Readme

tree-sitter-lotus

Tree-sitter grammar for LotusScript, the programming language used in IBM Lotus Notes and Domino.

Features

This grammar supports the core LotusScript syntax including:

  • Option statements: Option Public, Option Private, Option Declare, Option Explicit
  • Subroutines and Functions: Sub and Function declarations with parameters
  • Classes: Class declarations with methods and properties
  • Control structures: If...Then...Else, For...Next, Do...Loop, While...Wend, Select Case
  • Variable declarations: Dim, Set, Let statements
  • Expressions: Arithmetic, comparison, and logical expressions
  • Comments: Single quote (') and Rem comments
  • Function calls: Method calls and member expressions

Installation

npm install tree-sitter-lotus

Usage

In Node.js

const Parser = require('tree-sitter');
const LotusScript = require('tree-sitter-lotus');

const parser = new Parser();
parser.setLanguage(LotusScript);

const sourceCode = `
Option Public

Sub HelloWorld(name As String)
  Dim message As String
  message = "Hello, " & name & "!"
  Call PrintMessage(message)
End Sub

Function AddNumbers(a As Integer, b As Integer) As Integer
  AddNumbers = a + b
End Function
`;

const tree = parser.parse(sourceCode);
console.log(tree.rootNode.toString());

In VS Code

  1. Install the grammar package
  2. VS Code will automatically use it for .lss and .ls files
  3. You'll get syntax highlighting and parsing for LotusScript files

Development

Building the grammar

npm run generate

Running tests

npm test

Parsing a file

npm run parse path/to/your/file.lss

Grammar Structure

The grammar recognizes the following main constructs:

  • source_file: Top-level container for all statements
  • option_stmt: Option declarations
  • class_decl: Class definitions
  • sub_decl: Subroutine definitions
  • function_decl: Function definitions
  • statement: Various statement types
  • expression: Expression parsing with operator precedence

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new features
  5. Submit a pull request

License

MIT License - see LICENSE file for details.

Related