File Exchange

image thumbnail

farg: a pedestrian M-file parser showing all used functions' syntax

version (20.1 KB) by us
parses an M-file searching for functions and prints their exact, literal syntax


Updated 20 Jun 2010

View License

FARG parses an M-file (function or script) searching for function tags and lists their exact, literal syntax.

in addition, FARG displays a wide variety of file statistics.

currently, these functions are detected and listed
- main function
- subfunctions
- nested functions
- anonymous functions
- eval class calls
- unresolved calls

whitespaces and continuation statements are removed for better readability of the function syntax.

if the lex parser encounters fatal errors, it will stop processing and print a list of the offending syntax.

tested under r2007a, older version 7 systems might work as well.

>> help farg
and the accompanying published M-file for information and a few self-explanatory examples.

Cite As

us (2020). farg: a pedestrian M-file parser showing all used functions' syntax (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (4)

Selva Haran

It is a very useful utility. Is it possible to list the actual parameters passed to each function call (not just the formal parameters used in the function definition)? Note that this may vary across calls to the same function. Thanks.


unlike FARG, M2HTML dose not
- distinguish between subfunctions and nested functions
- extract anonymous functions
- extract f/eval constructs

moreover, it is a standalone function that does not require other files and subfolders nor the web browser to display its result

just a few pedestrian thoughts...

Very pedestrian indeed: See M2HTML


all files now are read by very fast low-level i/o subroutines; version tag 21-Jun-2010 02:16:38

changes in the lint-engine for r2010+; version tag 26-May-2010 11:15:24

parser now accepts meta method class descriptors; version tag 18-Jun-2009 09:41:48

added more options and file statistics items; shows unresolved and EVAL class calls; version tag 08-Jun-2009 22:24:04

accepts P/MEX/DLL/MDL files as input and looks for associated M-files; version tag 14-Nov-2007 12:59:41

last update did not seem to work! version tag 29-Oct-2007 17:49:25
file date must be 30-Oct-2007 12:49:10

removed an annoying debug printout; version tag still 29-Oct-2007 17:49:25

added debug option, which will save the lex parser engine (see help); version tag is 29-Oct-2007 17:49:25

uploading does not seem to work; version tag is 27-Aug-2007 19:27:56

added an example of how FARG deals with parentheses in certain ANONYMOUS functions; version tag 27-Aug-2007 15:15:58

small changes in the html for better readability; version tag is 16-Aug-2007 04:17:10

added option to suppress opentoline format, added an example script with erroneous syntax in the html file; version tag is 15-Aug-2007 03:56:40

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