在哪里可以找到 MATLAB 的形式语法?

2024-02-21

我想编写一个词法分析器生成器,将 MATLAB 语言的基本子集转换为 C#、C++ 等。为了帮助我做到这一点,我想找到一个包含 MATLAB 形式语法的文档。花了一些时间调查这一点,Mathworks 似乎没有提供这一点。

有谁知道我在哪里可以找到这样的文档?


这不是完整的语法,但是用于 matlab 的 yacc-keable http://www.angelfire.com/ar/CompiladoresUCSE/images/MATLAB.zip为2000年的编译器课程提供。由此,您可以轻松创建BNF和EBNF。

primary_expression
        : IDENTIFIER                  
        | CONSTANT    
        | STRING_LITERAL        
        | '(' expression ')'
        | '[' ']'
        | '[' array_list ']'
        ;

postfix_expression
        : primary_expression
        | array_expression
        | postfix_expression TRANSPOSE
        | postfix_expression NCTRANSPOSE
        ;

index_expression
        : ':'
        | expression
        ;

index_expression_list
        : index_expression
        | index_expression_list ',' index_expression
        ;

array_expression
        : IDENTIFIER '(' index_expression_list ')'
        ;

unary_expression
        : postfix_expression
        | unary_operator postfix_expression
        ;

unary_operator
        : '+'
        | '-'
        | '~'
        ;

multiplicative_expression
        : unary_expression
        | multiplicative_expression '*' unary_expression
        | multiplicative_expression '/' unary_expression
        | multiplicative_expression '\\' unary_expression
        | multiplicative_expression '^' unary_expression
        | multiplicative_expression ARRAYMUL unary_expression
        | multiplicative_expression ARRAYDIV unary_expression
        | multiplicative_expression ARRAYRDIV unary_expression
        | multiplicative_expression ARRAYPOW unary_expression
        ;

additive_expression
        : multiplicative_expression
        | additive_expression '+' multiplicative_expression
        | additive_expression '-' multiplicative_expression
        ;

relational_expression
        : additive_expression
        | relational_expression '<' additive_expression
        | relational_expression '>' additive_expression
        | relational_expression LE_OP additive_expression
        | relational_expression GE_OP additive_expression
        ;

equality_expression
        : relational_expression
        | equality_expression EQ_OP relational_expression
        | equality_expression NE_OP relational_expression
        ;

and_expression
        : equality_expression
        | and_expression '&' equality_expression
        ;

or_expression
        : and_expression
        | or_expression '|' and_expression
        ;

expression
        : or_expression
    | expression ':' or_expression
    ;

assignment_expression
        : postfix_expression '=' expression

eostmt
        :  ','
        |  ';'
        |  CR
        ;

statement
        : global_statement
        | clear_statement
        | assignment_statement
        | expression_statement
        | selection_statement
        | iteration_statement
        | jump_statement
        ;

statement_list
        : statement
        | statement_list statement
        ;

identifier_list
        : IDENTIFIER
        | identifier_list IDENTIFIER
        ;

global_statement
        : GLOBAL identifier_list eostmt
        ;

clear_statement
        : CLEAR identifier_list eostmt
        ;

expression_statement
        : eostmt
        | expression eostmt
        ;

assignment_statement
        : assignment_expression eostmt
        ;

array_element
        : expression
        | expression_statement
        ;

array_list
        : array_element
        | array_list array_element
        ;

selection_statement
        : IF expression statement_list END eostmt
        | IF expression statement_list ELSE statement_list END eostmt
        | IF expression statement_list elseif_clause END eostmt
        | IF expression statement_list elseif_clause
          ELSE statement_list END eostmt
        ;

elseif_clause
        : ELSEIF expression statement_list
    | elseif_clause ELSEIF expression statement_list
        ;

iteration_statement
        : WHILE expression statement_list END eostmt
        | FOR IDENTIFIER '=' expression statement_list END eostmt
        | FOR '(' IDENTIFIER '=' expression ')' statement_list END eostmt 
        ;

jump_statement
        : BREAK eostmt
        | RETURN eostmt
        ;

translation_unit
        : statement_list
        | FUNCTION function_declare eostmt statement_list
        ;

func_ident_list
        : IDENTIFIER
        | func_ident_list ',' IDENTIFIER
        ;

func_return_list
        : IDENTIFIER
        | '[' func_ident_list ']'
        ;

function_declare_lhs
        : IDENTIFIER
        | IDENTIFIER '(' ')'
        | IDENTIFIER '(' func_ident_list ')'
        ;

function_declare
        : function_declare_lhs
        | func_return_list '=' function_declare_lhs
        ;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在哪里可以找到 MATLAB 的形式语法? 的相关文章

  • Matlab中转换数据类型的有效方法(double vs. im2double)

    我想将真彩色图像转换为双精度 据我所知有两种方法可以做到这一点 double rgb img im2double rgb img 哪一种效率更高 谢谢 他们都是不同的 im2double将图像的范围转换为0 1如果数据类型是uint8 or
  • 在另一列中添加具有特定条件的一列,如 excel 的 sumif

    我有一个像这样的矩阵 A 1 2 2 3 3 4 4 5 5 6 6 8 7 9 8 5 9 4 现在我想添加第二列 条件是如果 limit 0 interval 3 且 limit limit interval 或者换句话说 当第 1 列
  • ANTLR 中的布尔和算术表达式语法

    我正在尝试编写算术和布尔表达式的语法 我不明白我做错了什么 对于我的语法 ANTLR 说 致命 规则logic atom 由于可从 alts 1 2 到达的递归规则调用而具有非 LL 决策 通过左分解或使用语法谓词或使用 backtrack
  • 如何找到在matlab中重复的矩阵的每一行的索引?

    我想找到矩阵中所有有重复项的行的索引 例如 A 1 2 3 4 1 2 3 4 2 3 4 5 1 2 3 4 6 5 4 3 要返回的向量将是 1 2 4 很多类似的问题建议使用unique函数 我已经尝试过 但我能得到的最接近我想要的功
  • Matlab没有优化以下内容吗?

    我有一个很长的向量 1xrv 和一个很长的向量w1xs 和一个矩阵Arxs 它是稀疏的 但维度非常大 我期望 Matlab 对以下内容进行优化 这样我就不会遇到内存问题 A v w 但看起来 Matlab 实际上是在尝试生成完整的v w矩阵
  • 什么是 ANN 中的纪元以及它如何转换为 MATLAB 中的代码?

    我试图理解 并可视化 训练人工神经网络的时代到底是什么 我们有一个包含约 7000 个产品的训练集 其中有 10 个特征 输入 这些产品必须根据这 10 个输入分为 7 个类别 我们的 ANN 有 10 个输入 这些输入进入由 10 个神经
  • MATLAB 特征函数

    我很好奇哪里可以找到完整的描述FEATURE功能 它接受哪些论点 没有找到文档 我只听说过memstats and getpid 还要别的吗 gt gt which feature built in undocumented 注意 更完整的
  • 两个向量之间的欧氏距离(单行矩阵)

    我有两个向量 单行矩阵 假设我们已经知道长度len A x1 x2 x3 x4 x5 B y1 y2 y3 y4 y5 计算它们之间的欧几里德距离最快的方法是什么 我的第一次尝试是 diff A B sum 0 for column 1 l
  • Matlab 和 Python 中的优化算法(dog-leg trust-region)

    我正在尝试使用 Matlab 和 Python 中的狗腿信赖域算法求解一组非线性方程 在Matlab中有fsolve https www mathworks com help optim ug fsolve html其中此算法是默认算法 而
  • 如何将二进制值列表转换为int32类型?

    我在 MATLAB 工作区中有一个小端格式的二进制数列表 我想将它们转换为 int32 a是由 0 和 1 组成的双向量 如下所示 a 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1
  • 使用符号求解器仅求解某些变量

    我正在尝试在 MATLAB 中求解包含 3 个变量和 5 个常量的方程组 是否可以使用solve求解三个变量 同时保持常量为符号而不用数值替换它们 当您使用SOLVE http www mathworks com access helpde
  • matlab中的排列函数是如何工作的

    这是一个有点愚蠢的问题 但我似乎无法弄清楚排列在 matlab 中是如何工作的 以文档为例 A 1 2 3 4 permute A 2 1 ans 1 3 2 4 到底是怎么回事 这如何告诉 matlab 3 和 2 需要交换 哇 这是我迄
  • 如何在 matlab 中创建由多个 3d 图像数据数组组成的数组

    我正在阅读 15 张图片imagedata imread imagename jpg 它的大小总是320 by 320 by 3 如何将数据放入数组中 使用 for for 循环 以便在访问新数组的第一个元素时获得输入的第一个图像的 RGB
  • 未排序模式的 boost::Spirit 语法

    我有一个需要解析的模型模式的一部分 可以说它看起来像下面这样 type Standard hostname x y z port 123 属性是 元素可能看起来无序 属于架构一部分的所有元素都必须出现 而不是其他元素 所有元素的综合属性都进
  • 如何在 MATLAB 中绘制 3D 曲面图?

    我有一个像这样的数据集 0 1 0 2 0 3 0 4 1 10 11 12 13 2 11 12 13 14 3 12 13 14 15 4 13 14 15 16 我想在 matlab 中绘制 3D 曲面图 使列标题位于 y 轴 行标题
  • 从开始/结束索引列表创建向量化数组

    我有一个两列矩阵M包含一堆间隔的开始 结束索引 startInd EndInd 1 3 6 10 12 12 15 16 如何生成所有区间索引的向量 v 1 2 3 6 7 8 9 10 12 15 16 我正在使用循环执行上述操作 但我想
  • ROC曲线和libsvm

    给定一条 ROC 曲线plotroc m see here http www csie ntu edu tw cjlin libsvmtools roc curve for binary svm 理论问题 如何选择要使用的最佳阈值 编程问题
  • Matlab Builder JA - 将 Matlab 编译成 Java jar - 免费版本?

    请记住 我对 Matlab 一无所知 Matlab Builder JA 允许开发人员构建 Matlab 应用程序并将其导出到 Java jar 中 太棒了 我只需要生成一个 jar 然后就可以从其他 java 代码中使用它 有谁知道单罐包
  • 如何知道Matlab中系统命令执行过程中经过的时间?

    我有一个运行系统脚本的 Matlab 代码 该脚本可能会因命令运行而停止 我想知道是否有一种方法可以让程序知道它是否花费了很长时间并执行其他操作 这是代码 tic status cmdout system iperfcmd The prog
  • 读出 Matlab / Octave fft2() 函数输出的特定点

    我正在熟悉 Octave 及其功能fft2 在此玩具示例中 我的目标是生成以下 256 x 256 png 图像的 2D DFT 为了能够轻松理解输出 我尝试将此图像转换为 256 x 256 图像 消除颜色信息 Im imread cir

