• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Python compiler.parse函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中naulang.compiler.compiler.parse函数的典型用法代码示例。如果您正苦于以下问题:Python parse函数的具体用法?Python parse怎么用?Python parse使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了parse函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: test_while_statement

def test_while_statement():
    assert(parse("""while true {
        100
        200
    }""") == ast.Block([ast.WhileStatement(ast.BooleanConstant(True),
                                           ast.Block([ast.IntegerConstant(100),
                                                      ast.IntegerConstant(200)]))]))
开发者ID:samgiles,项目名称:naulang,代码行数:7,代码来源:test_parser.py


示例2: test_function_call_and_definition

def test_function_call_and_definition():

    assert parse("""
            let n = 10
            let a = fn(x) {
                print (x * 2) + n
            }

            a(2)
            a(4)
            a(8)
            a(16)
            a(32)
        """) == ast.Block([
        ast.ScopedAssignment('n', ast.IntegerConstant(10)),
        ast.ScopedAssignment('a', ast.FunctionExpression(
            paramlist=ast.ParameterList(['x']),
            block=ast.Block([
                ast.PrintStatement(
                    ast.Add(
                            ast.Multiply(
                                ast.IdentifierExpression('x'),
                                ast.IntegerConstant(2)
                            ),
                            ast.IdentifierExpression('n')
                            )
                )
            ])
        )
        ),
        ast.FunctionCall(ast.IdentifierExpression('a'),
                         ast.ArgumentList([
                             ast.IntegerConstant(2)
                         ])
                         ),
        ast.FunctionCall(ast.IdentifierExpression('a'),
                         ast.ArgumentList([
                             ast.IntegerConstant(4)
                         ])
                         ),
        ast.FunctionCall(ast.IdentifierExpression('a'),
                         ast.ArgumentList([
                             ast.IntegerConstant(8)
                         ])
                         ),
        ast.FunctionCall(ast.IdentifierExpression('a'),
                         ast.ArgumentList([
                             ast.IntegerConstant(16)
                         ])
                         ),
        ast.FunctionCall(ast.IdentifierExpression('a'),
                         ast.ArgumentList([
                             ast.IntegerConstant(32)
                         ])
                         )
    ])
开发者ID:samgiles,项目名称:naulang,代码行数:56,代码来源:test_parser.py


示例3: test_compound_expression

def test_compound_expression():
    assert parse("10 * 6 - 5 + 2 + 1000 / 2") == ast.Block([
        ast.Add(
            ast.Add(
                ast.Subtract(
                    ast.Multiply(
                        ast.IntegerConstant(10),
                        ast.IntegerConstant(6)
                    ),
                    ast.IntegerConstant(5)
                ),
                ast.IntegerConstant(2)
            ),
            ast.Divide(
                ast.IntegerConstant(1000),
                ast.IntegerConstant(2)
            )
        )])
开发者ID:samgiles,项目名称:naulang,代码行数:18,代码来源:test_parser.py


示例4: test_parse_channel_out

def test_parse_channel_out():
    assert parse("""let n =<: channel""") == ast.Block(
        [ast.ScopedAssignment('n', ast.ChannelOut(ast.IdentifierExpression('channel')))])
开发者ID:samgiles,项目名称:naulang,代码行数:3,代码来源:test_parser.py


示例5: test_parse_channel_in_out

def test_parse_channel_in_out():
    assert parse(
        """in <-<: out""") == ast.Block([ast.ChannelIn(ast.IdentifierExpression("in"),
                                                       ast.ChannelOut(ast.IdentifierExpression("out")))])
开发者ID:samgiles,项目名称:naulang,代码行数:4,代码来源:test_parser.py


示例6: test_less_than_eq_expression

def test_less_than_eq_expression():
    assert parse("100 <= 100") == ast.Block([ast.LessThanOrEqual(ast.IntegerConstant(100), ast.IntegerConstant(100))])
开发者ID:samgiles,项目名称:naulang,代码行数:2,代码来源:test_parser.py


示例7: test_function_statement_args

def test_function_statement_args():
    assert parse("""fn a(x, y, z) {
        100
    }""") == ast.Block([ast.FunctionStatement('a',
                                              ast.ParameterList(['x', 'y', 'z']),
                                              ast.Block([ast.IntegerConstant(100)]))])
