Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F#到JavaScript编译器的F#项目模板_Javascript_Visual Studio_Compiler Construction_F# - Fatal编程技术网

F#到JavaScript编译器的F#项目模板

F#到JavaScript编译器的F#项目模板,javascript,visual-studio,compiler-construction,f#,Javascript,Visual Studio,Compiler Construction,F#,我开发了一个(和其他动态类型语言)编译器。编译器本身是强大的,从某种意义上说,它能够翻译许多F#构造,另一方面,它不是那么用户友好。您仍然需要使用命令行可执行文件将项目转换为JavaScript代码 这对用户来说是不友好的,原因有很多,调试就是其中之一 因此,我想创建一个项目模板(具有基本目录结构),允许程序员编写代码,就像它是一个普通的F#项目一样,然后当他单击绿色的“run”按钮时,编译过程应该开始,最后浏览器应该打开一个运行结果JavaScript代码的网页。任何使用过Websharper

我开发了一个(和其他动态类型语言)编译器。编译器本身是强大的,从某种意义上说,它能够翻译许多F#构造,另一方面,它不是那么用户友好。您仍然需要使用命令行可执行文件将项目转换为JavaScript代码

这对用户来说是不友好的,原因有很多,调试就是其中之一

因此,我想创建一个项目模板(具有基本目录结构),允许程序员编写代码,就像它是一个普通的F#项目一样,然后当他单击绿色的“run”按钮时,编译过程应该开始,最后浏览器应该打开一个运行结果JavaScript代码的网页。任何使用过Websharper或Pit的人都知道我在说什么

当然,如果翻译成其他语言,我希望“run”按钮的行为有所不同。基本上,另一个模板应该完成这项工作

所以我的问题是:除了编译前和编译后阶段,还有其他选择吗?我认为编译器也可以用作库,而不是二进制可执行文件

欢迎参考有用的文档

该项目(F#to JavaScript编译器)的项目使用了一个(由Tomas Petricek编写)编译标记模块、启动最小web服务器并在浏览器中打开默认网页的程序

FunScript画布示例:

[<ReflectedDefinition>]
module Program

open FunScript

let main() =
  let canvas = Globals.document.getElementsByTagName_canvas().[0]
  canvas.width <- 1000.
  canvas.height <- 800.
  let ctx = canvas.getContext_2d()
  ctx.fillStyle <- "rgb(200,0,0)"
  ctx.fillRect (10., 10., 55., 50.);
  ctx.fillStyle <- "rgba(0, 0, 200, 0.5)"
  ctx.fillRect (30., 30., 55., 50.)

do Runtime.Run(directory="Web")
[]
模块程序
打开FunScript
让main()=
让canvas=Globals.document.getElementsByTagName_canvas()[0]
canvas.width该项目(F#到JavaScript编译器)的项目使用了一个(由Tomas Petricek编写)编译标记的模块,启动一个最小的web服务器,并在浏览器中打开默认网页

FunScript画布示例:

[<ReflectedDefinition>]
module Program

open FunScript

let main() =
  let canvas = Globals.document.getElementsByTagName_canvas().[0]
  canvas.width <- 1000.
  canvas.height <- 800.
  let ctx = canvas.getContext_2d()
  ctx.fillStyle <- "rgb(200,0,0)"
  ctx.fillRect (10., 10., 55., 50.);
  ctx.fillStyle <- "rgba(0, 0, 200, 0.5)"
  ctx.fillRect (30., 30., 55., 50.)

do Runtime.Run(directory="Web")
[]
模块程序
打开FunScript
让main()=
让canvas=Globals.document.getElementsByTagName_canvas()[0]

canvas.width看起来是一个非常有趣的项目,干得不错!看起来是一个非常有趣的项目,干得不错!