随机推荐

  • 计算该月的最后一天

    如果您提供0 as the dayValue in Date setFullYear你得到上个月的最后一天 d new Date d setFullYear 2008 11 0 Sun Nov 30 2008 参考此行为mozilla ht
  • C++17 多参数包扩展

    我正在尝试映射函数f元组之上t0 t1等返回元组std tuple
  • 如何在R中绘制图形?

    我可以使用以下代码获取 photo11 如何修复我的代码以将 photo1 更改为 photo2 x seq 0 5 0 9 length 200 y dnorm x 0 7 0 0458 plot x y type l xlab my x
  • 如果 python 脚本中包含 Monkeyrunner,则无法使用 raw_input

    我想在我的 python 脚本中输入一些值 我的部分代码是 import os sys subprocess shlex time from com android monkeyrunner import MonkeyRunner impo
  • Laravel 中的 VUE2 组件注册

    Laravel 5 8 和 VUE 一起工作得非常好 但是我的 app js 变得很大 例如 我有以下 app js window Vue require vue window Vue component Comp1 require com
  • 带有 Bluebeam 的 JavaScript 库

    我正在寻找一些信息 参考 示例以及如何在 Bluebeam 中使用 javascript Bluebeam表示可以参考以下AcroForm文档 https www adobe com content dam acom en devnet a
  • 使用 Angular-ui Bootstrap 设置预输入选项

    使用 typeahead 我尝试设置几个选项 这些选项可作为标准 Bootstrap 使用预输入选项 http twitter github io bootstrap javascript html typeahead 使用以下代码 我可以
  • Nasm - 按值和地址访问结构元素

    我最近开始在 NASM 程序集中编码 我的问题是我不知道如何以正确的方式访问结构元素 我已经在这个网站和谷歌上搜索了解决方案 但我看到的每个地方人们都有不同的说法 我的程序崩溃了 我感觉问题出在访问结构上 查看示例代码时 STRUC Tes
  • CoreBluetooth 无法读取固件修订字符串

    我正在尝试检索外围设备的固件修订字符串 当通过应用程序 LightBlue 询问我的外围设备时 我可以查看设备信息 其中包括 制造商名称字符串 固件修订字符串 但是 在我的代码中 我无法发现固件修订字符串的特征 我已经尝试过以下 UUID
  • 不要使用 Proguard 优化特定的类路径

    我尝试在我的 Android 应用程序中实现亚马逊应用内购买 亚马逊人文档 https developer amazon com public apis earn in app purchasing docs code obfuscatio
  • 帮助 Kohana 3 ORM 加快一点速度

    我注意到 当我开始使用它们时 Kohana 3 ORM 会为每个模型运行 显示完整列 SHOW FULL COLUMNS FROM mytable 此查询可能需要几个时钟周期才能执行 在 Kohana 分析器中 它实际上是我当前应用程序中运
  • 避免时间序列一维图中的项目标签重叠 (JFreeChart)

    我正在尝试找到生成带有标签的一维时间图的最佳策略 目前看起来是这样的 问题是 有些时间跨度几乎没有发生什么 而另一些时间跨度则密度很高 我想要实现的是扭曲时间轴以便在密集区域中标签间隔开以避免重叠 或者 我可以想象显示没有轴扭曲的实际数据点
  • JavaScript 时间戳到 Python 日期时间转换

    为了在 JavaScript 中获取时间戳 我们使用 var ts new Date getTime 将其转换为Python的正确方法是什么datetime到目前为止我使用以下代码 gt gt gt jsts 1335205804950 g
  • D 项目的 CMake 或 Waf

    我们正在寻找足够的构建工具 用于用 D 语言 使用 Qt 工具包 编写桌面 GUI 应用程序 由多个本机库组成 使用第 3 方 C lib 它必须在 Linux 本机开发 和 Mac 以及 Windows 上构建 我们可能会采用代码 块 h
  • 按照约定使用接口拦截器进行 Unity 注册会导致“[type] 不可拦截”异常

    我想将所有实现特定接口的类注册到 Unity 中WithMappings FromMatchingInterface习俗 此外 我希望使用接口拦截行为来拦截所有已注册的对象 问题是 Unity 还会注册具体类之间的映射 当解析这些类时 会抛
  • e(fx)clipse javafx的导入无法解析

    嘿 我刚刚为 eclipse 安装了 e fx clipse 插件并创建了一个新的 JavaFX 项目 问题是所有 javafx 导入都无法解析 即使库似乎位于构建路径中 以下是一些屏幕截图 可以向您展示我的意思 有人知道我做错了什么吗 通
  • 如何使用“godoc”生成 HTML 文档?

    我编写了一个小型 go 程序 我想从源代码生成独立的 HTML 文档 无需 godoc 服务器即可查看 但我找不到任何方法来实现它 如果有人可以帮助我 我将不胜感激 可以通过以下方式生成更好的形式 godoc url http localh
  • Travis-CI 跳过部署,尽管已标记“提交”

    我对 Travis CI 还很陌生 但我使用他们的文档找到了解决方法 然而 部署到 GitHub 版本对我来说不起作用 我的 travis yml文件看起来像这样 language java branches only master not
  • 窗口关闭时停止模式(Cocoa)

    我当前正在使用以下代码显示模式窗口 NSApplication sharedApplication runModalForWindow mainWindow 但是 当我关闭此窗口时 其他窗口仍然处于非活动状态 我如何运行stopModal使
  • 在哪里可以找到 MATLAB 的形式语法?

    我想编写一个词法分析器生成器 将 MATLAB 语言的基本子集转换为 C C 等 为了帮助我做到这一点 我想找到一个包含 MATLAB 形式语法的文档 花了一些时间调查这一点 Mathworks 似乎没有提供这一点 有谁知道我在哪里可以找到