jaclang 0.0.5__py3-none-any.whl → 0.0.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of jaclang might be problematic. Click here for more details.

Files changed (94) hide show
  1. jaclang/__init__.py +2 -1
  2. jaclang/cli/__jac_gen__/__init__.py +0 -0
  3. jaclang/cli/__jac_gen__/cli.py +175 -0
  4. jaclang/cli/__jac_gen__/cmds.py +132 -0
  5. jaclang/cli/cli.jac +2 -2
  6. jaclang/cli/cmds.jac +8 -2
  7. jaclang/cli/impl/__jac_gen__/__init__.py +0 -0
  8. jaclang/cli/impl/__jac_gen__/cli_impl.py +16 -0
  9. jaclang/cli/impl/__jac_gen__/cmds_impl.py +26 -0
  10. jaclang/cli/impl/cli_impl.jac +25 -8
  11. jaclang/cli/impl/cmds_impl.jac +35 -6
  12. jaclang/core/__jac_gen__/__init__.py +0 -0
  13. jaclang/core/__jac_gen__/primitives.py +567 -0
  14. jaclang/core/impl/__jac_gen__/__init__.py +0 -0
  15. jaclang/core/impl/__jac_gen__/arch_impl.py +24 -0
  16. jaclang/core/impl/__jac_gen__/element_impl.py +26 -0
  17. jaclang/core/impl/__jac_gen__/exec_ctx_impl.py +12 -0
  18. jaclang/core/impl/__jac_gen__/memory_impl.py +14 -0
  19. jaclang/core/impl/element_impl.jac +3 -3
  20. jaclang/core/impl/exec_ctx_impl.jac +3 -6
  21. jaclang/core/primitives.jac +4 -3
  22. jaclang/jac/absyntree.py +555 -180
  23. jaclang/jac/constant.py +6 -0
  24. jaclang/jac/importer.py +34 -56
  25. jaclang/jac/langserve.py +26 -0
  26. jaclang/jac/lexer.py +35 -3
  27. jaclang/jac/parser.py +146 -115
  28. jaclang/jac/passes/blue/__init__.py +8 -3
  29. jaclang/jac/passes/blue/ast_build_pass.py +454 -305
  30. jaclang/jac/passes/blue/blue_pygen_pass.py +112 -74
  31. jaclang/jac/passes/blue/decl_def_match_pass.py +49 -277
  32. jaclang/jac/passes/blue/import_pass.py +1 -1
  33. jaclang/jac/passes/blue/pyout_pass.py +74 -0
  34. jaclang/jac/passes/blue/semantic_check_pass.py +37 -0
  35. jaclang/jac/passes/blue/sym_tab_build_pass.py +1045 -0
  36. jaclang/jac/passes/blue/tests/test_ast_build_pass.py +2 -2
  37. jaclang/jac/passes/blue/tests/test_blue_pygen_pass.py +9 -28
  38. jaclang/jac/passes/blue/tests/test_decl_def_match_pass.py +13 -22
  39. jaclang/jac/passes/blue/tests/test_sym_tab_build_pass.py +22 -0
  40. jaclang/jac/passes/ir_pass.py +8 -6
  41. jaclang/jac/passes/purple/__jac_gen__/__init__.py +0 -0
  42. jaclang/jac/passes/purple/__jac_gen__/analyze_pass.py +37 -0
  43. jaclang/jac/passes/purple/__jac_gen__/purple_pygen_pass.py +305 -0
  44. jaclang/jac/passes/purple/impl/__jac_gen__/__init__.py +0 -0
  45. jaclang/jac/passes/purple/impl/__jac_gen__/purple_pygen_pass_impl.py +23 -0
  46. jaclang/jac/passes/purple/impl/purple_pygen_pass_impl.jac +2 -5
  47. jaclang/jac/symtable.py +154 -0
  48. jaclang/jac/tests/fixtures/__jac_gen__/__init__.py +0 -0
  49. jaclang/jac/tests/fixtures/__jac_gen__/hello_world.py +16 -0
  50. jaclang/jac/tests/fixtures/fam.jac +7 -8
  51. jaclang/jac/tests/fixtures/mod_doc_test.jac +1 -0
  52. jaclang/jac/tests/test_parser.py +8 -0
  53. jaclang/jac/transform.py +41 -14
  54. jaclang/jac/transpiler.py +18 -9
  55. jaclang/utils/fstring_parser.py +2 -2
  56. jaclang/utils/helpers.py +41 -0
  57. jaclang/utils/lang_tools.py +12 -2
  58. jaclang/utils/test.py +41 -0
  59. jaclang/vendor/__init__.py +1 -0
  60. jaclang/vendor/pygls/__init__.py +25 -0
  61. jaclang/vendor/pygls/capabilities.py +502 -0
  62. jaclang/vendor/pygls/client.py +176 -0
  63. jaclang/vendor/pygls/constants.py +26 -0
  64. jaclang/vendor/pygls/exceptions.py +220 -0
  65. jaclang/vendor/pygls/feature_manager.py +241 -0
  66. jaclang/vendor/pygls/lsp/__init__.py +139 -0
  67. jaclang/vendor/pygls/lsp/client.py +2224 -0
  68. jaclang/vendor/pygls/lsprotocol/__init__.py +2 -0
  69. jaclang/vendor/pygls/lsprotocol/_hooks.py +1233 -0
  70. jaclang/vendor/pygls/lsprotocol/converters.py +17 -0
  71. jaclang/vendor/pygls/lsprotocol/types.py +12820 -0
  72. jaclang/vendor/pygls/lsprotocol/validators.py +47 -0
  73. jaclang/vendor/pygls/progress.py +79 -0
  74. jaclang/vendor/pygls/protocol.py +1184 -0
  75. jaclang/vendor/pygls/server.py +620 -0
  76. jaclang/vendor/pygls/uris.py +184 -0
  77. jaclang/vendor/pygls/workspace/__init__.py +81 -0
  78. jaclang/vendor/pygls/workspace/position.py +204 -0
  79. jaclang/vendor/pygls/workspace/text_document.py +234 -0
  80. jaclang/vendor/pygls/workspace/workspace.py +311 -0
  81. {jaclang-0.0.5.dist-info → jaclang-0.0.8.dist-info}/METADATA +1 -1
  82. jaclang-0.0.8.dist-info/RECORD +118 -0
  83. jaclang/core/jaclang.jac +0 -62
  84. jaclang/jac/passes/blue/tests/test_type_analyze_pass.py +0 -53
  85. jaclang/jac/passes/blue/type_analyze_pass.py +0 -728
  86. jaclang/jac/sym_table.py +0 -127
  87. jaclang-0.0.5.dist-info/RECORD +0 -73
  88. /jaclang/{utils → vendor}/sly/__init__.py +0 -0
  89. /jaclang/{utils → vendor}/sly/docparse.py +0 -0
  90. /jaclang/{utils → vendor}/sly/lex.py +0 -0
  91. /jaclang/{utils → vendor}/sly/yacc.py +0 -0
  92. {jaclang-0.0.5.dist-info → jaclang-0.0.8.dist-info}/WHEEL +0 -0
  93. {jaclang-0.0.5.dist-info → jaclang-0.0.8.dist-info}/entry_points.txt +0 -0
  94. {jaclang-0.0.5.dist-info → jaclang-0.0.8.dist-info}/top_level.txt +0 -0
