del test file
This commit is contained in:
@@ -1,78 +0,0 @@
|
|||||||
from tclint.parser import Parser as tcLintParser
|
|
||||||
from tclint.lexer import Lexer as tclingLexer
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
parser = tcLintParser(True)
|
|
||||||
tree = parser.parse("""puts hello
|
|
||||||
proc myProc {arg {arg7 0}} {}
|
|
||||||
set myVar 123
|
|
||||||
puts puts
|
|
||||||
LIB_SPF_prepend MOM_strt Start_Lib {
|
|
||||||
set somthing 1
|
|
||||||
set more 2
|
|
||||||
} myTag
|
|
||||||
|
|
||||||
LIB_SPF_prepend MOM_strt Start_Lib {
|
|
||||||
proc test {} {
|
|
||||||
puts "Hello"
|
|
||||||
}
|
|
||||||
set somthing 1
|
|
||||||
set someting 3
|
|
||||||
} myTag""")
|
|
||||||
|
|
||||||
print(tree.pretty(2))
|
|
||||||
|
|
||||||
|
|
||||||
def lexer_test():
|
|
||||||
lexer = tclingLexer()
|
|
||||||
tree = lexer.input("""
|
|
||||||
if {$oem(custom_clamp_4th) == 1 && $oem(custom_clamp_5th) == 1 \\
|
|
||||||
&& $oem(status_clamp_4th) == "off" && $oem(status_clamp_5th) == "off"}""")
|
|
||||||
|
|
||||||
# print("Lexing input:\n", code)
|
|
||||||
# print("\nTokens:\n" + "-" * 30)
|
|
||||||
|
|
||||||
while lexer.type() is not None:
|
|
||||||
tok_type = lexer.type()
|
|
||||||
tok_value = lexer.value()
|
|
||||||
tok_pos = lexer.pos()
|
|
||||||
print(f"Type: {tok_type:20} | Value: {repr(tok_value):20} | Pos: {tok_pos}")
|
|
||||||
lexer.next()
|
|
||||||
|
|
||||||
|
|
||||||
def test_1():
|
|
||||||
from tclint.lexer import Lexer, TOK_BACKSLASH_NEWLINE
|
|
||||||
|
|
||||||
code = "expr {1 == 2 \\\n&& 3 == 4}"
|
|
||||||
|
|
||||||
lexer = Lexer()
|
|
||||||
lexer.input(code)
|
|
||||||
|
|
||||||
while lexer.type() is not None:
|
|
||||||
print(
|
|
||||||
f"Type: {lexer.type():<20} | Value: {lexer.value()!r} | Pos: {lexer.pos()}"
|
|
||||||
)
|
|
||||||
lexer.next()
|
|
||||||
|
|
||||||
|
|
||||||
class NodeVisitor:
|
|
||||||
def visit_script(self, node):
|
|
||||||
for stmt in node.statements:
|
|
||||||
stmt.accept(self)
|
|
||||||
|
|
||||||
def visit_proc(self, node):
|
|
||||||
print(f"Proc: {node.name}, args={node.args}")
|
|
||||||
|
|
||||||
def visit_set(self, node):
|
|
||||||
print(f"Set: {node.varname} = {node.value}")
|
|
||||||
|
|
||||||
def visit_namespace(self, node):
|
|
||||||
print(f"Namespace: {node.name}")
|
|
||||||
|
|
||||||
def visit_command(self, node):
|
|
||||||
print(f"Command: {node.name} {node.args}")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
test_1()
|
|
||||||
Reference in New Issue
Block a user