FlowScript es un lenguaje de programación orientado a procesos que unifica la modelación y ejecución de flujos de trabajo. Está inspirado en BPMN (Business Process Model and Notation) y proporciona una sintaxis textual isomórfica a los diagramas BPMN.
- Lenguaje Dual: Combina funciones tradicionales con procesos de flujo de trabajo
- Sintaxis Textual BPMN: Representación textual de diagramas BPMN
- IDE Integrado: Editor visual con syntax highlighting
- Tipos de Datos Ricos: Soporte para listas, objetos y tipos primitivos
- Gateways: Soporte para flujos exclusivos (XOR) y paralelos (AND)
- Manejo de Errores: Sistema robusto de try-catch
- Modularidad: Sistema de imports para reutilización de código
flowscript/
├── src/
│ ├── main/
│ │ ├── java/ # Código Java del IDE
│ │ └── tlf/ # Gramáticas ANTLR
│ │ ├── FlowScriptFunctions.g4
│ │ └── FlowScriptProcesses.g4
│ └── test/
│ ├── java/ # Tests unitarios
│ └── resources/ # Casos de prueba YAML
├── pom.xml # Configuración Maven
└── README.md
- Java 17+
- Maven 3.8+
- JavaFX 21+ (incluido en las dependencias)
# Ejemplo de proceso FlowScript con resaltado completo
proceso EjemploProceso {
inicio -> PrimeraTarea
tarea PrimeraTarea {
accion:
imprimir("¡Hola FlowScript!")
mensaje = "Proceso ejecutándose correctamente"
go_to SegundaTarea
}
tarea SegundaTarea {
accion:
si mensaje != nulo {
imprimir("Mensaje: " + mensaje)
go_to Fin
} sino {
go_to FinError
}
}
fin Fin
fin FinError
}
git clone <repository-url>
cd flowscript# Generar parsers desde las gramáticas
mvn antlr4:antlr4mvn clean compile# Ejecutar todos los tests
mvn test
# Ejecutar solo tests de funciones
mvn test -Dtest=FlowScriptFunctionsTest
# Ejecutar solo tests de procesos
mvn test -Dtest=FlowScriptProcessesTest# Ejecutar la aplicación JavaFX
mvn javafx:run
# O usar exec plugin
mvn exec:java -Dexec.mainClass="com.flowscript.ide.FlowScriptIDE"# Crear JAR con todas las dependencias
mvn clean package
# El JAR se generará en target/flowscript-1.0.0-jar-with-dependencies.jar
java -jar target/flowscript-1.0.0-jar-with-dependencies.jar# Solo generar parsers ANTLR
mvn antlr4:antlr4
# Limpiar clases generadas
mvn clean
# Generar y compilar
mvn clean compile# Ejecutar tests con más verbosidad
mvn test -X
# Ejecutar tests de una clase específica
mvn test -Dtest=FlowScriptFunctionsTest
# Ejecutar un test específico
mvn test -Dtest=FlowScriptFunctionsTest#testFlowScriptFunctions# Ejecutar IDE con debug
mvn exec:java -Dexec.mainClass="com.flowscript.ide.FlowScriptIDE" -X
# Ejecutar con JavaFX plugin
mvn clean javafx:compile javafx:runflowscript/
├── src/main/java/com/flowscript/ide/
│ ├── FlowScriptIDE.java # Aplicación principal
│ ├── components/ # Componentes de UI
│ │ ├── CodeEditorPane.java # Editor de código multi-pestaña
│ │ ├── ProjectExplorer.java # Explorador de proyectos
│ │ ├── ConsolePane.java # Panel de consola interactiva
│ │ ├── StatusBar.java # Barra de estado informativa
│ │ └── IconFactory.java # Fábrica de iconos vectoriales
│ ├── services/ # Servicios del sistema
│ │ ├── ThemeService.java # Gestión de temas visuales
│ │ └── ProjectService.java # Gestión de proyectos
│ └── syntax/ # Procesamiento de sintaxis
│ └── FlowScriptSyntaxHighlighter.java
├── src/main/resources/
│ └── css/ # Hojas de estilo
│ ├── syntax-highlighting.css # Colores de sintaxis
│ ├── dark-theme.css # Tema oscuro
│ ├── light-theme.css # Tema claro
│ └── monokai-theme.css # Tema Monokai
└── pom.xml # Configuración Maven
| Función | Atajo |
|---|---|
| Nuevo archivo FlowScript | Ctrl+N |
| Abrir archivo | Ctrl+O |
| Guardar archivo | Ctrl+S |
| Deshacer/Rehacer | Ctrl+Z / Ctrl+Y |
| Cortar/Copiar/Pegar | Ctrl+X / Ctrl+C / Ctrl+V |
| Buscar | Ctrl+F |
| Reemplazar | Ctrl+H |
| Auto-completado | Ctrl+Space |
| Ejecutar FlowScript | F5 |
| Debug FlowScript | F6 |
| Parar ejecución | F7 |
| Validar sintaxis | F8 |
| Formatear código | Ctrl+Shift+F |
| Zoom In/Out/Reset | Ctrl++ / Ctrl+- / Ctrl+0 |
- Fondo oscuro para mejor experiencia nocturna
- Colores de sintaxis optimizados para contraste
- Fondo claro para trabajo diurno
- Colores suaves y profesionales
- Inspirado en el popular tema de Sublime Text
- Colores vibrantes y alta legibilidad
Cambio de tema: View > Theme > [Seleccionar]
- 🏗️ Estructura:
proceso,funcion,importar,importar_jar,como,retornar - 🔄 Flujo:
inicio,fin,tarea,gateway,go_to,cuando,rama,unir,sino - 🎛️ Control:
si,sino_si,intentar,capturar,lanzar - 🏷️ Tipos:
entero,decimal,booleano,texto,lista,objeto,nulo - ✅ Valores:
verdadero,falso - ➕ Operadores:
y,o,no
- Azul: Palabras clave de estructura (
proceso,funcion) - Púrpura: Palabras clave de flujo (
inicio,tarea,fin) - Amarillo: Palabras clave de control (
si,sino) - Verde azulado: Tipos de datos (
entero,booleano) - Verde claro: Números (
123,45.67) - Naranja/Café: Cadenas de texto (
"texto") - Verde: Comentarios (
# comentario) - Dorado: Llaves
{} - Orquídea: Paréntesis
() - Azul cielo: Corchetes
[]
- Interfaz gráfica completa con JavaFX
- Editor de código con resaltado de sintaxis a color
- Sistema de temas (Dark/Light/Monokai) con cambio dinámico
- Iconos vectoriales personalizados en toolbar y menús
- Gestión completa de proyectos FlowScript
- Auto-completado de palabras clave
- Consola interactiva con historial
- Indentación automática inteligente
- Sistema de logging robusto
- Persistencia de preferencias del usuario
- Implementación del intérprete de FlowScript
- Depurador visual con breakpoints
- Exportación/importación BPMN 2.0
- Análisis estático de código y linting
- Sistema de extensiones y plugins
- Integración con Git
- Búsqueda y reemplazo con regex
- Refactoring automático
- Fork el proyecto
- Crea una rama para tu funcionalidad (
git checkout -b feature/NuevaFuncionalidad) - Commit tus cambios (
git commit -am 'Agregar nueva funcionalidad') - Push a la rama (
git push origin feature/NuevaFuncionalidad) - Crea un Pull Request
- Verificar Java 17+ instalado:
java -version - Limpiar y reconstruir:
./gradlew clean build - Revisar logs:
logs/flowscript-ide.log
- Verificar que el archivo tenga extensión
.flow - Reiniciar la aplicación
- Cambiar de tema y volver al original
- Cerrar pestañas innecesarias
- Limpiar caché: eliminar carpeta
logs/ - Verificar memoria disponible de Java
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
Carlos Ferrer - caferrerbeam
🚧 En desarrollo activo - El IDE está completamente funcional y en constante mejora.
- ✅ IDE completamente funcional
- ✅ Resaltado de sintaxis a color
- ✅ Cambio de temas dinámico
- ✅ Gestión completa de proyectos
- ✅ Iconos vectoriales integrados
FlowScript IDE - Desarrolla flujos de trabajo con poder y elegancia 🚀