jaclang/jac/sym_table.py DELETED
@@ -1,127 +0,0 @@
1
- """Jac Symbol Table."""
2
- import pprint
3
- from typing import Optional, TypeVar
4
-
5
-
6
- import jaclang.jac.absyntree as ast
7
-
8
-
9
- class Symbol:
10
- """Symbol."""
11
-
12
- def __init__(
13
- self,
14
- name: str,
15
- node: Optional[ast.AstNode] = None,
16
- ) -> None:
17
- """Initialize."""
18
- self.name = name
19
- self.node = node
20
-
21
- def pretty_print(self) -> str:
22
- """Pretty print the symbol."""
23
- return pprint.pformat(vars(self), indent=2)
24
-
25
- def __repr__(self) -> str:
26
- """Representation for printing Symbols."""
27
- return f"{self.pretty_print()}"
28
-
29
-
30
- T = TypeVar("T", bound=Symbol)
31
-
32
-
33
- class TypedSymbol(Symbol):
34
- """Typed Symbol."""
35
-
36
- def __init__(
37
- self,
38
- name: str,
39
- typ: type,
40
- node: ast.AstNode,
41
- access: Optional[str] = None,
42
- ) -> None:
43
- """Initialize."""
44
- self.typ = typ
45
- self.access = access
46
- super().__init__(name, node)
47
-
48
-
49
- class DefDeclSymbol(Symbol):
50
- """DefDecl Symbol."""
51
-
52
- def __init__(
53
- self,
54
- name: str,
55
- node: Optional[ast.AstNode] = None,
56
- other_node: Optional[ast.AstNode] = None,
57
- has_def: bool = False,
58
- has_decl: bool = False,
59
- ) -> None:
60
- """Initialize."""
61
- self.other_node = other_node
62
- self.has_def = has_def
63
- self.has_decl = has_decl
64
- super().__init__(name, node)
65
-
66
-
67
- class SymbolTable:
68
- """Symbol Table.
69
-
70
- Functions as a stack by default, can create a separate table in pass
71
- if keeping track of multiple scopes is necessary.
72
- """
73
-
74
- def __init__(
75
- self,
76
- scope_name: str = "",
77
- parent: Optional["SymbolTable"] = None,
78
- ) -> None:
79
- """Initialize."""
80
- self.scope_name = scope_name
81
- self.parent = parent
82
- self.tab: dict = {}
83
-
84
- def lookup(self, name: str, deep: bool = True) -> Optional[T]:
85
- """Lookup a variable in the symbol table."""
86
- if name in self.tab:
87
- return self.tab[name]
88
- if deep and self.parent:
89
- return self.parent.lookup(name, deep)
90
- return None
91
-
92
- def set(self, sym: T, fresh_only: bool = False) -> bool:
93
- """Set a variable in the symbol table."""
94
- if fresh_only and sym.name in self.tab:
95
- return False
96
- self.tab[sym.name] = sym
97
- return True
98
-
99
- def update(self, sym: T, deep: bool = False) -> bool:
100
- """Set a variable in the symbol table."""
101
- if sym.name in self.tab:
102
- self.tab[sym.name] = T
103
- return True
104
- elif deep and self.parent:
105
- return self.parent.update(sym)
106
- return False
107
-
108
- def push(self, scope_name: str = "") -> "SymbolTable":
109
- """Push a new scope onto the symbol table."""
110
- return SymbolTable(scope_name, self)
111
-
112
- def pop(self) -> "SymbolTable":
113
- """Pop the current scope off the symbol table."""
114
- return self.parent if self.parent else self
115
-
116
- def pretty_print(self) -> str:
117
- """Pretty print the symbol table and return the result as a string."""
118
- output = f"Scope: {self.scope_name}\n"
119
- output += pprint.pformat(self.tab)
120
- if self.parent:
121
- output += f"\nParent Scope: {self.parent.scope_name}\n"
122
- output += self.parent.pretty_print()
123
- return output
124
-
125
- def __repr__(self) -> str:
126
- """Return the symbol table as a string."""
127
- return self.pretty_print()
@@ -1,73 +0,0 @@
1
- jaclang/__init__.py,sha256=n8HR401oKxP7ckVZ1cPYl-HTaYszuKV5y0kSqARu3MQ,194
2
- jaclang/cli/__init__.py,sha256=RSosEgm2M0H8QS-H1i-qwVrnHcMClY2TGQlGWPRlXYE,175
3
- jaclang/cli/cli.jac,sha256=_FyrQ2jprGEE5AsPcJj-KIJLIFAE6GTZ3Bmu_DRcPRg,1064
4
- jaclang/cli/cmds.jac,sha256=OliCfA_6NW79WOVg0GdTYW1o_HGqs4QpATeAkUqIjLc,460
5
- jaclang/cli/impl/__init__.py,sha256=BTgKqQqL0RDRnEdtLK_MhdR-rLSDnw39xLabPKUotqU,39
6
- jaclang/cli/impl/cli_impl.jac,sha256=FQVP4dVMPjHOOqEsHdUw96sBhYnVRFpKDb-IGwMGees,2401
7
- jaclang/cli/impl/cmds_impl.jac,sha256=ffsVOYxCmgWE_m3YGgoMMpDyRh7zLzI8JcP4hFiSBLs,1668
8
- jaclang/core/__init__.py,sha256=ryqfgdrsv9w9IhhLtrdwGw_V2gkcQ33QCDzrVgC2S6U,249
9
- jaclang/core/jaclang.jac,sha256=bwd9JOL_-RVTA49ELeifbarIPsnOsk5haODexRlg3cI,1787
10
- jaclang/core/primitives.jac,sha256=MGkD-_yC2cIt9i3aMiGy6yc0THjdRBQH0nv3DrgZGB8,2989
11
- jaclang/core/impl/__init__.py,sha256=BTgKqQqL0RDRnEdtLK_MhdR-rLSDnw39xLabPKUotqU,39
12
- jaclang/core/impl/arch_impl.jac,sha256=L2drGTP4vTEUJUUAsQmzStW0p2w27jbFeRlYIeBEhWM,3869
13
- jaclang/core/impl/element_impl.jac,sha256=MFAcmmAhDotIXOnxqqNAuZxET7gsUvc1rbqbIrVSQSw,3214
14
- jaclang/core/impl/exec_ctx_impl.jac,sha256=nKX3GzYdw6EEA2uJJLIvJy0kXXP1ZxYB03gs4ZAJPj4,372
15
- jaclang/core/impl/memory_impl.jac,sha256=R27OWfEajtZ05RxYxR3hjiLYK7SxS9IQyZ9Q6U__L8g,1364
16
- jaclang/jac/__init__.py,sha256=OAIBG-7iYvbebyiu0pJ-lFsua8mD6meBkaTylb8XS64,26
17
- jaclang/jac/absyntree.py,sha256=l8RVeCyGwS6owGomdZOVZm8ymO_XAKpR7O2SgdqdflM,48442
18
- jaclang/jac/constant.py,sha256=ZYZBl7hGJEq9ivUtgMqQuCheNaT-GB9B76LPdQbKF-I,5135
19
- jaclang/jac/importer.py,sha256=2zXBoZpOCLwBNOqLv5YY1LN-gJli3EKi8G2W0rYS4e8,4699
20
- jaclang/jac/lexer.py,sha256=VVJRlfWxuKULNyC9m05wz7f00oy_AJLEw5-gRBWVwY0,9969
21
- jaclang/jac/parser.py,sha256=BOgBMCq7kIA-rx3kmIWIiXHY_geXszSIUuiDizHKra8,40304
22
- jaclang/jac/sym_table.py,sha256=AQfTaOv5-_QyD6RnZxgNybhuvDv0DHMXkTlX9S6qOp4,3422
23
- jaclang/jac/transform.py,sha256=DyrGtOXHbUzbVZXi3O7pHIOSxEaggnzdwlEG3GqYsWQ,2543
24
- jaclang/jac/transpiler.py,sha256=sC94TSjaFxMpzkkwWFyfjYiHxTijx4MZldT-i-uVx3Q,2204
25
- jaclang/jac/passes/__init__.py,sha256=0Tw0d130ZjzA05jVcny9cf5NfLjlaM70PKqFnY4zqn4,69
26
- jaclang/jac/passes/ir_pass.py,sha256=3x6tfISwr-l2BpGeY3KncAODthKl-8LMTN6HrLRU8Oo,5341
27
- jaclang/jac/passes/blue/__init__.py,sha256=vUwA8sMNU4YbOEBbDqD1D9Z7mwEpVmN1-XKD81P1SFE,638
28
- jaclang/jac/passes/blue/ast_build_pass.py,sha256=t9Xq2BYkJ7faJkttAJy9imSbq--2KgdOBJfRFVFzqWE,96895
29
- jaclang/jac/passes/blue/blue_pygen_pass.py,sha256=CxMGeSprImVDaYYpaYTLPooAqmAXJPkoQHdI-vVeYGI,43291
30
- jaclang/jac/passes/blue/decl_def_match_pass.py,sha256=_B3e3SDddJfBWqLTN31bkYFii2MKkK4YISV6TdJxRxw,10124
31
- jaclang/jac/passes/blue/import_pass.py,sha256=7V1nsjc_hB-nrAyLIHuD6k_8A9FgdMS-s7XwI2lWxEg,2710
32
- jaclang/jac/passes/blue/sub_node_tab_pass.py,sha256=FGUJ5AaddsY0pLRrFr66JEaAeD5GCQRKGJ8I-YDVwYs,964
33
- jaclang/jac/passes/blue/type_analyze_pass.py,sha256=ngMKCrJBbRumu5ODMRTu6LY7iCa3uC35oomwlvCa-Ok,18226
34
- jaclang/jac/passes/blue/tests/__init__.py,sha256=UBAATLUEH3yuBN4LYKnXXV79kokRc4XB-rX12qfu0ds,28
35
- jaclang/jac/passes/blue/tests/test_ast_build_pass.py,sha256=CmL0IVCNrTa8I8ua1rZe03pl3o1w3GGeTSPGGv71EF4,2339
36
- jaclang/jac/passes/blue/tests/test_blue_pygen_pass.py,sha256=k-KrokMCz6a7GbrtOVbmfgAwjBai9j73ixScCEfrvlo,4615
37
- jaclang/jac/passes/blue/tests/test_decl_def_match_pass.py,sha256=_zQadYCX1MfV2jLlQh2tzOyPoxsxq6QRQeVzK3454n4,2181
38
- jaclang/jac/passes/blue/tests/test_import_pass.py,sha256=5__oTikC1BAfQt_iyqYwQEY2ARI-pTEa3Or-qY9kxjk,576
39
- jaclang/jac/passes/blue/tests/test_sub_node_pass.py,sha256=V4ABc2Na4YoQ6--TP3nH1gSRK0KZrsQp6H_iybDWryc,842
40
- jaclang/jac/passes/blue/tests/test_type_analyze_pass.py,sha256=C2HV2bwZ7mDnSN3W3S1o6pYYct5LUu0MtYEEnGWjlzY,2127
41
- jaclang/jac/passes/purple/__init__.py,sha256=Sh2SmmpsVtn6Kzqqdvt-wYnNtOmm4Bm0IwKNfBb6gcI,471
42
- jaclang/jac/passes/purple/analyze_pass.jac,sha256=GcvLNEYm6rAicPqwxxBcTMOy5uyHjT3kW1385LF_FzU,928
43
- jaclang/jac/passes/purple/purple_pygen_pass.jac,sha256=KRyPSjD4QwdSQ1-FsnrmJl6XxGqivhNxAjCiUwBjkFc,1339
44
- jaclang/jac/passes/purple/impl/__init__.py,sha256=BTgKqQqL0RDRnEdtLK_MhdR-rLSDnw39xLabPKUotqU,39
45
- jaclang/jac/passes/purple/impl/purple_pygen_pass_impl.jac,sha256=ad9D8kMoxI4ccX9F816NCVOV3b0zqWmh4r_aRksA2_U,8404
46
- jaclang/jac/tests/__init__.py,sha256=qiXa5UNRBanGOcplFKTT9a_9GEyiv7goq1OzuCjDCFE,27
47
- jaclang/jac/tests/test_importer.py,sha256=mb5c6jb_1cQuW11nxwdJ8ezizuYn26GkIY4bnoY_LJQ,743
48
- jaclang/jac/tests/test_lexer.py,sha256=-17tdYer5fornLcZh6vf-dy_wq51cpxbWVAIhQVd4OU,1982
49
- jaclang/jac/tests/test_parser.py,sha256=TrCogFjZknUJPHkKm9Jk6VzILMiWPsbHf-idlxmViWk,2199
50
- jaclang/jac/tests/fixtures/__init__.py,sha256=udQ0T6rajpW_nMiYKJNckqP8izZ-pH3P4PNTJEln2NU,36
51
- jaclang/jac/tests/fixtures/activity.py,sha256=fSvxYDKufsPeQIrbuh031zHw_hdbRv5iK9mS7dD8E54,263
52
- jaclang/jac/tests/fixtures/fam.jac,sha256=ASMfSvXM78j8p-DmWgPw5NRLDRzwUmMZy46WyhxRFvo,1653
53
- jaclang/jac/tests/fixtures/hello_world.jac,sha256=uT67nGzdYY7YT6Xj5-OHFAZPEHfIl4zGlfyNs7-zRBI,78
54
- jaclang/jac/tests/fixtures/kwesc.jac,sha256=OXxVL_fwiFuvYO1YX1RHa2hpETSpb0QD1-gMYnMY6DA,103
55
- jaclang/jac/tests/fixtures/lexer_fam.jac,sha256=J_bcFC2RnsBxvEsTUoOIgFowkpibbhpB7FSAMYuG9RM,1394
56
- jaclang/jac/tests/fixtures/stuff.jac,sha256=5gFmEO8iPGFoj3xeblcfMF2DA1d-ANJIMjdzlMxEnYU,85
57
- jaclang/utils/__init__.py,sha256=86LQ_LDyWV-JFkYBpeVHpLaVxkqwFDP60XpWXOFZIQk,46
58
- jaclang/utils/fstring_parser.py,sha256=cJ3mD7oH-A4QEjUdpzeW1-ODsB2ZJNb_l0R_VPOTtVw,1845
59
- jaclang/utils/helpers.py,sha256=RufgHNZnh97gTtm7wonBzn9AnmuInkOerF4ns3fqCUg,1656
60
- jaclang/utils/lang_tools.py,sha256=vC77eqwFplatB6DlEF4VdAlPo_Y4JO6-ZE5vXrdNDMg,4243
61
- jaclang/utils/log.py,sha256=copXpha4IB2NsffbhRD4GePA18_ePO39bVBPMBPqhkk,239
62
- jaclang/utils/test.py,sha256=NKevohmVYgIGIo-0wYsWBfXwAy4SKuJX98tQZvc55VI,3746
63
- jaclang/utils/sly/__init__.py,sha256=G1Y7oQ8BtApOGEYXGego223AMaq-8iQnVCn10sKmX8U,115
64
- jaclang/utils/sly/docparse.py,sha256=YfDcZCuL1-5AIymgPPXsghdZuD7qSSIpiTUeQSRCFH0,1957
65
- jaclang/utils/sly/lex.py,sha256=EyK1PDut3uF22Mc60Kcpa58ybfmV02p8L7ylz_1UVuY,16846
66
- jaclang/utils/sly/yacc.py,sha256=KKoDgnmAL6DRpRuatC3WpX2TTjvtcDA5SZ25uCudYvo,88197
67
- jaclang/utils/tests/__init__.py,sha256=8uwVqMsc6cxBAM1DuHLuNuTnzLXqOqM-WRa4ixOMF6w,23
68
- jaclang/utils/tests/test_fstring_parser.py,sha256=8nZPKhGZA0JNRQ1jhQkXRsjGV6pBK-jKEEf2nFevYK8,1887
69
- jaclang-0.0.5.dist-info/METADATA,sha256=m5ZWkRFNT5ctWhuOQSUbPzCF0F2hNMLIc9u_zx47EfY,152
70
- jaclang-0.0.5.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
71
- jaclang-0.0.5.dist-info/entry_points.txt,sha256=xtRv4MQ7W9E_vTxR3JTCHmtDd9TRitKRuI9KOKdR7oM,50
72
- jaclang-0.0.5.dist-info/top_level.txt,sha256=ZOAoLpE67ozkUJd-v3C59wBNXiteRD8IWPbsYB3M08g,8
73
- jaclang-0.0.5.dist-info/RECORD,,
File without changes
File without changes
File without changes
File without changes