Giter Club home page Giter Club logo

antlr-matlab-grammar's Introduction

MatlabAntlrGrammar

An ANTLR4 grammar for MATLAB

Antlr Notes

  • * matches zero or more repetitions
  • + matches one or more repetitions
  • ? matches zero or one

Using ANTLR MATLAB Grammar in MATLAB

We need to add ANTLR and generated CLASS files to the MATLAB Java static path. Adding to dynamic path doesn't work. Once everything is added to the path, we can run the ANTLR TestRig from the MATLAB command prompt.

>> testRig = org.antlr.v4.gui.TestRig({'MATLAB' 'matlab_file' '-tree' 'startup.m'})
>> testRig.process()
(matlab_file (statement (assignment (lvalue (variable paths)) = (expression (cell { (expression_list (expression (lvalue (variable pwd))) , (expression 'D:\Source\BitBucket\vinodkhare\MATLAB-PEP') , (expression 'D:\Source\BitBucket\vinodkhare\MATLAB-Javelin')) }))) ;) (statement (for_statement for 
... more output

Since the output above is being generated on stdout but Java, we can't capture it into a MATLAB variable. The workaround here is to use the MATLAB diary function. This writes the command line output to a text file called diary in the current folder.

Ranges in MATLAB

Ranges in MATLAB can be written in the following forms

  • : - a simple color indicates the 'all' range.
  • end - indicates the last element of the array.
  • A - a single expression A
  • A:B - indicates a range from A to B, where A and B are any expression including end. Floats are accepted, they are incremented by 1.0. E.g. 2.3:4.5 evaluates to [2.3000 3.3000 4.3000].
  • A:S:B - indicates a range with a user specified step.

antlr-matlab-grammar's People

Contributors

charmoniumq avatar vinodkhare avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.