diff options
| author | Michael Williamson <mike@zwobble.org> | 2024-02-03 11:39:30 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2024-02-03 11:39:51 +0000 |
| commit | 2ec7f973ce084932ffe25516dc3fe27e2011450d (patch) | |
| tree | af59afa25fac6b454ce28ab58fc03aa0ef0ca507 /src/main/java | |
| parent | 96b78561204020df21703a5fe8922bf49dc6e1f4 (diff) | |
Add visibility to PatioDataElementImmutable
Diffstat (limited to 'src/main/java')
6 files changed, 17 insertions, 2 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java b/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java index 859d79ab..aecefd7f 100644 --- a/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java +++ b/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java @@ -189,7 +189,7 @@ public class PatioToLlvm { context.target() )), true, - false, + patioDataElementImmutable.visibility().isPrivate(), true )); } diff --git a/src/main/java/org/shedlang/compiler/patio/PatioDataElementImmutable.java b/src/main/java/org/shedlang/compiler/patio/PatioDataElementImmutable.java index fef9f1fd..c2f90725 100644 --- a/src/main/java/org/shedlang/compiler/patio/PatioDataElementImmutable.java +++ b/src/main/java/org/shedlang/compiler/patio/PatioDataElementImmutable.java @@ -5,6 +5,7 @@ import org.shedlang.compiler.sources.Source; public record PatioDataElementImmutable( String name, + PatioVisibility visibility, PatioDataValue value, Source source ) implements PatioCompilationUnitElement { diff --git a/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java b/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java index d6db62c6..dc61d245 100644 --- a/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java +++ b/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java @@ -99,6 +99,7 @@ public class PatioSerializer { treeList( treeIdentifier("data-immutable"), treeString(dataElementImmutable.name()), + visibilityToTree(dataElementImmutable.visibility()), dataValueToTree(dataElementImmutable.value()) ); diff --git a/src/main/java/org/shedlang/compiler/patio/PatioVisibility.java b/src/main/java/org/shedlang/compiler/patio/PatioVisibility.java index 55ccc361..b5bf6701 100644 --- a/src/main/java/org/shedlang/compiler/patio/PatioVisibility.java +++ b/src/main/java/org/shedlang/compiler/patio/PatioVisibility.java @@ -2,5 +2,15 @@ package org.shedlang.compiler.patio; public enum PatioVisibility { PRIVATE, - PUBLIC, + PUBLIC; + + public boolean isPrivate() { + return switch(this) { + case PRIVATE -> + true; + + case PUBLIC -> + false; + }; + } } diff --git a/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatio.java b/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatio.java index 0831fd71..ba3995cb 100644 --- a/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatio.java +++ b/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatio.java @@ -1024,6 +1024,7 @@ public class ShidToPatio { context = context.addCompilationUnitElement(new PatioDataElementImmutable( "shed__rtti", + PatioVisibility.PUBLIC, PatioDataValues.array( PatioDataLayouts.struct(List.of( PatioDataLayouts.INT32, diff --git a/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioStrings.java b/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioStrings.java index 25643169..599d3319 100644 --- a/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioStrings.java +++ b/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioStrings.java @@ -3,6 +3,7 @@ package org.shedlang.compiler.shidtopatio; import org.shedlang.compiler.patio.PatioDataElementImmutable; import org.shedlang.compiler.patio.PatioFunctionDeclaration; import org.shedlang.compiler.patio.PatioLocal; +import org.shedlang.compiler.patio.PatioVisibility; import org.shedlang.compiler.patio.instructions.PatioCall; import org.shedlang.compiler.patio.operands.PatioDataPtrConst; import org.shedlang.compiler.patio.operands.PatioLocalRef; @@ -57,6 +58,7 @@ public class ShidToPatioStrings { context = context.addCompilationUnitElement(new PatioDataElementImmutable( elementName, + PatioVisibility.PRIVATE, dataValue, source )); |
