本文整理汇总了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;未经允许,请勿转载。 |
请发表评论