开发者ID:samgiles,项目名称:naulang,代码行数:6,代码来源:test_parser.py


示例8: test_not_equal_expression

def test_not_equal_expression():
    assert parse("100 != 100") == ast.Block([ast.NotEquals(ast.IntegerConstant(100), ast.IntegerConstant(100))])
开发者ID:samgiles,项目名称:naulang,代码行数:2,代码来源:test_parser.py


示例9: test_logical_or_expression

def test_logical_or_expression():
    assert parse("100 or 100") == ast.Block([ast.Or(ast.IntegerConstant(100), ast.IntegerConstant(100))])
开发者ID:samgiles,项目名称:naulang,代码行数:2,代码来源:test_parser.py


示例10: test_subtraction_expression

def test_subtraction_expression():
    assert parse("100-100") == ast.Block([ast.Subtract(ast.IntegerConstant(100), ast.IntegerConstant(100))])
开发者ID:samgiles,项目名称:naulang,代码行数:2,代码来源:test_parser.py


示例11: test_equality_expression

def test_equality_expression():
    assert parse("100 == 100") == ast.Block([ast.Equals(ast.IntegerConstant(100), ast.IntegerConstant(100))])
    assert parse("100 is 100") == ast.Block([ast.Equals(ast.IntegerConstant(100), ast.IntegerConstant(100))])
开发者ID:samgiles,项目名称:naulang,代码行数:3,代码来源:test_parser.py


示例12: test_scope_assignment

def test_scope_assignment():
    assert parse("""let a = 10""") == ast.Block([ast.ScopedAssignment('a', ast.IntegerConstant(10))])
开发者ID:samgiles,项目名称:naulang,代码行数:2,代码来源:test_parser.py


示例13: test_expression_assignment

def test_expression_assignment():
    assert parse(
        """a = 10 * 10""") == ast.Block([ast.Assignment('a',
                                                        ast.Multiply(ast.IntegerConstant(10),
                                                                     ast.IntegerConstant(10)))])
开发者ID:samgiles,项目名称:naulang,代码行数:5,代码来源:test_parser.py


示例14: test_array_access_assignment

def test_array_access_assignment():
    assert parse("""a[0] = 10""") == ast.Block(
        [ast.ArrayAssignment(ast.ArrayAccess(ast.IdentifierExpression('a'),
                             ast.IntegerConstant(0)),
                             ast.IntegerConstant(10))])
开发者ID:samgiles,项目名称:naulang,代码行数:5,代码来源:test_parser.py


示例15: test_array_access

def test_array_access():
    assert parse("""a[10]""") == ast.Block([ast.ArrayAccess(ast.IdentifierExpression('a'), ast.IntegerConstant(10))])
开发者ID:samgiles,项目名称:naulang,代码行数:2,代码来源:test_parser.py


示例16: test_addition_expression

def test_addition_expression():
    assert parse("100+100") == ast.Block([ast.Add(ast.IntegerConstant(100), ast.IntegerConstant(100))])
开发者ID:samgiles,项目名称:naulang,代码行数:2,代码来源:test_parser.py


示例17: test_modulo_expression

def test_modulo_expression():
    assert parse("100%100") == ast.Block([ast.Mod(ast.IntegerConstant(100), ast.IntegerConstant(100))])
开发者ID:samgiles,项目名称:naulang,代码行数:2,代码来源:test_parser.py


示例18: test_parse_break_statement

def test_parse_break_statement():
    assert parse("""break""") == ast.Block([ast.BreakStatement()])
开发者ID:samgiles,项目名称:naulang,代码行数:2,代码来源:test_parser.py


示例19: test_multiply_expression

def test_multiply_expression():
    assert parse("100*100") == ast.Block([ast.Multiply(ast.IntegerConstant(100), ast.IntegerConstant(100))])
开发者ID:samgiles,项目名称:naulang,代码行数:2,代码来源:test_parser.py


示例20: test_division_expression

def test_division_expression():
    assert parse("100/100") == ast.Block([ast.Divide(ast.IntegerConstant(100), ast.IntegerConstant(100))])
开发者ID:samgiles,项目名称:naulang,代码行数:2,代码来源:test_parser.py



注:本文中的naulang.compiler.compiler.parse函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python msg.GridCells类代码示例发布时间:2022-05-27
下一篇:
Python portmapper.get_port_mapper函数代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap