File Exchange

image thumbnail

fparser: a pedestrian m-file parser and tokenizer

version (14.5 KB) by us
lists ML-tokens and constructs (function, var, struct assignment) in a m-file or from a command line


Updated 12 Dec 2005

View License

FPARSER parses a M-file or command line
and list tokens and constructs:
- functions/keywords
- variables/constants
- struct field assignments

see the accompanying published m-file for an example

Comments and Ratings (4)


Very useful function. thanks.

Found 1 bug. Comment on lines after a function "end" seem to cause an error.


Excellent work! Here's a fresh bug report:

Code 'idx>0' gets tagged as a field rather than an expression.

Andrej Mosat

The file is well commented, some lines are cryptic, but thats good for learning new programming styles :-) Excellent tool for compiling a documentation of your project.
Some remarks:
variable i: (output of the fparser):
i > 11 built-in (C:\install\Matlab\toolbox\matlab\elmat\i)
That is true, but in my context I use it exclusively as a counter (for i=1:N)
And one question: what exactly represents:
.nstok nr of STRUCT.FIELD assignments ?
Thank you.

Fu-Sung Wang

The concept of parsing a MATLAB file is new to me. I guess that can help programmers to analyze the cost of the script, in a manner of minimum number of variables, functions, etc...Anyway, I have to parsing this great work first.


changed a struct assignment issue; ver tag 12-Dec-2005 09:26:17

1) added user requested options (john peach/ by default, run-time display of results is now available via -d option; otherwise, use par.res
2)put very long usage example into html file
3) ver tag: 05-Dec-2004 18:20:34

removed command_line mode restriction (user request); ver_tag: 03-Sep-2003 14:53:14

added option to enter a command line (user request)

added option to enter a command line (user request)

additional parser capabilities

added help, refined output

MATLAB Release Compatibility
Created with R13
Compatible with any release
Platform Compatibility
Windows macOS Linux