Skip to content

Commit 60d4412

Browse files
authored
Merge pull request #677 from nasa/fix-bug-in-syntax-writers
Fix bug in syntax writers
2 parents 4733196 + 913598e commit 60d4412

File tree

8 files changed

+10
-5
lines changed

8 files changed

+10
-5
lines changed

compiler/lib/src/main/scala/codegen/AstWriter.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,8 @@ object AstWriter extends AstVisitor with LineUtils {
129129
List.concat(
130130
ident(data.name),
131131
linesOpt(typeNameNode, data.typeName),
132-
data.constants.flatMap(annotateNode(defEnumConstant))
132+
data.constants.flatMap(annotateNode(defEnumConstant)),
133+
linesOpt(addPrefix("default", exprNode), data.default)
133134
).map(indentIn)
134135
}
135136

compiler/lib/src/main/scala/codegen/FppWriter.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,8 @@ object FppWriter extends AstVisitor with LineUtils {
219219
joinOpt (data.typeName) (": ") (typeNameNode).
220220
joinNoIndent (" ") (
221221
addBraces(data.constants.flatMap(annotateNode(defEnumConstant)))
222-
)
222+
).
223+
joinOpt (data.default) (" default ") (exprNode)
223224
}
224225

225226
override def defGuardAnnotatedNode(

compiler/tools/fpp-format/test/include.ref.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ module DefinitionsAndSpecifiers {
3030
X
3131
Y
3232
Z
33-
}
33+
} default X
3434

3535
@ Container specifier
3636
product container C id 0x00 default priority 10 @< Container specifier

compiler/tools/fpp-format/test/no_include.ref.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ module DefinitionsAndSpecifiers {
3030
X
3131
Y
3232
Z
33-
}
33+
} default X
3434

3535
@ Container specifier
3636
product container C id 0x00 default priority 10 @< Container specifier

compiler/tools/fpp-syntax/test/syntax-ast.ref.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ def module
5252
ident Y
5353
def enum constant
5454
ident Z
55+
default ident X
5556
@ Container specifier
5657
spec container
5758
ident C

compiler/tools/fpp-syntax/test/syntax-include-ast.ref.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ def module
5252
ident Y
5353
def enum constant
5454
ident Z
55+
default ident X
5556
@ Container specifier
5657
spec container
5758
ident C

compiler/tools/fpp-syntax/test/syntax-stdin.ref.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ def module
5252
ident Y
5353
def enum constant
5454
ident Z
55+
default ident X
5556
@ Container specifier
5657
spec container
5758
ident C

compiler/tools/fpp-syntax/test/syntax.fpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ module DefinitionsAndSpecifiers {
2323
type T
2424
array A = [3] U32
2525
struct S { x: [3] U32, y: F32, z: string }
26-
enum E { X, Y, Z }
26+
enum E { X, Y, Z } default X
2727

2828
@ Container specifier
2929
product container C id 0x00 default priority 10

0 commit comments

Comments
 (0)