Skip to content
This repository was archived by the owner on Jun 15, 2023. It is now read-only.

Refactor PPX: move across files and clean up exceptions #638

Merged
merged 1 commit into from
Sep 18, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion cli/dune
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
(executable
(name res_cli)
(public_name rescript)
(modes byte exe)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Side comment: byte for debugger maybe?
Any runtime debugger suggestion? I haven't tried it yet.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is because otherwise dune does not generate files required by reanalyze.
But for standalone executable it should be possible.
Notice the debugger is not so user friendly though so one needs to try a bit and asses when it's worth using it.

(flags
(-open Syntax -open Compilerlibs406)
(:standard -w +a-4-42-40-9-48))
(:standard -w +a-4-42-40-9-48-70))
(libraries syntax compilerlibs406))
24 changes: 24 additions & 0 deletions cli/react_jsx_common.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
open Asttypes
open Parsetree

type jsxConfig = {
mutable version: int;
mutable module_: string;
mutable mode: string;
mutable nestedModules: string list;
mutable hasReactComponent: bool;
}

(* Helper method to look up the [@react.component] attribute *)
let hasAttr (loc, _) = loc.txt = "react.component"

(* Iterate over the attributes and try to find the [@react.component] attribute *)
let hasAttrOnBinding {pvb_attributes} =
List.find_opt hasAttr pvb_attributes <> None

let raiseError ~loc msg = Location.raise_errorf ~loc msg

let raiseErrorMultipleReactComponent ~loc =
raiseError ~loc
"Only one component definition is allowed for each module. Move to a \
submodule or other file if necessary."
Loading